| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > ПО от CSoft > СПДС 10. С чего начать при создании пользовательского объекта, к примеру "стропильная нога"?

СПДС 10. С чего начать при создании пользовательского объекта, к примеру "стропильная нога"?

Ответ
Поиск в этой теме
Непрочитано 10.05.2016, 11:54 #1
СПДС 10. С чего начать при создании пользовательского объекта, к примеру "стропильная нога"?
erikbond
 
Инженер-конструктор-LEGO
 
Ульяновск
Регистрация: 22.05.2011
Сообщений: 806

Хочу научиться создавать пользовательские объекты. Решил начать со стропильной системы. А именно со стропильной ноги. Вот к примеру прямоугольник созданный из замкнутой полилинии. Необходимо чтобы при изменении высоты и ширины, была кратность 50мм. А также пределы указать. А вот длину сколько угодно растягивать с также максимальным пределом необходимо.
Вот с чего я начал.
1. Нарисовал прямоугольник, задал размеры, этим размерам задал параметры.
2. Далее в мастере объектов добавил 1 исполнение, и 2 вида в нем.
3. Потом нажал мастер скрипта, в нем начал вбивать нужные мне параметры и встал в тупик, как мне сделать так чтобы массу автоматом считало (shirina*visota*dlina*ves), и изменять её нельзя было бы?
4. А также, как сделать так чтобы Объемный вес "ves" можно было бы выбирать из выпадающего списка, 500, 550, 600?

Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 205
Размер:	34.7 Кб
ID:	170113  Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 212
Размер:	74.7 Кб
ID:	170114  

Просмотров: 16576
 
Непрочитано 10.05.2016, 12:55
2 | #2
LynxM


 
Регистрация: 17.08.2010
Kyiv
Сообщений: 688
<phrase 1= Отправить сообщение для LynxM с помощью Skype™


Цитата:
Сообщение от erikbond Посмотреть сообщение
3. Потом нажал мастер скрипта, в нем начал вбивать нужные мне параметры и встал в тупик, как мне сделать так чтобы массу автоматом считало (shirina*visota*dlina*ves), и изменять её нельзя было бы?
4. А также, как сделать так чтобы Объемный вес "ves" можно было бы выбирать из выпадающего списка, 500, 550, 600?
3. - пишем значение массы, а потом на следующем этапе "Вычисление параметров" пишем формулу.
4. - Мастер объектов - Табличные - задаем нужные табличные параметры.
__________________
Лучше не обещать, чем обещать и не исполнять.
LynxM вне форума  
 
Автор темы   Непрочитано 10.05.2016, 13:25
#3
erikbond

Инженер-конструктор-LEGO
 
Регистрация: 22.05.2011
Ульяновск
Сообщений: 806


Цитата:
Сообщение от LynxM Посмотреть сообщение
3. - пишем значение массы, а потом на следующем этапе "Вычисление параметров" пишем формулу.
4. - Мастер объектов - Табличные - задаем нужные табличные параметры.
Что-то не меняет он как выпадающий список в свойствах. Да и при заходе в свойства стропилы, также не меняет вес. Что может быть не так?
Миниатюры
Нажмите на изображение для увеличения
Название: 3.jpg
Просмотров: 74
Размер:	23.0 Кб
ID:	170116  Нажмите на изображение для увеличения
Название: 4.jpg
Просмотров: 72
Размер:	35.1 Кб
ID:	170117  Нажмите на изображение для увеличения
Название: 5.jpg
Просмотров: 69
Размер:	43.2 Кб
ID:	170118  Нажмите на изображение для увеличения
Название: 6.jpg
Просмотров: 68
Размер:	35.7 Кб
ID:	170119  
erikbond вне форума  
 
Непрочитано 10.05.2016, 15:40
1 | #4
MCAD


 
Блог
 
Регистрация: 05.01.2005
Сообщений: 1,694


Цитата:
Сообщение от erikbond Посмотреть сообщение
3. Потом нажал мастер скрипта, в нем начал вбивать нужные мне параметры и встал в тупик, как мне сделать так чтобы массу автоматом считало (shirina*visota*dlina*ves), и изменять её нельзя было бы?
Так зачем вы вставляете формулу в "значение по умолчанию"
Вам нужна следующая закладка.
Например:
Миниатюры
Нажмите на изображение для увеличения
Название: img-2016-05-10-18-37-31.png
Просмотров: 136
Размер:	41.6 Кб
ID:	170124  
MCAD вне форума  
 
Автор темы   Непрочитано 10.05.2016, 16:05
#5
erikbond

Инженер-конструктор-LEGO
 
Регистрация: 22.05.2011
Ульяновск
Сообщений: 806


Цитата:
Сообщение от MCAD Посмотреть сообщение
Так зачем вы вставляете формулу в "значение по умолчанию"
Вам нужна следующая закладка.
Например:
Это я уже вбил. Massa = ((Visota*Dlina*Shirina)/1000/1000/1000)*Ves);
1. Вот бьюсь над тем, чтобы табличные данные шли в нужном мне порядке (см. картинки). Надо чтобы соответственно 1 , 2 , 3 . А он зараза мне сортирует 2 , 1 , 3. Какую ему дать команду чтобы отсортировал как нужно?
2. Еще одна битва над этим объектом состоит в следующем. Имя в спецификации. Я вбил вроде бы как надо, Брус {Shirina} x {Visota} L={Dlina}; А выдает пустоту в фигурных скобках.
3. Также я не смог добиться того, чтобы растягивать стропило в длину, отсутствует ручка для растягивания. Не пойму какой параметр необходимо задавать точкам, чтобы тянулось вдоль стропилы (то есть увеличивалась длина стропилы)?
Миниатюры
Нажмите на изображение для увеличения
Название: 7.jpg
Просмотров: 44
Размер:	89.6 Кб
ID:	170125  Нажмите на изображение для увеличения
Название: 8.jpg
Просмотров: 40
Размер:	38.8 Кб
ID:	170126  Нажмите на изображение для увеличения
Название: 9.jpg
Просмотров: 30
Размер:	41.4 Кб
ID:	170127  Нажмите на изображение для увеличения
Название: 10.jpg
Просмотров: 541
Размер:	70.6 Кб
ID:	170128  
erikbond вне форума  
 
Непрочитано 10.05.2016, 16:20
1 | #6
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,295
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от erikbond Посмотреть сообщение
1. Вот бьюсь над тем, чтобы табличные данные шли в нужном мне порядке (см. картинки). Надо чтобы соответственно 1 , 2 , 3 . А он зараза мне сортирует 2 , 1 , 3. Какую ему дать команду чтобы отсортировал как нужно?
все же скрипт в сообщении принес бы больше пользы, по фото сложно лечить
Цитата:
Сообщение от erikbond Посмотреть сообщение
2. Еще одна битва над этим объектом состоит в следующем. Имя в спецификации. Я вбил вроде бы как надо, Брус {Shirina} x {Visota} L={Dlina}; А выдает пустоту в фигурных скобках.
в базе стандартных есть куча объектов, они конечно не идеальны, но почему бы не подсмотреть как сделано там??
Цитата:
Сообщение от erikbond Посмотреть сообщение
3. Также я не смог добиться того, чтобы растягивать стропило в длину, отсутствует ручка для растягивания. Не пойму какой параметр необходимо задавать точкам, чтобы тянулось вдоль стропилы (то есть увеличивалась длина стропилы)?
все же я бы начал от простого к сложному, а не наоборот
пройти для начала этот пример
прочитать этот труд. (хотя бы с поиском в части интересующего, что зачем и для чего в скрипте, терминов и определений)
на нанофоруме, Deyankov давал ссылку на эти уроки
На некоторые вопросы есть ответы в подписях участников обсуждения, полезно почитать там.
======
Тогда все получится.
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 10.05.2016, 16:21
#7
erikbond

Инженер-конструктор-LEGO
 
Регистрация: 22.05.2011
Ульяновск
Сообщений: 806


Цитата:
Сообщение от erikbond Посмотреть сообщение
3. Также я не смог добиться того, чтобы растягивать стропило в длину, отсутствует ручка для растягивания. Не пойму какой параметр необходимо задавать точкам, чтобы тянулось вдоль стропилы (то есть увеличивалась длина стропилы)?
Проблема отпала, благодаря методу тыка и Якову Кореневу за видео "Простейший проём с ручками", параметры по X, точке не установил.
erikbond вне форума  
 
Непрочитано 10.05.2016, 16:30
#8
MCAD


 
Блог
 
Регистрация: 05.01.2005
Сообщений: 1,694


У меня вопрос к автору темы: "Зачем (и как так получилось) что вы создаете объект MCS System"



Ничего страшного в этом нет. Но работа с этим "Типом объекта" не документирована. Для служебного пользования
MCAD вне форума  
 
Автор темы   Непрочитано 10.05.2016, 16:42
#9
erikbond

Инженер-конструктор-LEGO
 
Регистрация: 22.05.2011
Ульяновск
Сообщений: 806


Цитата:
Сообщение от MCAD Посмотреть сообщение
У меня вопрос к автору темы: "Зачем (и как так получилось) что вы создаете объект MCS System"
А я даже не знаю. Вроде как не влияет ни на что (я так думаю). Начал создавать объект и это вроде как было уже, или подцепил откуда то. Или это что то значит? МКС (космическая станция) вся ассоциация :-) откуда появилась, даже не знаю.

Цитата:
Сообщение от doctorraz Посмотреть сообщение
все же скрипт в сообщении принес бы больше пользы, по фото сложно лечить
Прилепил сам файл. А сам скрипит вот:
Цитата:
SVersion = 2;
ObjectDescription = "Стропило";

function ActHeader {
NPart=1;
Public( Pozition, "Позиция",
Dlina, "Длина",
Ugol, "Угол",
Oboznach, "Обозначение",
KonDlina, "Длина реал с углом",
Massa, "Масса" );
Protected( seted, Visota, Shirina, Ves );
Changeable( Pozition, Dlina, Ugol, Oboznach );
OnDlgBeforeSelectParam = 1;
ShowWhenSelPnt = 1;
ContourOnLine = 1;
};

function OnInitialization {
LoadInCache( Visota, Shirina, Ves );
if(seted == UnknownValue) {
seted=1;
rZOrder=100;
Pozition = "1";
Dlina = 1000;
Ugol = 30;
Oboznach = "Стропило";
SelectInCache( "kFirst", "Visota", "~", 150, "Shirina", "~", 50, "Ves", "~", 1 );
KonDlina = 1;
Massa = 1;
};
};

function SetGripPoint {
NGrip = 1;
pntGrip0 = pntOrigin;
//start auto generation for view VFRONT
if (lViewType == VFRONT) {
NGrip = 2;
pntGrip0 = pntOrigin;
pntGrip1 = pntOrigin + vecDirection*(Dlina) + vecPlane*(0);
}
//end auto generation for view VFRONT

//start auto generation for view VLEFT
if (lViewType == VLEFT) {
NGrip = 2;
pntGrip0 = pntOrigin;
pntGrip1 = pntOrigin + vecDirection*(Dlina) + (-vecNormal)*(0);
}
//end auto generation for view VLEFT

};

function OnMakeParameters {
strTheName = "Stropila";
strTheType = "MCS System";
strTheSubType = "MCS System";
KonDlina = Dlina/cos(Ugol);
Massa = ((Visota*Dlina*Shirina)/1000/1000/1000)*Ves);
};

function OnDialog {
LoadInCache( Visota, Shirina, Ves );
UniDialog( DBFLD, Visota, Shirina, Ves, VFLD, Pozition,"Позиция", Dlina,"Длина", Ugol,"Угол", Oboznach,"Обозначение", TVIDS,lViewType,"All",VIEW,"Vids");
};

function OnChangeParameters {
Pozition = new.Pozition;
Dlina = new.Dlina;
Ugol = new.Ugol;
Oboznach = new.Oboznach;
Handled = OBJ_HANDLED;
};

function OnSelectParam {
Dlina = rXcoord;
if(Dlina < 100) Dlina = 100;
if(Dlina > 10000) Dlina = 10000;
};

function BeforeConnect {
ResetLastConstraint();
}

//strPartName = Брус {Shirina} x {Visota} L={Dlina};

function OnMoveGripPoint {
if (NMovingGrip == 0) {
pntOrigin = pntGrip0;
}
OXPlane = Plane(pntOrigin,vecDirection);
OYPlane = Plane(pntOrigin,vecPlane);
vecNormal = getLocalNormal(vecDirection,vecPlane);
OZPlane = Plane(pntOrigin,vecNormal);

//start auto generation for view VFRONT
if (lViewType == VFRONT) {
if (NMovingGrip == 1) {
Dlina = Dlina + ((OXPlane - pntGrip1) - (Dlina));
}
}
//end auto generation for view VFRONT
//start auto generation for view VLEFT
if (lViewType == VLEFT) {
if (NMovingGrip == 1) {
Dlina = Dlina + ((OXPlane - pntGrip1) - (Dlina));
}
}
//end auto generation for view VLEFT

}


Цитата:
Сообщение от doctorraz Посмотреть сообщение
в базе стандартных есть куча объектов, они конечно не идеальны, но почему бы не подсмотреть как сделано там??
Да вроде все также вбиваю. Но чего то явно не хватает. Буду проверять досконально тогда.

----- добавлено через 45 сек. -----
Цитата:
Сообщение от MCAD Посмотреть сообщение
Ничего страшного в этом нет. Но работа с этим "Типом объекта" не документирована. Для служебного пользования
тогда понятно. А какой тогда тип лучше прописывать?
Вложения
Тип файла: rar Stropila.rar (21.2 Кб, 21 просмотров)
erikbond вне форума  
 
Непрочитано 10.05.2016, 16:50
#10
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,295
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от erikbond Посмотреть сообщение
1. Вот бьюсь над тем, чтобы табличные данные шли в нужном мне порядке (см. картинки). Надо чтобы соответственно 1 , 2 , 3 . А он зараза мне сортирует 2 , 1 , 3. Какую ему дать команду чтобы отсортировал как нужно?
ты ему сам задал
Код:
[Выделить все]
function OnDialog {
LoadInCache( Visota, Shirina, Ves);
UniDialog( DBFLD, Visota, Shirina , Ves, VFLD, Pozition,"Позиция", Dlina,"Длина", Ugol,"Угол", Oboznach,"Обозначение", TVIDS,lViewType,"All",VIEW,"Vids");
};
поменяй местами ширину и высоту в скрипте)))
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 10.05.2016, 16:50
1 | #11
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,604


дежавю.
кто-то на днях выкладывал видео с параметрическим объектом стропил.
...
вот, нашёл: https://www.youtube.com/watch?v=TeNwSx8XLVs
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 10.05.2016, 16:56
1 | #12
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,295
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от erikbond Посмотреть сообщение
2. Еще одна битва над этим объектом состоит в следующем. Имя в спецификации. Я вбил вроде бы как надо, Брус {Shirina} x {Visota} L={Dlina}; А выдает пустоту в фигурных скобках.
в секции OnMakeParameters
параметру strPartName
присвой что хотел ( в самом конце функции)
типа
Код:
[Выделить все]
strPartName="Брус " + Shirina +" x "+Visota+ " L="+Dlina
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 10.05.2016 в 17:28.
doctorraz вне форума  
 
Непрочитано 10.05.2016, 18:28
#13
MCAD


 
Блог
 
Регистрация: 05.01.2005
Сообщений: 1,694


Цитата:
Сообщение от erikbond Посмотреть сообщение
Или это что то значит? МКС (космическая станция) вся ассоциация :-) откуда появилась, даже не знаю.
Не...
СПДС GraphiCS - это только один из семейства продуктов на одном ядре, под разные задачи и разные платформы. MCS == MechaniCS
Increase Size Decrease Size Нажмите для просмотра
http://www.youtube.com/watch?v=6e1v_pFx1Z4&index=36&list=PL1MQqrS2qjWOf7QblUvnRtMIN7GUSUhxo
MCAD вне форума  
 
Автор темы   Непрочитано 10.05.2016, 21:20
#14
erikbond

Инженер-конструктор-LEGO
 
Регистрация: 22.05.2011
Ульяновск
Сообщений: 806


Цитата:
Сообщение от doctorraz Посмотреть сообщение
ты ему сам задал
Код:
[Выделить все]
function OnDialog {
LoadInCache( Visota, Shirina, Ves);
UniDialog( DBFLD, Visota, Shirina , Ves, VFLD, Pozition,"Позиция", Dlina,"Длина", Ugol,"Угол", Oboznach,"Обозначение", TVIDS,lViewType,"All",VIEW,"Vids");
};
поменяй местами ширину и высоту в скрипте)))
1. Поменял. Вроде нормально все работало. Затем необходимо было дополнить базу данных. Сохранил скрипт. И снова Ширина с Высотой поменялись местами. Видимо изменение этих параметров именно в этом месте - временное.
2. Также пропала точка растягивания которой я присвоил "Dlina". А пропала она также, после того как я добавил в базу данных некоторые параметры.

Это глюк программы, или что происходит? Или же необходимо сперва продумать весь скрипт так сказать "на бумаге" а потом его вбивать и сохранять без дополнений?
erikbond вне форума  
 
Непрочитано 10.05.2016, 21:26
#15
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,295
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от erikbond Посмотреть сообщение
Это глюк программы, или что происходит? Или же необходимо сперва продумать весь скрипт так сказать "на бумаге" а потом его вбивать и сохранять без дополнений?
так и должно быть, если ты скрипт каждый раз генерируешь мастером(((
мастер затирает предыдущий и генерит по новому, а у него свое видение (неконтроллируемое и никому неподвластное)
отсюда вывод: первый раз скрипт можно сделать мастером, а потом ручками, что бы не потерять изменения. (опять же полный контроль над кодом)
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 11.05.2016, 05:03
1 | #16
MCAD


 
Блог
 
Регистрация: 05.01.2005
Сообщений: 1,694


Цитата:
Сообщение от erikbond Посмотреть сообщение
Это глюк программы, или что происходит?
Так он (мастер скриптов) же честно предупреждает, что скрипт перетрётся.
Цитата:
Сообщение от doctorraz Посмотреть сообщение
первый раз скрипт можно сделать мастером, а потом ручками, что бы не потерять изменения.
Если объект сложный, и на нем накладываются сложные зависимости, то придется редактировать руками.
Но в таком случае мало "на бумаге" составить скрипт. Нужно представить в голове все возможные взаимодействия по типам и подтипам объектов, параметрам и прочее.
А для простых объектов все работает достаточно функционально.

Работа "Мастера скриптов"

Increase Size Decrease Size Нажмите для просмотра
http://youtu.be/rqq5jWBDqd8?list=PL1MQqrS2qjWNfYGu1IyeLR3l5YGd4N20p&t=23
Доработка напильником:

Increase Size Decrease Size Нажмите для просмотра
http://www.youtube.com/watch?v=W417z8ivCcc&list=PL1MQqrS2qjWNfYGu1IyeLR3l5YGd4N20p&index=9

Последний раз редактировалось MCAD, 11.05.2016 в 05:38.
MCAD вне форума  
 
Непрочитано 11.05.2016, 05:09
2 | #17
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
<phrase 1=


А я вам предлагаю, пока вы еще не наработали гору объектов, начать разработку со стандартизации публичных параметров.
Я уже писал как-то об этом.
Эти параметры применены в стандартных объектах СПДС, эти параметры применяю я. В последующем вам легко будет пользоваться моими объектами, а мне вашими.
Konstruktiv54 вне форума  
 
Автор темы   Непрочитано 11.05.2016, 09:35
#18
erikbond

Инженер-конструктор-LEGO
 
Регистрация: 22.05.2011
Ульяновск
Сообщений: 806


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
А я вам предлагаю, пока вы еще не наработали гору объектов, начать разработку со стандартизации публичных параметров.
Я уже писал как-то об этом.
Эти параметры применены в стандартных объектах СПДС, эти параметры применяю я. В последующем вам легко будет пользоваться моими объектами, а мне вашими.
Это конечно все хорошо. И удобно в будущем. Но бывают случаи когда необходимо срочно запилить свой объект на скорую руку, тем самым наименования приходят в голову на подобии "Что вижу, то пою". Ну а идея в принципе здравая.

И кстати геморрой с последовательностью размещения табличных данных, решается на вкладке "Вычисление параметров" в мастере объектов. Стрелочками передвигать эти параметры, и соответственно столбцы в табличных данных будут двигаться. А то перебивать постоянно код, проблемно конечно. Осталась проблема с точкой растягивания. Она все также слетает при изменении кода.
erikbond вне форума  
 
Непрочитано 11.05.2016, 09:42
#19
MCAD


 
Блог
 
Регистрация: 05.01.2005
Сообщений: 1,694


Цитата:
Сообщение от erikbond Посмотреть сообщение
Она все также слетает при изменении кода.
Перераспознайте исполнения после создания скрипта мастером.
MCAD вне форума  
 
Автор темы   Непрочитано 11.05.2016, 09:47
#20
erikbond

Инженер-конструктор-LEGO
 
Регистрация: 22.05.2011
Ульяновск
Сообщений: 806


Цитата:
Сообщение от MCAD Посмотреть сообщение
Перераспознайте исполнения после создания скрипта мастером.
Вы имеете ввиду заново все виды выделять по одному и прожимать "Параметрическое распознавание вида"? А если видов будет штук 20-30, также придется перераспознавать? Я так понимаю, эта движущаяся точка "function OnMoveGripPoint " будет все также сбрасываться при изменении скрипта?
erikbond вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > ПО от CSoft > СПДС 10. С чего начать при создании пользовательского объекта, к примеру "стропильная нога"?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консервация объектов незавершенного строительства msv_mnv Обследование зданий и сооружений 6 11.11.2017 23:07
Применение в графике пользовательского объекта СПДС текста (проблемы при _mirror) AlexV ПО от CSoft 7 01.02.2016 12:47
Ввод в эксплуатацию салона красоты - нужно ли (и в какой форме) согласование с пожарниками ? drill_man Прочее. Архитектура и строительство 4 20.09.2013 12:03
Снос (демонтаж) химически опасного объекта. С чего начать? Aleksandr86 Технология и организация строительства 6 21.09.2010 10:18