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


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

Страницы: 1
Кто нибудь пробовал использовать в работе 3D Connexion SpaceMouse Pro, Использование 3D манипулятора
 
Кто нибудь пробовал использовать 3D Connexion SpaceMouse Pro?
Работают все функции с tflex?
Как правильно делать проекты, Какие способы есть проектировать, чтоб проект не разваливался и каждый отдельный фрагмент был прост для понимания
 
Привет всем.
Я вроде бы начал более менее разбираться в отдельных инструментах, но вот как использовать все в целом правильно никак не могу придумать.
Для простоты рассуждений на данную тему возьмем конкретный пример. Спроектируем парусную яхту.
Начнем с того, что обводы - это не очень просто и возьмем готовые в виде iges.
Ну корпус в виде поверхности у нас есть.
1) Надо придать толщину всему корпусу или отдельным поверхностям. С одно стороны если делать отдельные поверхности, то булевы операции с ними работать наверняка не будут.
Значит придется толщину придавать всему корпусу, но и тут могут быть проблемы - если поверхность не подходящая для этого.
Будем удалять некоторые поверхности, чтоб этого добиться.
2) Делать это в том же фрагменте или сделать отдельный фрагмент в него вставить корпус?
3) Как вставлять фрагменты - какие вставлять по ЛСК, какие просто по месту?
Если фрагмент будет стоять в одном месте, то наверное можно просто делать фрагмент в контексте формы fm и рисовать прям в нужном месте?
4) Ну и когда мы нарисуем всю яхту, то нам понадобится изменить обводы, а значит надо, чтоб импортировав заново поверхность корпуса из iges у нас весь проект не развалился, как?
Рисуем переборки
5) Рисовать их в нужных местах? Завести ЛСК под каждую переборку? Завести переменные смещения каждой переборки? Передавать в переменной высоту пола, потолка в каждую переборку?
В каком месте учитывать толщину переборок, если они могут быть разной толщины? Как задать высоту шпангоута чтоб он обрезался корпусом? А если его еще и смещать иногда?
Я думаю для начала хватит.
Выяснить материал через API
 
Дано:

Некий проект.
Создаем новую сборку, добавляем туда этот проект в виде фрагмента, разделяем на тела.

Хочу:

Для каждого полученного тела получить XSIZE, YSIZE, ZSIZE, mass, материал

Первые три получилось получить создав переменную и в ней написать  - get_cls("НазваниеТела", "XSIZE") ,
для массы   -  get("НазваниеТела", mass)  

А как получить материал я так и не придумал.

Может есть более прямые пути для получения XSIZE и как получить материал?[CODE] private readonly string vtemp1 = "get{2}(\"{0}\", \"{1}\"{3})";


   public double GetV(string bodyName, string valName)
   {
     var tp = valName.Contains("SIZE");
     var p1 = tp ? "_lcs" : "";
     var p2 = !tp ? "" : ",\"\"";
     vv.Expression = string.Format(vtemp1, bodyName, valName, p1, p2);
     return Math.Round(vv.RealValue, 3);
   }


   Variable vv = null;


   private void MakeList()
   {
     Document.BeginChanges("dd");


     vv = Document.GetVariables().Where(w => w.Name == "test").SingleOrDefault();
     if (vv == null)
       vv = new Variable(Document, "test", 0);
     foreach (var b in Document.Bodies.Cast<BodyPart>())
     {
       if ((b.BaseOperation.Geometry.Solid.Length != 0) && (b.BaseOperation.Visible))
       {
         System.Diagnostics.Debug.WriteLine($"{b.Name} ({GetV(b.Name, "XSIZE")}, {GetV(b.Name, "YSIZE")}, {GetV(b.Name, "ZSIZE")}) {GetV(b.Name, "mass")}");
       }
     }

     Document.EndChanges();
   }


[/CODE]
Страницы: 1