Деталировка сборки одной кнопкой, Деталирование сборки из множества фрагментов одной кнопкой
Заслуженный посетитель
Сообщений: Баллов: 392Регистрация: 04.02.2015
Полезный ответ4
24.11.2016 11:36:35
В приложенном файле есть макрос "Деталировка", который выгружает фрагменты сборки с текущими загруженными переменными, сохраняет файл рядом со сборкой согласно наименованию и обозначению, а также подменяет ссылки в сборке на раздеталированные фрагменты. Может кому пригодится.
SaprOnOff86 написал:
В приложенном файле есть макрос "Деталировка", который выгружает фрагменты сборки с текущими загруженными переменными, сохраняет файл рядом со сборкой согласно наименованию и обозначению, а также подменяет ссылки в сборке на раздеталированные фрагменты.
Может кому пригодится.
Андрей Мальчук написал: За такие вещи - всегда плюсую)
Как предложение... Такие вещи желательно структурировать на первой странице форума по API, чтоб не осуществлять лихорадочный поиск макросов по форуму.
T-FLEX CAD 17.0.56.0, W7/W10
Заслуженный посетитель
Сообщений: Баллов: 337Регистрация: 07.11.2007
Полезный ответ0
24.11.2016 12:52:14
А как-бы отдельно и для ТФ 12? Спасибо
Заслуженный посетитель
Сообщений: Баллов: 392Регистрация: 04.02.2015
Полезный ответ0
24.11.2016 13:21:23
Цитата
Шурик написал: А как-бы отдельно и для ТФ 12? Спасибо
Пример во вложении в Редакторе макросов, либо через окошко макросов ПКМ - выполнить:
SaprOnOff86 написал: Пример во вложении в Редакторе макросов
Что-то не пошло, или для 12 не предназначено. Пример простейший, стеллаж СБ, полка, рамка, стойка. меняет только сборочный. Я в файл Деталировка вставляю фрагмент, а надо бы собрать в этом файле сборку я так думаю.
SaprOnOff86 написал: В приложенном файле есть макрос "Деталировка", который выгружает фрагменты сборки с текущими загруженными переменными, сохраняет файл рядом со сборкой согласно наименованию и обозначению, а также подменяет ссылки в сборке на раздеталированные фрагменты. Может кому пригодится.
Может кто-нибудь починить его? Вылезает
Код
Ошибка во время выполнения макроса 'MacroNameSpace.NewMacroClass.Деталировка': Ссылка на объект не указывает на экземпляр объекта.
Посетитель
Сообщений: Баллов: 5Регистрация: 28.09.2021
Полезный ответ0
04.08.2022 21:24:38
В ТФ новичок, не уловил, как запустить этот макрос для уже готовой сборки?
Заслуженный посетитель
Сообщений: Баллов: 392Регистрация: 04.02.2015
Полезный ответ0
04.08.2022 23:32:04
Цитата
kkk написал: В ТФ новичок, не уловил, как запустить этот макрос для уже готовой сборки?
закинуть GRB файл с написанным макросом в папку ТФ там где макросы хранятся
Заглянувший
Сообщений: Баллов: 1Регистрация: 26.01.2022
Полезный ответ0
31.03.2023 16:23:49
Хотелось бы иметь возможность пробегать по деталям и в подсборках, на всех уровнях. Как это реализовать?
Заслуженный посетитель
Сообщений: Баллов: 153Регистрация: 10.05.2012
Полезный ответ0
03.04.2023 07:20:42
Цитата
написал: Хотелось бы иметь возможность пробегать по деталям и в подсборках, на всех уровнях. Как это реализовать?
Сначала ручками потом можно макросом используя API
Заглянувший
Сообщений: Баллов: 1Регистрация: 26.01.2022
Полезный ответ0
03.04.2023 09:16:27
Цитата
zobza написал: Сначала ручками потом можно макросом используя API
Я, скорее, про алгоритм, который позволяет пробегаться по всему дереву, когда уровень вложенности неизвестен.
Посетитель
Сообщений: Баллов: 9Регистрация: 07.08.2023
@HydraResolution - telegram
Полезный ответ2
07.08.2023 17:47:26
Поправил макрос под 17 версию CAD'a. В файле пример файловой структуры.
Код
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();
}
//-----------------------------------------------------------
}
}
А можно литр здесь и два с собой написать такой макрос из двух этапов: 1 необязательный, в 3Д окне гасим построения если есть и выполняем команду Показать все, чтобы изображение центрировалось, но желательно чтобы оно (изображение) вписывалось в квадрат, если нет то мы уменьшаем изображение и выполняем 2 этап - команда Инструменты -Иконка- Размер иконки 128 х 128 (размер не важен, а вот чтобы иконка была одна желательно) - ОК. Дело в том, что достал старый не законченный проект и приходится перебирать каждую сборку что сделал, а что нет. А можно все просмотреть в окне и понять с чего продолжать. Самому уже не осилить изучение API
Посетитель
Сообщений: Баллов: 9Регистрация: 07.08.2023
@HydraResolution - telegram
Полезный ответ0
17.10.2024 09:55:36
Цитата
написал:
А можно литр здесь и два с собой написать такой макрос из двух этапов: 1 необязательный, в 3Д окне гасим построения если есть и выполняем команду Показать все, чтобы изображение центрировалось, но желательно чтобы оно (изображение) вписывалось в квадрат, если нет то мы уменьшаем изображение и выполняем 2 этап - команда Инструменты -Иконка- Размер иконки 128 х 128 (размер не важен, а вот чтобы иконка была одна желательно) - ОК. Дело в том, что достал старый не законченный проект и приходится перебирать каждую сборку что сделал, а что нет. А можно все просмотреть в окне и понять с чего продолжать. Самому уже не осилить изучение API
Можно попробовать, только надо понимать - вы работаете со сборкой или все документы, для которых нужно сделать иконку лежат в одной папке? Если в сцене нет тел - то иконка не создаётся?
Заслуженный посетитель
Сообщений: Баллов: 337Регистрация: 07.11.2007
Полезный ответ0
17.10.2024 19:00:16
Цитата
Hydra написал: Можно попробовать, только надо понимать
Я описал макрос на открытый документ, если обрабатывать пакетом, то получится "ай как не красиво", ведь берется 3Д изображение по центру квадратом, если изображение в стороне, то захватит только часть 3Д изображения (сцены), а если активно 2Д окно то тоже что-то не "красивое". Про закрытые файлы даже не знаю что предположить. Проект бывает и в одной папке, сложные имеют входящие папки узлов. p.s. Цена вопроса - огромное спасибо..., хотелось иметь это как стандартный функционал ТФ18 уж точно.
Изменено: - 17.10.2024 19:02:23
Заслуженный посетитель
Сообщений: Баллов: 392Регистрация: 04.02.2015
Полезный ответ0
17.10.2024 20:20:50
Цитата
Шурик написал: отелось иметь это как стандартный функционал ТФ18 уж точно.
сделайте свой прототип, где будет преднстроено формирование иконки
Изменено: - 17.10.2024 20:20:59
Заслуженный посетитель
Сообщений: Баллов: 337Регистрация: 07.11.2007
Полезный ответ0
17.10.2024 20:27:46
Цитата
SaprOnOff написал: сделайте свой прототип, где будет преднстроено формирование иконки
написал: сделайте свой прототип, где будет преднстроено формирование иконки
и как? макросом, автоматом иконка не создается.
один раз насраиваете прототип: и дальше все новый файлы будут "принскринить" картинку из 2Д или 3Д - как настроите. Работать будет только на новые файлы.
Посетитель
Сообщений: Баллов: 9Регистрация: 07.08.2023
@HydraResolution - telegram
Полезный ответ0
18.10.2024 12:05:34
Цитата
написал:
Цитата
написал: Можно попробовать, только надо понимать
Я описал макрос на открытый документ, если обрабатывать пакетом, то получится "ай как не красиво", ведь берется 3Д изображение по центру квадратом, если изображение в стороне, то захватит только часть 3Д изображения (сцены), а если активно 2Д окно то тоже что-то не "красивое". Про закрытые файлы даже не знаю что предположить. Проект бывает и в одной папке, сложные имеют входящие папки узлов. p.s. Цена вопроса - огромное спасибо..., хотелось иметь это как стандартный функционал ТФ18 уж точно.
В таком случае Вам придётся вставлять этот макрос в каждый документ заново, что на мой взгляд, будет раздражать даже больше. Если вы говорили именно про это, то да, за большое спасибо можно.
Или можно делать это пакетно в сборке: сначала для каждого отдельного фрагмента и, потом, для сборки целиком. Камерой можно управлять и центрировать по телам/фрагментам в сцене. Если это вообще ещё актуально, после предложения