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


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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 След.
Замечания по T-FLEX CAD 16, Ваши замечания касающиеся работы T-FLEX CAD 16
 
Цитата
SaprOnOff86 написал:
если в СРЕО включена опция save_file_iterations = yes)
Вы первый человек, который захотел её выключить. :D

А мне шиш показывает, вместо импорта =(
Изменено: FRei - 17.10.2018 17:38:05
Замечания по T-FLEX CAD 16, Ваши замечания касающиеся работы T-FLEX CAD 16
 
SaprOnOff86, не нужно, вижу импорт пофиксили ))
А теперь, если вас не затруднит, вот эту
upd бум ждать обновления
Изменено: FRei - 17.10.2018 17:15:18
Замечания по T-FLEX CAD 16, Ваши замечания касающиеся работы T-FLEX CAD 16
 
SaprOnOff86, этот попробуйте открыть пожалста, у меня Учебная версия
16.0.24.0 x64 Дата сборки: 30.09.2018
тупо виснет.
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Андрей Мальчук написал:
как сделать
Там 2 варианта построения поверхности по сечениям, для которой профили строятся: 1) по массиву точек. 2) по уравнениям.
Замечания по T-FLEX CAD 16, Ваши замечания касающиеся работы T-FLEX CAD 16
 
Учебная версия
16.0.24.0 x64 Дата сборки: 30.09.2018
Непонятки с отображением 3Д модели в 16ой версии. "Содержимое" массива я вижу только на превью.

Модель создана была в 15ой версии. Там отображение было корректным.
Замечания по T-FLEX CAD 16, Ваши замечания касающиеся работы T-FLEX CAD 16
 
При попытке зарегить учебную версию форма выглядит вот так:


succsess form:


Пардон, если не в ту тему.
ЗЫ Non-static method DB::isError() should not be called statically :D
Изменено: FRei - 12.10.2018 15:00:44
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Андрей Мальчук написал:
FRei, вы бы видео процесса создания выложили. А то, чужая голова - потёмки)
Выкладываю для всяческих утех и извращений.
Доработки функционала, необходимые пользователям, Внедрение нового функционала, доработка существующего.
 
[FONT=Arial, Helvetica]1. Внедрить IntelliSen[/FONT][FONT=Arial, Helvetica][/FONT][FONT=Arial, Helvetica]se[/FONT][COLOR=#222222] в редактор макросов.
[/COLOR]2. Поддержка формата [URL=https://ru.wikipedia.org/wiki/SVG]svg[/URL]. формат открытый исходники в сети есть.[COLOR=#222222][FONT=Arial, Helvetica]
[/FONT][/COLOR][COLOR=#222222][FONT=Arial, Helvetica][SIZE=12pt]
[/SIZE][/FONT][/COLOR]
Вопрос по API
 
[QUOTE]vite написал:
[URL=/forum/index.php?PAGE_NAME=profile_view&UID=22957]FRei[/URL], не знаю что вы хотите получить в конечном итоге. на мой взгляд, ваша модель получается слишком перегружена элементами построения. не проще использовать готовый фрагмент параметрического символа? к тому же, это даст существенный прирост производительности в процессе перестроения модели.[/QUOTE]
матричный индикатор и хотел получить
модель может и перегружена, но мой уровень знаний API и C# не позволяет мне сделать проще.


Кстати, а как вывести что-нибудь в окошко выходные данные, для отладки?

[CODE]using System;
using System.Collections.Generic;
using System.Windows.Forms;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;

namespace NewMacroNamespace
{
public class Indicator
{
static Dictionary<char, byte[,]> segments = new Dictionary<char, byte[,]>();
static CoordinateNode3D node0;
static PointsLCS scs;
static Indicator()//конструктор
{
segments.Add('А', new byte[,]{{0, 1, 1, 1, 0},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 1, 1, 1, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1}});
segments.Add('Б', new byte[,]{{1, 1, 1, 1, 1},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 1, 1, 1, 0},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 1, 1, 1, 0}});
segments.Add('В', new byte[,]{{1, 1, 1, 1, 0},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 1, 1, 1, 0},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 1, 1, 1, 0}});
segments.Add('Г', new byte[,]{{1, 1, 1, 1, 1},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0}});
segments.Add('Д', new byte[,]{{0, 0, 0, 1, 1},{0, 0, 1, 0, 1},{0, 1, 0, 0, 1},{0, 1, 0, 0, 1},{0, 1, 0, 0, 1},{1, 1, 1, 1, 1},{1, 0, 0, 0, 1}});
segments.Add('Е', new byte[,]{{1, 1, 1, 1, 1},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 1, 1, 1, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 1, 1, 1, 1}});
segments.Add('Ё', new byte[,]{{0, 1, 0, 1, 0},{1, 1, 1, 1, 1},{1, 0, 0, 0, 0},{1, 1, 1, 1, 1},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 1, 1, 1, 1}});
segments.Add('Ж', new byte[,]{{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{0, 1, 1, 1, 0},{0, 0, 1, 0, 0},{0, 1, 1, 1, 0},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1}});
segments.Add('З', new byte[,]{{0, 1, 1, 1, 0},{1, 0, 0, 0, 1},{0, 0, 0, 0, 1},{0, 0, 1, 1, 0},{0, 0, 0, 0, 1},{1, 0, 0, 0, 1},{0, 1, 1, 1, 0}});
segments.Add('И', new byte[,]{{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 1, 1},{1, 0, 1, 0, 1},{1, 1, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1}});
segments.Add('Й', new byte[,]{{1, 0, 1, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 1, 1},{1, 0, 1, 0, 1},{1, 1, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1}});
segments.Add('К', new byte[,]{{1, 0, 0, 0, 1},{1, 0, 0, 1, 0},{1, 0, 1, 0, 0},{1, 1, 0, 0, 0},{1, 0, 1, 0, 0},{1, 0, 0, 1, 0},{1, 0, 0, 0, 1}});
segments.Add('Л', new byte[,]{{0, 0, 1, 1, 1},{0, 1, 0, 0, 1},{0, 1, 0, 0, 1},{0, 1, 0, 0, 1},{0, 1, 0, 0, 1},{0, 1, 0, 0, 1},{1, 1, 0, 0, 1}});
segments.Add('М', new byte[,]{{1, 0, 0, 0, 1},{1, 1, 0, 1, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1}});
segments.Add('Н', new byte[,]{{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 1, 1, 1, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1}});
segments.Add('О', new byte[,]{{0, 1, 1, 1, 0},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{0, 1, 1, 1, 0}});
segments.Add('П', new byte[,]{{1, 1, 1, 1, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1}});
segments.Add('Р', new byte[,]{{1, 1, 1, 1, 0},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 1, 1, 1, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0}});
segments.Add('С', new byte[,]{{0, 1, 1, 1, 0},{1, 0, 0, 0, 1},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 1},{0, 1, 1, 1, 0}});
segments.Add('Т', new byte[,]{{1, 1, 1, 1, 1},{0, 0, 1, 0, 0},{0, 0, 1, 0, 0},{0, 0, 1, 0, 0},{0, 0, 1, 0, 0},{0, 0, 1, 0, 0},{0, 0, 1, 0, 0}});
segments.Add('У', new byte[,]{{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{0, 1, 1, 1, 1},{0, 0, 0, 0, 1},{1, 0, 0, 0, 1},{0, 1, 1, 1, 0}});
segments.Add('Ф', new byte[,]{{0, 1, 1, 1, 0},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{0, 1, 1, 1, 0},{0, 0, 1, 0, 0},{0, 0, 1, 0, 0}});
segments.Add('Х', new byte[,]{{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{0, 1, 0, 1, 0},{0, 0, 1, 0, 0},{0, 1, 0, 1, 0},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1}});
segments.Add('Ц', new byte[,]{{1, 0, 0, 1, 0},{1, 0, 0, 1, 0},{1, 0, 0, 1, 0},{1, 0, 0, 1, 0},{1, 0, 0, 1, 0},{1, 1, 1, 1, 0},{0, 0, 0, 0, 1}});
segments.Add('Ч', new byte[,]{{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{0, 1, 1, 1, 1},{0, 0, 0, 0, 1},{0, 0, 0, 0, 1}});
segments.Add('Ш', new byte[,]{{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 1, 1, 1, 1}});
segments.Add('Щ', new byte[,]{{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 1, 1, 1, 1},{0, 0, 0, 0, 1}});
segments.Add('Ъ', new byte[,]{{1, 1, 0, 0, 0},{0, 1, 0, 0, 0},{0, 1, 0, 0, 0},{0, 1, 1, 1, 0},{0, 1, 0, 0, 1},{0, 1, 0, 0, 1},{0, 1, 1, 1, 0}});
segments.Add('Ы', new byte[,]{{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 1, 0, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 1, 0, 0, 1}});
segments.Add('Ь', new byte[,]{{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 0, 0, 0, 0},{1, 1, 1, 1, 0},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{1, 1, 1, 1, 0}});
segments.Add('Э', new byte[,]{{0, 1, 1, 1, 0},{1, 0, 0, 0, 1},{0, 0, 0, 0, 1},{0, 0, 1, 1, 1},{0, 0, 0, 0, 1},{1, 0, 0, 0, 1},{0, 1, 1, 1, 0}});
segments.Add('Ю', new byte[,]{{1, 0, 0, 1, 0},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 1, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 1, 0, 1},{1, 0, 0, 1, 0}});
segments.Add('Я', new byte[,]{{0, 1, 1, 1, 1},{1, 0, 0, 0, 1},{1, 0, 0, 0, 1},{0, 1, 1, 1, 1},{0, 0, 1, 0, 1},{0, 1, 0, 0, 1},{1, 0, 0, 0, 1}});
Document doc = TFlex.Application.ActiveDocument;
doc.BeginChanges("ЛСК");        
CoordinateNode3D node0 = new CoordinateNode3D(doc); //3D Узел_1
node0.X = 0; node0.Y = 0; node0.Z = 0; node0.VisibleInScene= false;
PointsLCS scs =  new PointsLCS(doc);     //ЛСК_1
scs.PointToOrigin=node0.Geometry.Point; scs.VisibleInScene= false;
doc.EndChanges();
}
public static void matrix(Profile prof, char val,int m, Document doc)
{
doc.BeginChanges("копия профиля");    
CoordinateNode3D node1 = new CoordinateNode3D(doc);
   node1.X = 0-m*8.3*6; node1.Y = 0; node1.Z = 0; node1.VisibleInScene= false;
CoordinateNode3D node2 = new CoordinateNode3D(doc);
   node2.X = -8.3-m*8.3*6; node2.Y = 0; node2.Z = 0; node2.VisibleInScene= false;
CoordinateNode3D node3 = new CoordinateNode3D(doc);
   node3.X = -m*8.3*6; node3.Y = 8.3; node3.Z = 0; node3.VisibleInScene= false;
PointsLCS tcs = new PointsLCS(doc);
tcs.PointToOrigin=node1.Geometry.Point; tcs.VisibleInScene= false;      

CopyOperation2 copyprof= new CopyOperation2(doc, CopyBaseOperation2.Type.Construction);
copyprof.Constructions.Add(prof);
copyprof.SourceLCS = (PointsLCS)doc.GetObjectByName("ЛСК_1");
copyprof.TargetLCS = tcs;
copyprof.VisibleInScene = false;
doc.EndChanges();
       doc.BeginChanges("линейный массив");    
LinearArrayOperation lao = new LinearArrayOperation(doc, ArrayOperation.Type.Operations);
lao.Operations.Add(copyprof);
lao.Direction1Point1 = node1.Geometry.Point;
lao.Direction1Point2 = node2.Geometry.Point;
lao.Direction1Number = 5;//кол-во копий
lao.Direction1StepFromVector = true;//нарпавление
lao.Direction1Step= 8;//шаг
lao.Direction1Length = 16;//длина  
lao.Direction2Point1 = node1.Geometry.Point;
lao.Direction2Point2 = node3.Geometry.Point;
lao.Direction2Number = 7;//кол-во копий
lao.Direction2StepFromVector = true;//нарпавление
lao.Direction2Step= 8;//шаг
lao.Direction2Length = 16;//длина
lao.IncludeBase=true;
lao.Exclusions.Clear();
for (int j=0;j<7;j++)
for(int i=0;i<5;i++)
if (segments[val][j,i]==0) lao.Exclusions.Add(new Exclusion(lao, new Parameter(i), new Parameter(j)));

doc.EndChanges();//Закрытие блока изменений документа
}
}//end class
public class NewMacroClass
{
public static void NewMacro()
{
Document doc = TFlex.Application.ActiveDocument;
string word="ТФЛЕКС";//по дефолту
foreach(Variable v in doc.GetVariables())
   {
       if(v.Name == "$word")
       {
           word=v.TextValue;
break;
       }
}
char[] val=word.ToCharArray();
if (doc == null) return;
foreach (ModelObject mo in doc.GetObjects())
           {
               if (mo.Name == "pixel")
               {
                   Profile pixel1 = mo as Profile;
              for(int i = 0; i < word.Length; i++)
{
Indicator.matrix(pixel1,val[i],i,doc);
                   }
break;
        }
            }
doc.Redraw();
}
       

}
}

[/CODE]
Изменено: FRei - 08.10.2018 17:29:23
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Андрей Мальчук написал:
помимо Вас, о нем попросил бы еще кто-нибудь) Но Вы - пока единственный, кто про это спросил
Я просто наглый. Остальные скромные. :D
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Андрей Мальчук написал:
FRei, сможете аргументировать, зачем поддержка формата SVG нужна в каде? Каковы практические задачи, которые этот функционал поможет решить?
Да так, чтобы это было убедительно для всех, а не только для Вас) Пишите сюда, на форум. Если есть лицензия - то в техподдержку)
Еще раз написать?) так как сейчас наклейки, опознавательные знаки и этикетки различных стандартов и фирм распространяются в формате svg. Мне лично это не надо, но другим в формуляры, паспорта, инструкции и прочие документы требуются для вставки. Текстовое КД тоже существует, если Вы не знали. :)
Пример графический:


Иногда требуется вставлять в документ графику.
Изменено: FRei - 07.10.2018 15:58:55
Вопрос по API
 
И все же как нужно обращаться к результату работы массива или операции копирования?[CODE] CoordinateNode3D node1 = new CoordinateNode3D(doc);
   node1.X = 0; node1.Y = 0; node1.Z = 0;
CoordinateNode3D node2 = new CoordinateNode3D(doc);
   node2.X = -8.3; node2.Y = 0; node2.Z = 0;
CoordinateNode3D node3 = new CoordinateNode3D(doc);
   node3.X = 0; node3.Y = 8.3; node3.Z = 0;
LinearArrayOperation lao = new LinearArrayOperation(doc, ArrayOperation.Type.Construction);
CopyOperation2 copyprof= new CopyOperation2(doc, CopyBaseOperation2.Type.Construction);
copyprof.Constructions.Add(prof);
PointsLCS scs =  new PointsLCS(doc);
PointsLCS tcs = new PointsLCS(doc);
scs.PointToOrigin=node0.Geometry.Point;
tcs.PointToOrigin=node1.Geometry.Point;
copyprof.SourceLCS = scs;
copyprof.TargetLCS = tcs;
prof = copyprof as Profile; //здесь ошибка CS0039 Не удается преобразовать тип "TFlex.Model.Model3D.CopyOperation2" в "TFlex.Model.Model3D.Profile" путем преобразования ссылки, преобразования,  boxing-преобразования, unboxing-преобразования, преобразования перезаписи или преобразования типа со значением NULL
               lao.Constructions.Add(prof);[/CODE]Как мне извлечь из copyprof мой профиль?
пока, выкрутился созданием нулевой копии и массивом от неё.
Как то так:
[URL=https://www.youtube.com/watch?v=jbJd6hVpTaE]https://www.youtube.com/watch?v=jbJd6hVpTaE[/URL]
Изменено: FRei - 07.10.2018 12:46:06
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
SaprOnOff86 написал:
Цитата
dixiony написал:
я имею ввиду, как в солиде: выбрал рабочую плоскость и на неё импортнул вектор, который при импорте сделался сплайном.
Вы про картинку? в солиде такой штатной возможности нет
Имеется в виду в эскиз вставить какую-либо "векторную графику", чтобы во время рисования на рабочей плоскости вставлять графику, не создавая вокруг неё рабочую плоскость, как на том видео.

Кстати, импорт/чтение формата SVG было бы неплохо добавить к функционалу, так как сейчас наклейки, опознавательные знаки и этикетки различных стандартов и фирм распространяются в этом формате. Он векторный, открытый и цвет поддерживает. Куда об этом написать?
Изменено: FRei - 07.10.2018 07:14:11
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
dixiony написал:
Как в тифлекс импортировать профиль (к примеру из файла DXF) и затем придать ему объём, допустим командой "Выталкивание"?
Это прям основная фича ТФлекса
https://www.youtube.com/watch?v=R2avpA5wBK0
Изменено: FRei - 06.10.2018 17:47:51
Вопрос по API
 
vite, спасибо за пример,

Однако чет у меня сомнения по поводу масштабируемости такого решения, так как массив "портится", и размножить его с "другими буквами" я уже не смогу. Тогда варианты:
1) писать какую-то "строку текста" в одном массиве, вычисляя попутно столбцы для каждого символа. Но такие вычисления делать мне не хочется.
2) создавать массив из API для каждого символа, копируя начальный квадратик. Это вариант попроще, мне так кажется.
Изменено: FRei - 06.10.2018 15:24:02
Вопрос по API
 
vite, спасибо за пример, но он "выключит" весь массив мне же надо "выключить" отдельные элементы, например матрица индикатора:
Вопрос по API
 
Подскажите пожалуйста, есть у меня в модели линейный массив,

что-то не пойму, как мне перебрать его элементы и сделать с ними что-то, например, изменить свойство VisibleInScene? Есть класс LinearArrayOperation, но в нем нет ссылок на порождаемые объекты.
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
zobza написал:
Цитата
FRei написал:
Вопрос по 16ой версии. Как мне проставить такой размер (см рисунок)? Используя только линии изображения?
Справка говорит что есть команда http://www.tflexcad.ru/help/cad/16/dimention_2_c.htm , но я ее не нашел
В автоменю размера есть параметр Размер по окружности до объекта
Скрытый текст
Спасибо! Зато я случайно нашел эту команду :shock:
сначало надо было ткнуть на shft+c: и выбрать 2 дуги, а потом:
->
ЗЫ 15-ая версия.
Изменено: FRei - 04.10.2018 18:33:27
Замечания по T-FLEX CAD 16, Ваши замечания касающиеся работы T-FLEX CAD 16
 
Вопрос по API, пардон если темой ошибся. Хочется чтобы метод GetObjectByName(""); документа выбирал и тела в сцене, которые сейчас имеют тип BodyPart и не наследуются от ModelObject.
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Вопрос по 16ой версии. Как мне проставить такой размер (см рисунок)? Используя только линии изображения?
Страницы: Пред. 1 2 3 4 5 6 7 8 9 След.