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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Борьба с T-Flex за выживание
 
Здравствуйте. Очень интересует 2 вопроса.
1. Существует команда "TE:Создать текст". В автоменю этой команды есть кнопка "Создать строчный текст". В свойствах созданного строчного текста есть флажок "Симметричное отображение". Теперь внимание - у меня в ходе работы периодически возникает острая необходимость ГРУППОВОГО, подчёркиваю, группового управления этим флажком. Количество текстов, которым нужно ОДНОВРЕМЕННО, за один заход, снять или установить этот флаг - от 300 до 1000. В окне "Свойства" такой возможности нет. Команда "ET:Изменить текст" такой возможности также не предоставляет. В "Руководствах" этот момент не освещается. Просветите меня тёмного, как же эту 1000 текстов разгрести? Неужели я должен сделать 4000 кликов ??? Я многое могу вытерпеть от T-Flex, его капризную безумную и взбалмошную, неуправляемую сущность (видимо в нём заложена русская эмоциональная душа), но размолоть мышь в пыль ради одного флажка?!!
2. Существует команда "QI:Проверка пересечений тел". В ней есть 2 опции "Все операции в сцене" и "Выбранные тела" (дословно наизусть не помню, но суть верная). У меня сборка состоит из нескольких подсборок нижнего уровня, соединяя которые я получаю готовую верхнюю сборку. Мне нужно найти пересечения между 2мя 3Д-фрагментами, но при этом рассматривать их как цельные тела, без учёта того, что они сами состоят из фрагментов, которые также могут пересекаться. В конечном итоге подобной возможности я в этой команде не нашёл. Это в свою очередь свело полезность этой операции в моём случае к нулю. Конечно, T-Flex находит пересечения 2х фрагментов-подсборок между собой (если они есть). Но при этом он находит и 50-70 мелких пересечений в каждой из подсборок. Итого я получаю один-два нужных результата и около 100 мелких совершенно ненужных мне в конкретный данный момент пересечений. И чтобы удостовериться, что в этом обширном списке пересечений есть нужные мне, мне нужно всю эту сотню просмотреть. Если бы T-Flex мог рассматривать 2 3Д-фрагмента без учёта их "составной" природы, как целые тела, то операция была бы для меня весьма полезна, я бы сразу мог увидеть конфликт и внести коррективы в модель и чертёж. Но без такой возможности на мой взгляд её уделом остаётся узкий спектр задач а-ля "пересекается ли этот куб и вон тот шарик", либо для нескольких твёрдотельных деталей, для крупных сборок из многодетальных узлов пользы на мой взгляд нет.
Если кто-нибудь может сказать, как в Т-Флекс можно решить вышеописанные проблемы - прошу вашего внимания и помощи в отыскании решения. Если Т-Флекс принципиально не умеет делать это - может разработчики когда-нибудь (хоть бы дожить, хотя сомневаюсь ;) ) решат эти вопросы в новых версиях.
 
Цитата
Николай пишет:

В автоменю этой команды есть кнопка "Создать строчный текст". В свойствах созданного строчного текста есть флажок "Симметричное отображение".
У меня эта команда отказывается работать даже с одной строкой. Вообще-то никогда данной опцией не пользовался.
 
Цитата
Сергей Максимов пишет:
У меня эта команда отказывается работать даже с одной строкой.
работает в 3d при создании текста на рабочих плоскостях (по крайней мере в v11.0.31).

Николай,
по п.1.: вопрос - а зачем это надо? Если для получения соответсвующего профиля, то можно использовать операция "симметрия" или "копия" для элементов построения (профиля).
по п.2.: например при вставке фрагмента в сборку можно использовать опцию "Как отдельные тела" во вкладке "Дополнительные параметры" операции. Если в спецификации нужно обозначении только сборочной еденицы, то в соответсвующей гарфе выбрать "Без вложенных элементов". Правда в дереве модели при этом, на мой взгляд, образуется каша из набора тел.
 
Цитата
Николай пишет:

Просветите меня тёмного, как же эту 1000 текстов разгрести? Неужели я должен сделать 4000 кликов ???

По отношению к конкретному вопросу сам не пробовал, но думаю что можно макросом, как вариант.
Кто ищет - тот всегда найдет!
 
Версия T-Flex 10.0.57
Цитата
Александр Спиглазов пишет:

по п.1.: вопрос - а зачем это надо? Если для получения соответсвующего профиля, то можно использовать операция "симметрия" или "копия" для элементов построения (профиля).
Есть готовый 2D-фрагмент. Фрагмент представляет собой сторону BOTTOM печатной платы, "заготовка" для него приходит в DXF-формате из Mentor Graphics (PCB), затем импортируется в T-Flex для дальнейшей работы. Текстов около 1000, в каждом тексте стоит флаг "Симметричное отображение". При вставке этого фрагмента весь текст "улетает" относительно своего исходного положения на белое поле за чертёж. Этак примерно на 300 мм уезжает в "молоко". Если флаг сброшен - с текстом всё в порядке, он стоит на своём месте и ведёт себя вполне по-человечески.
После импорта в T-Flex делается большая работа по приведению этого безобразия в порядок для нормальной, читаемой КД, сюда же входит и работа с текстами, их положением и т.д. Фрагмент делался не мной, другим человеком, он передал мне дела и надолго ушёл на больничный. Если бы фрагмент "причёсывал" я сам, то проблемы бы с этим проклятым флагом не было - есть манипуляции в Автокаде, позволяющие обойти эту "камень преткновения" T-Flex'a.
Таким образом, без возможности группового управления флагом "Симметричное отображение" есть один вариант: получить сырой фрагмент, проделать всю работу заново, разместить все тексты с нуля и так далее. Т.е. весь труд человека, уже создавшего фрагмент пропал впустую и всё было зря. Всего-то какой-то несчастный флаг, а сколько труда пропало, а ведь сроки тоже жмут, работа довольно срочная.
Цитата
Brom25 пишет:

По отношению к конкретному вопросу сам не пробовал, но думаю что можно макросом, как вариант.
Может у вас есть пример, как подобное можно сделать? Или может где-то есть официальное руководство по макросам в T-Flex? Я вообще не программист, мне бы что попроще ;). Вообще на мой взгляд, "прикручивать" такие элементарные вещи, как какой-то несчастный флаг собственноручно через макросы - как ставить инвалида на костыли.
Теперь по вопросу №2.
Цитата
Александр Спиглазов пишет:

по п.2.: например при вставке фрагмента в сборку можно использовать опцию "Как отдельные тела" во вкладке "Дополнительные параметры" операции.
Согласен полностью
Цитата
Александр Спиглазов пишет:

... в дереве модели при этом, на мой взгляд, образуется каша из набора тел.
Неприятно потом эту всю кашу наблюдать, да и затрудняет обзор дерева, захлямляет его.
Моя задача: выяснить, существуют ли пересечения у 2х фрагментов (это достаточно крупные сборки из множества фрагментов). Включение опции "Как отдельные тела" ничего не даёт. При таком подходе я должен сперва визуально просмотреть все вероятные места пересечений и "на глаз" определить, а могут ли они там пересекаться. Т.е. я должен на это потрать довольно много времени, так как эти 2 фрагмента большие, там много элементов и даже просто просмотреть места конфликтов - это длительная и непростая операция, тем более что из-за большой насыщености я могу и не увидеть возможный конфликт. Затем в подозрительных местах я должен проверить возможные пересечения каждого элемента с каждым, запоминать где и какие результаты получились и так далее. Спрашивается, на кой чёрт мне нужно прикладывать такие усилия, ломать глаза о монитор и выискивать в мешанине рёбер, граней, куче фрагментов подозрительные, когда это всё должен делать САПР и машина, ведь для того она и нужна, чтобы человеку рутиной не заниматься, а думать о сути дела.
Неужели нельзя ввести один единственный флаг в операцию "QI:Проверка пересечений тел", нечто наподобие "Рассматривать фрагмент как единое тело"? (Допустим в том же SW существует флаг "Рассматривать узлы сборки как компоненты" в операции "Проверить интерференцию компонентов")
Немного лирического отступления:
Вообще, если честно, при работе в T-Flex у меня складывается ощущение, что разработчики во разных местах то чуть-чуть не додумали, то чуть-чуть не доделали, то где-то оставили работу в состоянии "как есть, авось пронесёт", "да и так сойдёт...". Мол, если очень сильно будут плакать покупатели большого количества лицензий на программу (завод крупный какой, или может именитое крупное КБ) - тогда мы и поправим. А все остальные негры, у кого 10-20 лицений - да плевать мы на вас хотели, мы вам программу продали - и как хотите, так и вертитесь. Мол, мы тебе лопату продали? - Продали. Ржавая? - Это ничего, ведь копать и такой можно.
Вообще, на мой взгляд, когда будет 12 весрия - ничего добавлять не надо. Надо один раз капитальным образом прочистить весь тот багаж глюков, косяков и недоработок, что тянется уже не один год в этом многострадальном САПРе. Сделать "работу над ошибками", почитать этот форум, есть над чем задуматься и где копнуть. Так хочется порой чтобы ты пришёл на работу, включил T-Flex и обрадовался тому, какой он работоспособный, что он не вылетает на тяжёлых сборках, и что, прочитав описание 3D-операций в официальном руководстве, можно спокойно повторить эти шаги в программе и всё получится без нервов, мата и многочасового блуждания в Сети в поисках шаманских способов "обойти" тот или иной косяк или недоработку. Слава Богу, что хотя бы выталкивание можно создать без биений головой об стену (хотя и его далеко не всегда можно сделать красиво, логично и удобно, вписав как завершающий мазок в целостную картину 3Д-модели). Так что денно и нощно я тешу себя надеждой, что доживу до тех прекрасных дней, когда T-Flex станет добрым помощником в каждодневных трудах, а не злостным демоном в шайтан-машине, который так и норовит напакостить на каждом шагу, стоит отвести взгляд от монитора. На этом всё, спасибо за внимание. Прошу простить за большой пост, но извините, накипело уже на душе.
 
Цитата
Николай пишет:

Может у вас есть пример, как подобное можно сделать? Или может где-то есть официальное руководство по макросам в T-Flex?

В T-Flex есть редактор макросов и есть встроенные примеры макросов.
В Вашем случае нужно создать свой макрос в каком-либо документе. В макрос добавьте следующий код (набрал на скорую руку, но думаю работать будет):

Код
using System;
using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;


class Macro
{
    public static void SymmetryLineTexts()
    {
        Document document = TFlex.Application.ActiveDocument;
        if (document == null)
            return;

        LineText line_text = null;

        for (int i = 0; i < document.Selection.GetSize(); i++)
        {
            line_text = (LineText)document.Selection.GetAt(i);

            if (line_text == null)
                continue;

            //открытие документа для изменения, если он не был открыт ранее.
            if (!document.IsChanging())
                document.BeginChanges("Симметричное отображение линейных текстов.");

            line_text.Symmetric = !line_text.Symmetric;//отображаем текст симметрично
        }

        if (document.IsChanging())
            document.EndChanges();
    }
}


Далее, скомпилируйте (Ctrl+F9) макрос и сохраните документ в папке ...T-Flex CAD 11\Program\Macros. После перезапуска T-Flex макрос появится в окне макросов (Ctrl+5).
Как применять макрос: выделяете в документе все строчные тексты, которые нужно отобразить симметрично (если зацепите мышкой другие элементы, не являющиеся строчным текстом - не страшно), затем запускаете макрос.

PS T-Flex рядом нет, поэтому более подробно описать не могу. По этой же причине не могу проверить код на работоспособность...
Изменено: Brom25 - 17.07.2010 17:02:37
Кто ищет - тот всегда найдет!
 
В 11.32 не работает ни макрос, ни сама команда даже для одной строки.

В коде думаю следует указать пространство имен и у класса поставить public
как-то так:
Код
using System;
using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;

namespace NewMacroNamespace
{
   public class Macro
   {
      public static void SymmetryLineTexts()
      {
         Document document = TFlex.Application.ActiveDocument;
         if (document == null)
            return;

         LineText line_text = null;

         for (int i = 0; i < document.Selection.GetSize(); i++)
         {
            line_text = (LineText)document.Selection.GetAt(i);

            if (line_text == null)
               continue;

            //открытие документа для изменения, если он не был открыт ранее.
            if (!document.IsChanging())
               document.BeginChanges("Симметричное отображение линейных текстов.");

            line_text.Symmetric = !line_text.Symmetric;//отображаем текст симметрично
         }

         if (document.IsChanging())
            document.EndChanges();
      }
   }
}
 
Пространство имен не обязательно, а вот public - нужен, верно подмечено. Еще плюс чуть-чуть подправлю:

Код
using System; 
using TFlex; 
using TFlex.Model; 
using TFlex.Model.Model2D; 


public class Macro 
{ 
    public static void SymmetryLineTexts() 
    { 
        Document document = TFlex.Application.ActiveDocument; 
        if (document == null) 
            return; 

        LineText line_text = null; 

        for (int i = 0; i < document.Selection.GetSize(); i++) 
        { 
            line_text = document.Selection.GetAt(i) as LineText; 

            if (line_text == null) 
                continue; 

            //открытие документа для изменения, если он не был открыт ранее. 
            if (!document.IsChanging()) 
                document.BeginChanges("Симметричное отображение линейных текстов."); 

            line_text.Symmetric = !line_text.Symmetric;//отображаем текст симметрично 
        } 

        if (document.IsChanging()) 
            document.EndChanges(); 

        document.Redraw();//для верности перересуем документ
    } 
}


PS Флаг "Симметричное отображение" видимо не со всеми шрифтами работает...
Кто ищет - тот всегда найдет!
 
Действительно с текстами TruType не работает. А с TF работает и команда, и макрос.
Изменено: Сергей Максимов - 19.07.2010 06:39:59
 
Добрый время суток УВАЖАЕМЫЕ ПОЛЬЗОВАТЕЛИ СИСТЕМЫ T-FLEX CAD.

На нашей фирме приняли решение о переходе на Windows 7 32 разряда.

Много лет работаю с T-Flex CAD 3D сборка 8053. Работаю под Windows XP.

Будет ли работать эта сборка T-Flex CAD 3D под Windows 7 32 разряда ?
 
У меня Windows 7 x64. Сборка 8053 работает нормально.
Страницы: 1