[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]
Поправил макрос под 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);