Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
макросы вешают тфлекс
 
[QUOTE][URL=https://www.tflex.ru/forum/index.php?PAGE_NAME=profile_view&UID=87076]Алексей[/URL] написал:
Привет всем. Я не понимаю, может я особенный какой-то, но у меня макросы вешают тфлекс. Те что идут из коробки для примера запускаются, но стоит мне их скопировать в новый модуль, не забыв естественно ссылки, он просто вешается и всё, пустой void метод с единственной строкой return; вешается, System.Console.WriteLine("Hello World") вешается и всё. Я не знаю... может какой-то чекбокс есть секретный чтоб самописные макросы запускались? О_о я конечно не искушенный в шарпах человек, но мне кажется хелло ворлд не должен ничего вешать.

Попутный вопрос: а автокомплит/интеллисенс есть в редакторе? если нет, то через vs studio можно их писать?[/QUOTE]
Не совсем понятно, чего Вы ждете от этого.

Если хотите делать отладку таким методом, то выводите сообщения в окно диагностики, например.[QUOTE]TFlex.Application.ActiveDocument.Diagnostics.Add(new DiagnosticsMessage(DiagnosticsMessageType.Information, "Hello world!"));
[/QUOTE]
Изменено: Hydra - 23.08.2023 16:02:03
Деталировка сборки одной кнопкой, Деталирование сборки из множества фрагментов одной кнопкой
 
Поправил макрос под 17 версию CAD'a. В файле пример файловой структуры.
[CODE]using System;
using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;
using System.Windows;
using TFlex.Model.Model3D;
using System.IO;

namespace MacroNameSpace
{
   public class NewMacroClass
   {
       //-------------------------------------------------------------------------------------
       //Составим функцию FindVar поиска переменной по имени
       private static Variable FindVar(Document doc, string name)
       {
           foreach (Variable var in doc.GetVariables())
               if (var.Name == name) return var;
           return null;
       }
       //------------------------------------------------------------------------------------
       public static void Деталировка()
       {
           Document doc = TFlex.Application.ActiveDocument;

           Variable NameDoc = FindVar(doc, "$Обозначение");

           doc.BeginChanges("Деталировка");

           foreach (Fragment3D Frag in doc.GetFragments3D())
           {
               Document DC = Frag.GetFragmentDocument(true);

               Variable Vob = FindVar(DC, "$Обозначение");
               Variable VName = FindVar(DC, "$Наименование");

               String value = Vob.TextValue.ToString();
               String value2 = value.Replace("/", "_");

               String newName = String.Concat(
               Path.GetDirectoryName(doc.FileName), "\\", VName.TextValue.ToString(), " ", value2.ToString(), Path.GetExtension(DC.FileName));
               string FrLink = "<" + NameDoc.TextValue + ">" + VName.TextValue.ToString() + " " + value2.ToString() + ".grb";

               Document FRdoc = Frag.OpenPart();
               FRdoc.BeginChanges("Создаем деталь");

               FRdoc.SaveAs(newName);
               FRdoc.EndChanges();
               FRdoc.Close();
               Frag.FileLink = new TFlex.Model.FileLink(doc, FrLink);
           }
           doc.EndChanges();
       }
       //-----------------------------------------------------------
   }
}[/CODE]
Страницы: 1