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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 3 След.
Деталировка сборки одной кнопкой, Деталирование сборки из множества фрагментов одной кнопкой
 
В приложенном файле есть макрос "Деталировка", который выгружает фрагменты сборки с текущими загруженными переменными, сохраняет файл рядом со сборкой согласно наименованию и обозначению, а также подменяет ссылки в сборке на раздеталированные фрагменты.
Может кому пригодится.
 
За такие вещи - всегда плюсую)
Практика - критерий истины (с)
 
Цитата
Цитата
SaprOnOff86 написал: В приложенном файле есть макрос "Деталировка", который выгружает фрагменты сборки с текущими загруженными переменными, сохраняет файл рядом со сборкой согласно наименованию и обозначению, а также подменяет ссылки в сборке на раздеталированные фрагменты. Может кому пригодится.
Андрей Мальчук
написал:
За такие вещи - всегда плюсую)
Как предложение...
Такие вещи желательно структурировать на первой странице форума по API, чтоб не осуществлять лихорадочный поиск макросов по форуму.
Clipboard01.jpg (58.2 КБ)
T-FLEX CAD 17.0.56.0, W7/W10
 
А как-бы отдельно и для ТФ 12? Спасибо
 
Цитата
Шурик написал:
А как-бы отдельно и для ТФ 12? Спасибо
Пример во вложении в Редакторе макросов, либо через окошко макросов ПКМ - выполнить:
Изменено: SaprOnOff86 - 24.11.2016 13:21:55
 
Цитата
SaprOnOff86 написал:
Пример во вложении в Редакторе макросов
Что-то не пошло, или для 12 не предназначено. Пример простейший, стеллаж СБ, полка, рамка, стойка. меняет только сборочный. Я в файл Деталировка вставляю фрагмент, а надо бы собрать в этом файле сборку я так думаю.
 
Цитата
SaprOnOff86 написал:
В приложенном файле есть макрос "Деталировка", который выгружает фрагменты сборки с текущими загруженными переменными, сохраняет файл рядом со сборкой согласно наименованию и обозначению, а также подменяет ссылки в сборке на раздеталированные фрагменты.
Может кому пригодится.
Может кто-нибудь починить его? Вылезает
Код
Ошибка во время выполнения макроса 'MacroNameSpace.NewMacroClass.Деталировка': Ссылка на объект не указывает на экземпляр объекта.
 
В ТФ новичок, не уловил, как запустить этот макрос для уже готовой сборки?
 
Цитата
kkk написал:
В ТФ новичок, не уловил, как запустить этот макрос для уже готовой сборки?
закинуть GRB файл с написанным макросом в папку ТФ там где макросы хранятся
 
Хотелось бы иметь возможность пробегать по деталям и в подсборках, на всех уровнях. Как это реализовать?
 
Цитата
написал:
Хотелось бы иметь возможность пробегать по деталям и в подсборках, на всех уровнях. Как это реализовать?
Сначала ручками потом можно макросом используя API
 
Цитата
zobza написал:
Сначала ручками потом можно макросом используя API
Я, скорее, про алгоритм, который позволяет пробегаться по всему дереву, когда уровень вложенности неизвестен.
 
Поправил макрос под 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
Захват-42.jpg (124.92 КБ)
 
Цитата
написал:

А можно литр здесь и два с собой написать такой макрос из двух этапов: 1 необязательный, в 3Д окне гасим построения если есть и выполняем команду Показать все, чтобы изображение центрировалось, но желательно чтобы оно (изображение) вписывалось в квадрат, если нет то мы уменьшаем изображение и выполняем 2 этап - команда Инструменты -Иконка- Размер иконки 128 х 128 (размер не важен, а вот чтобы иконка была одна желательно) - ОК.
Дело в том, что достал старый не законченный проект и приходится перебирать каждую сборку что сделал, а что нет. А можно все просмотреть в окне и понять с чего продолжать.
Самому уже не осилить изучение API
Можно попробовать, только надо понимать - вы работаете со сборкой или все документы, для которых нужно сделать иконку лежат в одной папке? Если в сцене нет тел - то иконка не создаётся?
 
Цитата
Hydra написал:
Можно попробовать, только надо понимать
Я описал макрос на открытый документ, если обрабатывать пакетом, то получится "ай как не красиво", ведь берется 3Д изображение по центру квадратом, если изображение в стороне, то захватит только часть 3Д изображения (сцены), а если активно 2Д окно то тоже что-то не "красивое". Про закрытые файлы даже не знаю что предположить. Проект бывает и в одной папке, сложные имеют входящие папки узлов.
p.s. Цена вопроса - огромное спасибо..., хотелось иметь это как стандартный функционал ТФ18 уж точно.
Изменено: Шурик - 17.10.2024 19:02:23
 
Цитата
Шурик написал:
отелось иметь это как стандартный функционал ТФ18 уж точно.
сделайте свой прототип, где будет преднстроено формирование иконки :)
Изменено: SaprOnOff - 17.10.2024 20:20:59
 
Цитата
SaprOnOff написал:
сделайте свой прототип, где будет преднстроено формирование иконки
и как? макросом, автоматом иконка не создается.
 
Цитата
Шурик написал:

Цитата
SaprOnOff написал:
сделайте свой прототип, где будет преднстроено формирование иконки
и как? макросом, автоматом иконка не создается.
один раз насраиваете прототип:

и дальше все новый файлы будут "принскринить" картинку из 2Д или 3Д - как настроите.
Работать будет только на новые файлы.
 
Цитата
написал:

Цитата
Hydra написал:
Можно попробовать, только надо понимать
Я описал макрос на открытый документ, если обрабатывать пакетом, то получится "ай как не красиво", ведь берется 3Д изображение по центру квадратом, если изображение в стороне, то захватит только часть 3Д изображения (сцены), а если активно 2Д окно то тоже что-то не "красивое". Про закрытые файлы даже не знаю что предположить. Проект бывает и в одной папке, сложные имеют входящие папки узлов.
p.s. Цена вопроса - огромное спасибо..., хотелось иметь это как стандартный функционал ТФ18 уж точно.
В таком случае Вам придётся вставлять этот макрос в каждый документ заново, что на мой взгляд, будет раздражать даже больше. Если вы говорили именно про это, то да, за большое спасибо можно.

Или можно делать это пакетно в сборке: сначала для каждого отдельного фрагмента и, потом, для сборки целиком. Камерой можно управлять и центрировать по телам/фрагментам в сцене.
Если это вообще ещё актуально, после предложения SaprOnOff
Страницы: 1 2 3 След.