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

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > ПО от CSoft > Параметрические объекты СПДС для армирования ЖБК

Параметрические объекты СПДС для армирования ЖБК

Ответ
Поиск в этой теме
Непрочитано 05.02.2013, 13:26 3 |
Параметрические объекты СПДС для армирования ЖБК
swell{d}
 
гадание на конечно-элементной гуще
 
Düsseldorf
Регистрация: 31.05.2006
Сообщений: 7,604

В nanoCAD СПДС пользователь может создавать собственные параметрические объекты.
Использование пользовательских параметрических объектов может компенсировать отсутствующие на данный момент динамические блоки.

Ниже представлено видео Михаила Гладких (mihanick) про создание параметрических объектов на примере элемента обрамления проёмов:
http://youtu.be/EZwO6EIrrKQ

В этой теме буду выкладывать свои наработки. На данный момент есть:
- Фоновое армирование плит
- Обрамление проёмов
- Доп. армирование - зоны распределения
- Сопутствующие таблицы
- Маркеры для обрамлений и зон распределения
- Сваи

Предложения-пожелания приветствуются

Статьи на wiki:
- Основная статья

Видео с примером использования

П.С. Для установки вызвать Базу элементов (из панели инструментов или командой spbrowser). В Базе элементов выбрать любую папку, щёлкнуть по ней правой кнопкой мыши, выбрать импорт из файла и загрузить все файлы с расширением .mcd из распакованного архива

Последняя сборка в сообщении #38 или на вики
__________________
.: WikiЖБК + YouTube :.

Последний раз редактировалось swell{d}, 12.08.2013 в 23:43.
Просмотров: 229390
 
Непрочитано 16.01.2015, 14:30
#301
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от doctorraz Посмотреть сообщение
..объявление типа переменной не требуется, но если она нужна не только в скрипте, то декларировать ее необходимо.
Ты бы почитал сперва по теме, тут ссылок море, методом тыка далеко не уедешь.
то, что деталь как-то работает это еще не значит, что она работает как задумано тобой )))
Offtop: Чукча не читатель, чукча - писатель!
Да я читаю справку, и спдс-овские примеры.. только без метода тыка хрен воткнешь всю эту информацию в мозг! а если воткнешь, то не прорастет.. Системно изучить теорию, а потом применять было б неплохо, да нету времени и сил..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 16.01.2015, 15:05
#302
doctorraz

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


Цитата:
Сообщение от AlexV Посмотреть сообщение
Да я читаю справку, и спдс-овские примеры.. только без метода тыка хрен воткнешь всю эту информацию в мозг! а если воткнешь, то не прорастет.. Системно изучить теорию, а потом применять было б неплохо, да нету времени и сил..
Offtop:
ситсемно изучать бесполезно, всеравно забудутся нюансы, плясать от поставленной задачи.
От простого к сложному, а не наоборот )))
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 16.01.2015, 16:02
#303
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от doctorraz Посмотреть сообщение
на видео прекрасно видно, что внутри исполнения у тебя все виды "фронт", это вызывает ошибку при сохранении детали.
Должно помочь: внутри исполнения все виды сделай разными, неважно как (верх, низ, с разрезом, с размерами) если такая же бодяга в другом исполнеии, то то же измени виды.
Только после этого сохрани, потом можешь попытаться удалять, должно получиться.
Увы.. Не получилось.. Глюк, однако!
Я так понял, что если мастер скриптов вызвать для определения свойств параметров и прочаяя, - то при сохранении результатов все, что было нажито непосильным трудом самодельного в скрипте - затирается? А с другой стороны, все что делается в этом мастере, - можно просто прописать непосредственно в коде скрипта? Или вновь вводимые параметры надо обязательно через мастер пропускать?
Как, например, имя у параметра поменять, - надо лезть в мастер скриптов или просто в тексте его заренэймить?
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!

Последний раз редактировалось AlexV, 16.01.2015 в 16:16.
AlexV вне форума  
 
Непрочитано 16.01.2015, 16:32
#304
Konstruktiv54


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


Уходите от мастера скрипта, пишите самостоятельно. Так быстрее прочувствуете логику
Konstruktiv54 вне форума  
 
Непрочитано 16.01.2015, 16:44
#305
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
Уходите от мастера скрипта, пишите самостоятельно. Так быстрее прочувствуете логику
Да я ухожу, только как вот, к примеру, - новый параметр добавить или старому имя поменять? По идее бы, - в дереве проекта должно они есть и во табличке.. почему бы и не менять имя по, к примеру, ПКМ? а не меняют..
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 54
Размер:	16.9 Кб
ID:	142052  
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 16.01.2015, 16:51
#306
Konstruktiv54


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


Перейдите на панель "Скрипт", там все это написано в виде текста. http://clip2net.com/s/3azS3gW. Там добавляете параметры столько сколько вам надо и какие надо, в виде текста.
Konstruktiv54 вне форума  
 
Непрочитано 19.01.2015, 10:20
#307
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Товарищи, а подскажите, - из существующего объекта можно выдернуть исходную геометрию видов? В маркерах есть "экспорт исходной геометрии", - по идее, должно быть нечто аналогичное для всех объектов?

И еще вопрос - параметры можно добавлять в скрипте, объявляя их как Public в function ActHeader. При вставке объекта они проявляются в окне свойств.. А как сделать их редактируемыми пользователем из того жеж окна? Эмпирически занес в список Changeable(... в функции ActHeader, задал первичное значение в функции OnInitialization, в OnChangeParameters добавил строчку X=new.X, но в окне свойств сия переменная один хрен не активна.. Может, в OnDialog еще надо ее куда запихнуть?

..ага.. добавил строчку в function OnDialog: UniDialog(X,"XXX");
.. и переменная стала "изменяемой". Но теперь при вставке / редактировании объекта выскакивает пустая форма (а там у меня еще следом showForm("Form1"); живет..).
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!

Последний раз редактировалось AlexV, 19.01.2015 в 11:47.
AlexV вне форума  
 
Непрочитано 19.01.2015, 12:44
#308
doctorraz

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


Цитата:
Сообщение от AlexV Посмотреть сообщение
Товарищи, а подскажите, - из существующего объекта можно выдернуть исходную геометрию видов? В маркерах есть "экспорт исходной геометрии", - по идее, должно быть нечто аналогичное для всех объектов?
ага есть, вставляешь деталь на чертеж взрываешь, образмериваешь переменными , добавляешь точку вставки и по новой распознаешь в другом объекте. (если рисовать самому неохота)
Цитата:
Сообщение от AlexV Посмотреть сообщение
И еще вопрос - параметры можно добавлять в скрипте, объявляя их как Public в function ActHeader. При вставке объекта они проявляются в окне свойств.. А как сделать их редактируемыми пользователем из того жеж окна? Эмпирически занес в список Changeable(... в функции ActHeader, задал первичное значение в функции OnInitialization, в OnChangeParameters добавил строчку X=new.X, но в окне свойств сия переменная один хрен не активна.. Может, в OnDialog еще надо ее куда запихнуть?

..ага.. добавил строчку в function OnDialog: UniDialog(X,"XXX");
.. и переменная стала "изменяемой". Но теперь при вставке / редактировании объекта выскакивает пустая форма (а там у меня еще следом showForm("Form1"); живет..).
ты бы скриптик сюда выкладывал, и тебе проще спрашивать и желающие ответить не занимались телепатией ))), а то диалог слепого с глухим получается.
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 19.01.2015, 12:59
#309
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


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

Цитата:
Сообщение от doctorraz Посмотреть сообщение
ты бы скриптик сюда выкладывал, и тебе проще спрашивать и желающие ответить не занимались телепатией ))), а то диалог слепого с глухим получается.
Код:
[Выделить все]
function OnDialog {
	LoadInCache( L, Marka );
	UniDialog( DBFLD, b, L, Marka, DBINF ,massa, VFLD, Lx,"Длина на чертеже", BFLD, sh1, "Острие",VIDS,strDesignName,"All", TVIDS,lViewType,"All",VIEW,"Vids",N,"Номер сваи");
	Lm = 50;
	//UniDialog(N,"Номер сваи");
	//showForm("Form1");
};
Скрипт и объект скопированы из существующих в базе "тренировки для".. В свойствах свай не было "номера сваи" (оно понятно, шо можно нумерацию через маркер, наверное, сваять.. но захотелось вот так..), - добавил N. Строчка "UniDialog.." в оригинале была закомментена, и вызывалась форма.. Я, собственно, вызов формы закомментил и добавил в список параметров UniDialog N, - вроде все работает..
Цитата:
И теперь возник еще вопрос - можно ли (=как?) в состав распознаваемого 2d вида включить текст, - что бы в нем жил этот самый параметр "N", что бы видимость текста вкл/выкл, а высота оного зависела от масштаба объекта? Ну и что бы можно было его связать с ручкой и передвигать относительно объекта..
дошло.. текст в фигурных скобках = параметр.. Но при распознавании видов с текстом и вставке объекта получается хрень какая-то: внутри скобок живет параметр {L}, - а отображается почему-то "MARKA", если поселить там {L} - вообче непонятно
отображается..




..ну и еще, я так понимаю, есть возможность этот параметр N при вставке каждого объекта автоматом > на 1?
попробовал так: - не прокатило.. OnInitialization - это же создание объекта?
Код:
[Выделить все]
function OnInitialization {
.....
		if(N < 1) {
		  N =1;
		 } else {
		  N =N+1;
	       };
 ....
};
И еще родился вопрос: как назначить исполнение/вид, которые должны быть при вставке по умолчанию?

...а еще не могу найти функцию, которая конвертирует текст в число.. Есть такое?
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 351
Размер:	49.5 Кб
ID:	142151  
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!

Последний раз редактировалось AlexV, 19.01.2015 в 15:42.
AlexV вне форума  
 
Непрочитано 19.01.2015, 14:56
#310
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


...согласно справке, тип линий в объекте определяется заданием соостветствующих табличке параметрам объектов.. Создаю линии на слое "ШТРИХОВЫЕ" кошерного зеленого цвета, распознаю вид, - а в объекте линии один хрен как основные получаются.. Отчего?

.. и еще вопрос.. после редактирования объекта можно применить изменения к вставленным в чертеж ранее экземплярам?
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 46
Размер:	24.4 Кб
ID:	142145  
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!

Последний раз редактировалось AlexV, 19.01.2015 в 15:15.
AlexV вне форума  
 
Непрочитано 19.01.2015, 16:53
1 | #311
doctorraz

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


Цитата:
Сообщение от AlexV Посмотреть сообщение
...согласно справке, тип линий в объекте определяется заданием соостветствующих табличке параметрам объектов.. Создаю линии на слое "ШТРИХОВЫЕ" кошерного зеленого цвета, распознаю вид, - а в объекте линии один хрен как основные получаются.. Отчего?
читай еще раз справку, при распознавании мастер берет свойства непосредственно из примитива, слой и его свойства ему по барабану.
Offtop: я вот думаю, для кого я блог пишу??? Если одни и те же вопросы задают по сто раз (((

Цитата:
Сообщение от AlexV Посмотреть сообщение
.. и еще вопрос.. после редактирования объекта можно применить изменения к вставленным в чертеж ранее экземплярам?
копирование свойств АВТОКАД уже, что отменили???

----- добавлено через ~6 ч. -----
Цитата:
Сообщение от AlexV Посмотреть сообщение
..а если еще и образмеривать неохота?
это самый простой и очевидный способ,
есть неочевидный, править исполнение в скрипте руками, в этом деле весьма преуспел Konstruktiv54, хотя на мой взгляд это еще сложнее ))))
Цитата:
Сообщение от AlexV Посмотреть сообщение
Код:
[Выделить все]
function OnDialog {
	LoadInCache( L, Marka );
	UniDialog( DBFLD, b, L, Marka, DBINF ,massa, VFLD, Lx,"Длина на чертеже", BFLD, sh1, "Острие",VIDS,strDesignName,"All", TVIDS,lViewType,"All",VIEW,"Vids",N,"Номер сваи");
	Lm = 50;
	//UniDialog(N,"Номер сваи");
	//showForm("Form1");
};
Скрипт и объект скопированы из существующих в базе "тренировки для".. В свойствах свай не было "номера сваи" (оно понятно, шо можно нумерацию через маркер, наверное, сваять.. но захотелось вот так..), - добавил N. Строчка "UniDialog.." в оригинале была закомментена, и вызывалась форма.. Я, собственно, вызов формы закомментил и добавил в список параметров UniDialog N, - вроде все работает..
если б ты отформатировал код нормально, то понял, что:
Код:
[Выделить все]
function OnDialog {
	LoadInCache( L, Marka );
	UniDialog( 
		DBFLD, //это определяющие табличные параметры
			b, 
			L, 
			Marka, 
		DBINF ,	//справочные табличные параметры
			massa, 
		VFLD, 	//это произвольные параметры и справочные данные
			Lx,"Длина на чертеже",
			N,"Номер сваи",		//должно быть тут
		BFLD, 	// ключевое слово, после которого перечисляются переключатели - переменные, принимающие только значения 1 (ВКЛ) и 0 (ВЫКЛ).
			sh1, "Острие",
		VIDS,		//ключевое слово, после которого перечисляются исполнения объекта
			strDesignName,"All",	//показывать все исполнения
		TVIDS,	//ключевое слово, после которого перечисляются виды объекта
			lViewType,"All",	//показать все виды
		VIEW,"Vids",);		//ключевое слово, после которого следует тип слайдов из множества 
						//"Vids" - слайды исполнений объекта
						//"Hdr" - слайд заголовка объекта (Header)
						//"None" - нет слайдов
//		N,"Номер сваи");	//очевидно, что тут не место
//	Lm = 50;		// это непонятно вообще, что за зверь ))))
};
Цитата:
Сообщение от AlexV Посмотреть сообщение
дошло.. текст в фигурных скобках = параметр.. Но при распознавании видов с текстом и вставке объекта получается хрень какая-то: внутри скобок живет параметр {L}, - а отображается почему-то "MARKA", если поселить там {L} - вообче непонятно
отображается..
на верном пути, но мне трудно судить, какое значение в итоге получают переменные, подозреваю, что в итоге ты присвоил им такие значения сам ((((
Цитата:
Сообщение от AlexV Посмотреть сообщение
..ну и еще, я так понимаю, есть возможность этот параметр N при вставке каждого объекта автоматом > на 1?
попробовал так: - не прокатило.. OnInitialization - это же создание объекта?
Код:
[Выделить все]
function OnInitialization {
.....
		if(N < 1) {
		  N =1;
		 } else {
		  N =N+1;
	       };
 ....
};
и не получится...
OnInitialization это не создание объекта как таковое, это начальное задание значений по умолчанию.
Можно в теории обойтись без этой функции, но тогда не исключена ситуация, когда значения некоторых параметров будут неопределены и поведение детали может сать непредсказуемым.
На мой взгляд счетчик в скрипте реализовать не получится (по крайней мере "в лоб"), но можно поискать обходные пути:
вставлять объекты массивом или аля "раскладка плитки" затем маркировать универсальным маркером с автонумерацией;
создать одностороннюю зависимость по параметру N -> N+1, (но мне кажется это совсем изврат)))
Цитата:
Сообщение от AlexV Посмотреть сообщение
И еще родился вопрос: как назначить исполнение/вид, которые должны быть при вставке по умолчанию?
выше уже писал, в OnInitialization можно прописать:
Код:
[Выделить все]
function OnInitialization {
	if(seted == UnknownValue) {
		seted=1;
//.......
		strDesignName="Implementation1"; //исполнение 1
		lSimpleView=2;	//Если == 1 то соответственно вид упрощенный. Если == 2 то с разрезом, очевидно если ==0 то обычный вид.
//......
	} 
}
lViewType вид детали (VFRONT, VLEFT, VRIGHT, VTOP, VBOTTOM) , к сожалению из скрипта мне задать так и не удалось (хотя кое-где в объектах СПДС встречается VFRONT, но это ни о чем не говорит, он ведь и так по умолчанию фронт)))), может, кто из гуру подскажет, где тут собака порылась )))?
Цитата:
Сообщение от AlexV Посмотреть сообщение
...а еще не могу найти функцию, которая конвертирует текст в число.. Есть такое?
такой функции нет, а для чего может такое понадобиться?
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 19.01.2015 в 22:54.
doctorraz вне форума  
 
Непрочитано 20.01.2015, 09:48
#312
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от doctorraz Посмотреть сообщение
копирование свойств АВТОКАД уже, что отменили???
Да, но при копировании свойств меняются значения всех параметров.. В том числе и "Номер сваи", - а до автоматической нумерации я еще не дошел, приходится вручную или через табличку с отчетом перещелкивать..
А можно ли как-то группе выделенных объектов поменять исполнение/вид? В свойствах вроде оно не отображается, перещелкивать поштучно - хреновый варьянт, копирование свойств - меняет значение параметров, которые менять не нужно..
Кстати сказать, отчего-то не работает "протягивание за угол" с параметрами объекта СПДС (хотя с атрибутами блоков - работает..). Вообче, велосипед сей уже swell{d} изобрел, но - увы - древняя версия спдс у меня, - на чужом не покатаешься..

Цитата:
Сообщение от doctorraz Посмотреть сообщение
на верном пути, но мне трудно судить, какое значение в итоге получают переменные, подозреваю, что в итоге ты присвоил им такие значения сам ((((
Да вроде в окне свойств - отображаются другие (верные) значения..
Цитата:
Сообщение от doctorraz Посмотреть сообщение
lViewType вид детали (VFRONT, VLEFT, VRIGHT, VTOP, VBOTTOM) , к сожалению из скрипта мне задать так и не удалось (хотя кое-где в объектах СПДС встречается VFRONT, но это ни о чем не говорит, он ведь и так по умолчанию фронт)))), может, кто из гуру подскажет, где тут собака порылась )))?


такой функции нет, а для чего может такое понадобиться?
кстати, глюк с невозможностью удалить вид или исполнение - во всех объектах.. независимо от того, какой им присваеваешь lViewType..
А функция конвертации текста в число - пытался взять из строковой переменной число, помучать его арифметикой и вернуть обратно в строку..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!

Последний раз редактировалось AlexV, 20.01.2015 в 09:54.
AlexV вне форума  
 
Непрочитано 20.01.2015, 10:27
#313
doctorraz

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


Цитата:
Сообщение от AlexV Посмотреть сообщение
Да, но при копировании свойств меняются значения всех параметров.. В том числе и "Номер сваи", - а до автоматической нумерации я еще не дошел, приходится вручную или через табличку с отчетом перещелкивать..
А можно ли как-то группе выделенных объектов поменять исполнение/вид? В свойствах вроде оно не отображается, перещелкивать поштучно - хреновый варьянт, копирование свойств - меняет значение параметров, которые менять не нужно..
исполнение можно менять через свойства, вид только через форму.
Цитата:
Сообщение от AlexV Посмотреть сообщение
Кстати сказать, отчего-то не работает "протягивание за угол" с параметрами объекта СПДС (хотя с атрибутами блоков - работает..). Вообче, велосипед сей уже swell{d} изобрел, но - увы - древняя версия спдс у меня, - на чужом не покатаешься..
на предыдущей странице я подробно расписал, как сделать растягивание
Цитата:
Сообщение от AlexV Посмотреть сообщение
Да вроде в окне свойств - отображаются другие (верные) значения..
выложи объект и исходную графику, будет время посмотрю
Цитата:
Сообщение от AlexV Посмотреть сообщение
кстати, глюк с невозможностью удалить вид или исполнение - во всех объектах.. независимо от того, какой им присваеваешь lViewType..
то же самое дай посмотреть, возможно глюк СПДС
Цитата:
Сообщение от AlexV Посмотреть сообщение
А функция конвертации текста в число - пытался взять из строковой переменной число, помучать его арифметикой и вернуть обратно в строку..
если ты имеешь в виду преобразовать , один -в 1, сто - в 100, то такой функции нет.
Если же у тебя текстовом в поле =100 и допустим числовое в другом поле =20, то:
100+20=120,
""+100+20=10020
"100"+20=10020
100_пробел+20=100_пробел20
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 20.01.2015 в 19:43.
doctorraz вне форума  
 
Непрочитано 20.01.2015, 10:37
#314
Konstruktiv54


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


doctorraz, как думаешь, можно ли устроить зависимости между таблицей спдс и объектом?
и второй вопрос...можно ли объекту вручную указать объект с которого надо считывать зависящие параметры по типу как в таблице выбираешь объекты?
Сам подумал, и на первый вопрос - думаю что сегодня это фантастика...да и второй походу тоже ))
Собственно говоря целью является автоматическое заполнение полей форматов, для КЖИшек
Просто в голове уже мысли - может уйти от стандатных форматов, попробовать их в виде параметрических объектов оформить...

Последний раз редактировалось Konstruktiv54, 20.01.2015 в 11:22.
Konstruktiv54 вне форума  
 
Непрочитано 20.01.2015, 11:47
#315
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от doctorraz Посмотреть сообщение
выложи объект и исходную графику, будет время посмотрю
то же самое дай посмотреть, возможно глюк СПДС
если ты имеешь в виду преобразовать , один -в 1, сто - в 100, то такой функции нет.
Если же у тебя текстовом в поле =100 и допустим числовое в другом поле =20, то:
100+20=120,
""+100+20=10020
"100"+20=10020
100_пробел+20=10020
Вот.. Я импортировал существующий объект "свая" из недр СПДС и немного покопался во внутренностях..
Вложения
Тип файла: zip Свая.zip (29.5 Кб, 30 просмотров)
Тип файла: dwg
DWG 2010
свая.dwg (70.3 Кб, 1499 просмотров)
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 20.01.2015, 13:39
1 | #316
doctorraz

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


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
doctorraz, как думаешь, можно ли устроить зависимости между таблицей спдс и объектом?
не совсем понял вопрос??? она же реализована через отчеты.. или ты другое имеешь в виду?
Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
и второй вопрос...можно ли объекту вручную указать объект с которого надо считывать зависящие параметры по типу как в таблице выбираешь объекты?
табличный выбор при коннекте наверное вряд ли, но при установке зависимости можно обработать кучу условий, по типу объекта к которому присоединяемся, его исполнению, виду, плюс к этому можно в форме родительского объекта (не только в скрипте) задавать условия как и к кому цепляться.
Опять же зависимость можно использовать только параметрическую, т.е. детали связаны только полями, а геометрия и положение произвольные
Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
Собственно говоря целью является автоматическое заполнение полей форматов, для КЖИшек
Просто в голове уже мысли - может уйти от стандатных форматов, попробовать их в виде параметрических объектов оформить...
если мы говорим о форматах оформления чертежа... зачем уходить, альбомы СПДС конечно не очень ((
но вот допустим подшивка + формат СПДС удобная штука.

----- добавлено через ~6 мин. -----
Цитата:
Сообщение от AlexV Посмотреть сообщение

отображается..
переименуй текст на чертеже вот так {""+N}
будет показывать номер.
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 20.01.2015 в 14:02.
doctorraz вне форума  
 
Непрочитано 20.01.2015, 14:15
#317
lionzoll


 
Регистрация: 06.12.2010
Сообщений: 186


Подскажите пожалуйста, как сделать чтобы один параметрический объект не перекрывал другой (не скрывал), используется параметрический объект и из набора объектов для Ж.б с сайта Swell , объект - доп. армирование, и когда накладываеш один объект доп. армирования на другой , то иногда он скрывает часть лежащего под ним объекта, в свойствах "перекрывать объекты и маскировать объекты" стоит No.
lionzoll вне форума  
 
Непрочитано 20.01.2015, 14:43
#318
Konstruktiv54


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


lionzoll,
Все зависит от объекта. Насколько я понял эту систему, есть две возможности перекрытия:
1. Маскировка, которая перекрывает все примитивы по всей площади объекта, довольно тяжела для настройки уровней перекрытия.
2. Вырезание, которое зависит от контура перекрытия заданного в объекте. В этом случае легко настраивать уровни перекрытия параметром ZOrder он же Порядок следования.

doctorraz, я довольно сумбурно выразил свои мысли.
1. Что касается таблицы, я просто хотел ограничить область ее выбора. Тоесть грубо говоря - объект прямоугольник. Таблица связанная с этим объектом выбирает элементы для работы только внутри этого прямоугольника. Ну или например связать таблицу с форматом, что бы таблица выбирала объекты только внутри границ этого формата.
2. Если говорить напрямую, то альбомы вообще никуда не годятся )) Вариант который ты у себя опубликовал, может быть и ничего...но у меня ярко выраженная аллергия к подшивкам. Но суть ни в том. Пакетная печать у меня работает исправно и в пространстве модели. Меня больше интересует автоматическое заполнение штампа листа.
Ну тоесть у меня есть параметрический объект: плита, в ней уже все параметры есть (название, шифр, масса), я хочу что бы они заполнялись автоматически. Шаблоны не предлагать. Сейчас я их и использую, но это все равно долго.

Последний раз редактировалось Konstruktiv54, 20.01.2015 в 14:49.
Konstruktiv54 вне форума  
 
Непрочитано 20.01.2015, 15:07
#319
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
doctorraz, я довольно сумбурно выразил свои мысли.
1. Что касается таблицы, я просто хотел ограничить область ее выбора. Тоесть грубо говоря - объект прямоугольник. Таблица связанная с этим объектом выбирает элементы для работы только внутри этого прямоугольника. Ну или например связать таблицу с форматом, что бы таблица выбирала объекты только внутри границ этого формата.
То есть что бы не в отчете задавать прямоугольник, а во всех отчетах таблицы объекты/область выбора были предопределены? Я бы тоже так хотел! Но, вроде говорят, нельзя..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 20.01.2015, 22:04
1 | #320
doctorraz

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


Цитата:
Сообщение от AlexV Посмотреть сообщение
Вот.. Я импортировал существующий объект "свая" из недр СПДС и немного покопался во внутренностях..
я посмотрел..
1.Виды удаляются без проблем, похоже глюк твоей версии СПДС
2. В разных исполнениях, у тебя виды не совпадают, понимаю учишься... начинай делать сразу по нормальному, меньше непоняток будет и быстрее разберешься.
3. я писал, что надо начинать от простого к сложному, ты хватаешься сразу за все... уроки по СПДС есть, пройди хоть парочку по созданию объекта от начала до конца, многое сразу станет более понятным.
вот собственно твой код.. сразу оговорюсь, логику и математику не смотрел, исправил и закомментировал только грубые ошибки
Код:
[Выделить все]
SVersion = 2;
ObjectDescription = "Сваи железобетонные";
function ActHeader {
	NPart=1;
	NSelect = 1;	//надо указывать если хочешь пользовать селект
	Public( 
		bMirrored,"hidden",
		Marka, "Марка",
		L, "Длина сваи",
		Lx, "Длина с разрывом",
		b,"Сечение сваи",
		massa, "Масса",
		WP1,"Рабочая плоскость 1",
		N, "Номер сваи",
		Otm_Verh, "Абсолютная отметка верха сваи",
		Otm_Niz, "Абсолютная отметка низа сваи",
		Seriya, "Серия"
	);
	Protected( seted,check1,Lm,sh2,sh1,l_1 );
	Changeable( Marka, L, Lx, b, WP1, N, Otm_Verh, Otm_Niz,Seriya); //WP1 зачем сюда??
	OnDlgBeforeSelectParam = 1;
	ShowWhenSelPnt = 1;
	ContourOnLine = 0;
};

function OnInitialization {
	LoadInCache( Marka, L );
	if(seted == UnknownValue) {
		seted=1;
		bMirrored=0;	
		this.Layer="PPR_MACHINES";	//так что ли тогда, не используй символы назначение которых не понимаешь, это вставка на слой
		rZOrder=2200;
		sh1 = 1;
		sh2 = 0;	
		N =1;
		strDesignName="Implementation1"; //исполнение 1 устанавливаем исполнение по системному имени
	//	lSimpleView=0;	//зачем??? он и так по умолчанию без разреза не упрощеный
				//Если == 1 то соответственно вид упрощенный. Если == 2 то с разрезом, очевидно если ==0 то обычный вид. 
//	   };		//лишняя
	   Otm_Verh=100.00;
       Otm_Niz=90.00; 
       Seriya="1.011.1-10";   
		SelectInCache( "kFirst","b","~",400, "L", "~", 10000 );
	};
	
	// strDesignName=="Исполнение1";	//так работать не будет
};

function SetGripPoint{
	if(lViewType == VTOP){
		NGrip = 1;
		pntGrip0 = pntOrigin;
	} else {			//у тебя куча видов в исполнении, обработал ты только для ТОР
		NGrip = 2;
		pntGrip0 = pntOrigin;
		if(strDesignName == "Implementation1"){ 
			pntGrip1 = pntOrigin + vecDirection*(L+0);
		} else {
			pntGrip1 = pntOrigin + vecDirection*(Lx+0);
		};
	};
};

function OnMoveGripPoint{
	if(NMovingGrip == 1){
		if (strDesignName == "Implementation1"){	
			rL = vecLen(pntGrip0 - pntGrip1)/rScl;	//растягвать за ручку не будет
			vecDirection = pntGrip1 - pntGrip0;
			LoadInCache( b, L );
			SelectInCashe("kFirst","b", "~", b, "L","~",rL, );	//потому, что у тебя в таблице одна строка )))
		} 
		if (strDesignName == "Implementation2"){	
			rLx = vecLen(pntGrip0 - pntGrip1)/rScl;	//тут будет растягиваться, потому как не делаешь выборку из таблицы
			vecDirection = pntGrip1 - pntGrip0;
			Lx=rLx;
		}
	} else {
		pntOrigin = pntGrip0;
	};
};	

function OnMakeParameters {
	strTheName = "19804.2";
	strTheType = "Construct";
	strTheSubType = "Pile";
	Lx = min(L, max(Lx, 1000));
	sh2 = iff(Lx==L, 0,1);
	l_1 = sh1*(l);
	WP1=Plane(pntOrigin,-vecDirection);
	 
};

function OnDialog {	//я кому пол страницы форума исписал по  UniDialog!!!!!
	LoadInCache( L, Marka );
	UniDialog( 
		DBFLD, b, L, Marka, //это берется из таблицы
		DBINF, //это для информации, просто просмотр
			massa, 
		VFLD, 	//сюда можно забивать в форме значения руками
			Lx,"Длина на чертеже", 
			N,"Номер сваи",	//его место тут!!!!!
		BFLD, //это радиокнопки!!!
			sh1, "Острие",
	//		N,"Номер сваи", //ты номеру сваи два значения присваиваешь? 0 и 1??? его место в VFLD
			Otm_Verh, "Абсолютная отметка верха сваи", 
			Otm_Niz, "Абсолютная отметка низа сваи",
			Seriya, "Серия", 
			VIDS,strDesignName,"All", //показывать все ИСПОЛНЕНИЯ
			TVIDS,lViewType,"All",	//показывать все виды
			VIEW,"Vids");			//показывать картинку предосмотра!!!
	//Lm = 50;	//это что такое сюда затесалось???
	//UniDialog(N,"Номер сваи");
	//showForm("Form1");

};

function OnChangeParameters {
	bMirrored=new.bMirrored;
	N=new.N;
	Seriya=new.Seriya;
	if(L != new.L) {
		LoadInCache( L,massa );
		SelectInCache( "kFirst", "L","~",new.L);	//выбираешь по длине, а марка пофиг???
	} else if( (Marka != new.Marka) ) {
		LoadInCache( Marka );
		SelectInCache( "kFirst", "Marka","~",new.Marka );	//теперь выбираешь по марке, длина значит теперь не интересует???)))
	}//; не надо ставить после скобки } точку с запятой;

	Handled = OBJ_HANDLED;
	if( (L != new.L) ) {	//это для чего???? и как дальше собрался обработать?, т.е длина прицепленной сваи должна быть такая же?
		Handled = OBJ_WARNING;
	};
	if (IsFixedParam(WP1)){	
		pntOrigin=Point(new.WP1);
		vecDirection=-Vector(new.WP1);
	};
	Otm_Verh=new.Otm_Verh;
	Otm_Niz=(Otm_Verh*1000-L)/1000;
};


function OnSelectParam {
	if(lViewType == VBOTTOM || lViewType == VTOP){
		BreakAll = 1;
	}
	else{
		if (strDesignName != "Implementation2")
		{
			SelectInCache( "kFirst","b", "~", b, "L", "~",L, (vecCoord:x));	//vecCoord:x не помешает в скобочки, что б не ругался
			Lx = L;
		}
		else
		{
			Lx = vecCoord:x;
		}
	}
	N = ;
	Otm_Verh = ;
	Otm_Niz = ;
};

function BeforeConnect {
	ResetLastConstraint();
}

strPartName = Marka;
// не очень понимаю, что и к чему конектишь, присоединяешь по плоскости, а в OnChangeParameters проверяешь по длине???
// вообще то сперва отладь деталь, что бы заработала путем, потом эту функцию писать
function OnConnect 
{
	if(obj.strTheType=="PileDriver"){	
		if(bMirrored==0){
			SetGeomConstraint(INSERT,CONTRDIRECT,obj,WP1,obj.WPHammer,0,FALSE);
		}else {
			SetGeomConstraint(INSERT,CONTRDIRECT,obj,WP1,obj.WPHammer2,0,FALSE);
		};

		lSimpleView=1;
		NoVectorSelect = 1;
		Handled = OBJ_HANDLED;
	}
}
//пользуешься Unidialog, нет в нем editbox1 (((
//function OnDialogChanged 
//{
//	Form.editbox1 = massa;
//}
//не используется...
//function OnMenu 
//{
//
//}
//
//function OnAddObject 
//{
//
//}
__________________
Мастерская СПДС
doctorraz вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > ПО от CSoft > Параметрические объекты СПДС для армирования ЖБК

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СПДС Graphics. Интеграция с AutoCAD. Нет панелек СПДС Sn4ke ПО от CSoft 40 31.07.2020 11:52
Не редактируются объекты СПДС 4атланин ПО от CSoft 86 11.12.2017 16:03
Изменения системы СПДС. ГОСТ 21.101-97 и не только! Red_line Архитектура 19 05.08.2010 18:01
Копирование данных для спецификаций из выносок СПДС в таблицу из мтекстов Red Nova Программирование 177 08.12.2008 11:35
СПДС, Автоматическая загрузка при открытии файла Vildar Прочее. Программное обеспечение 11 05.09.2008 16:58