Перейти к содержанию
swell{d}

параметрические объекты СПДС

Рекомендуемые сообщения

Что я делаю не так?

Пока нет возможности вникнуть и разобраться где и как вы меняете исполнения...

Тут посмотрите.

Version = 2;
//Find: Version; endFind, ang, iLineType, rRadius, rHeight,Lc,strJibImplementation;
ii=0; While(ii<15); node[ii]=mp; ii=ii+1; EndWhile;
OX=oX; OY=oY; OZ=oZ;
//верхний блок

DrawReference("vVerxT",VFRONT,mp,oX,oY,check2,0,1);
DrawReference(iff(check1==1;"vVerh";"vVerhX"),VFRONT,mp,oX,oY,(iff(check2==1;0;1)),0,1);
node3:y = mp:y - rHeight;

//нижний блок
DrawReference("vNizK",VFRONT,node3,oX,oY,check2,1,1);
DrawReference("vNiz",VFRONT,node3,oX,oY,(iff(check2==1;0;1)),1,1);
//линии
DrawReference("vidLine",VFRONT,mp,oX,oY,1,0,1);

 

В качестве названия исполнения используйте "Системное" имя Вида

 

img-2019-05-14-16-30-27.png

xRef samples.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Вашем случае исполнение можно сделать 2 способами:

Version = 2;
ii=0; While(ii<15); node[ii]=mp; ii=ii+1; EndWhile;
OX=oX; OY=oY; OZ=oZ;
DrawReference ("Implementation3",VFRONT,mp,oX,oY,1,0,1);
DrawReference ("Implementation2",VFRONT,mp+oX*(1250.000)+oY*(4000.000),oX,oY,1,1,1);

// Верхние блоки
 //Вариант I
DrawReference (iff (FUSETYPE_SELECTION == "Circuit Breaker";("Implementation1_1");("Implementation1_2")),VFRONT,mp+oX*(1250.000)+oY*(11200.000),oX,oY,1,1,0);
 //Вариант II
//DrawReference ("Implementation1_1",VFRONT,mp+oX*(1250.000)+oY*(11200.000),oX,oY,(iff (FUSETYPE_SELECTION == "Circuit Breaker";1;0)),1,0);
// DrawReference ("Implementation1_2",VFRONT,mp+oX*(1250.000)+oY*(11200.000),oX,oY,(iff(FUSETYPE_SELECTION == "RCBO";1;0)),1,0);
//
);
 

Вариант I - Вы выбираете "Исполнение" в зависимости от значения FUSETYPE_SELECTION

Вариант II - Просто управляете "Видимостью" конкретного исполнения в зависимости от значения FUSETYPE_SELECTION

Второй

Второй способ проще тем, что удобно добавлять управление другими исполнениями. (Насколько помню их будет много)

SCHEME_04_3_2_FUSE rel.1.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Вашем случае исполнение можно сделать 2 способами:

Version = 2;
ii=0; While(ii<15); node[ii]=mp; ii=ii+1; EndWhile;
OX=oX; OY=oY; OZ=oZ;
DrawReference ("Implementation3",VFRONT,mp,oX,oY,1,0,1);
DrawReference ("Implementation2",VFRONT,mp+oX*(1250.000)+oY*(4000.000),oX,oY,1,1,1);

// Верхние блоки
 //Вариант I
DrawReference (iff (FUSETYPE_SELECTION == "Circuit Breaker";("Implementation1_1");("Implementation1_2")),VFRONT,mp+oX*(1250.000)+oY*(11200.000),oX,oY,1,1,0);
 //Вариант II
//DrawReference ("Implementation1_1",VFRONT,mp+oX*(1250.000)+oY*(11200.000),oX,oY,(iff (FUSETYPE_SELECTION == "Circuit Breaker";1;0)),1,0);
// DrawReference ("Implementation1_2",VFRONT,mp+oX*(1250.000)+oY*(11200.000),oX,oY,(iff(FUSETYPE_SELECTION == "RCBO";1;0)),1,0);
//
);

Вариант I - Вы выбираете "Исполнение" в зависимости от значения FUSETYPE_SELECTION

Вариант II - Просто управляете "Видимостью" конкретного исполнения в зависимости от значения FUSETYPE_SELECTION

Второ

Второй способ проще тем, что удобно добавлять управление другими исполнениями. (Насколько помню их будет много)

 

Спасибо, насколько я понял первый вариант не сможет управлять более чем двумя исполнениями?

А второй вариант позволяет хоть сколько исполнений задействовать получается. Так?

 

А чем принципиально хуже или лучше первый от второго?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

насколько я понял первый вариант не сможет управлять более чем двумя исполнениями?

Отчего же? Сколько угодно, просто труднее будет (ЯТД) Труднее отлавливать ошибки.

А чем принципиально хуже или лучше первый от второго?

Да ничем наверное :-) Дело вкуса.

 

//Вариант III Требует редактирования radio FUSETYPE_SELECTION
DrawReference (("Implementation1_"+FUSETYPE_SELECTION),VFRONT,mp+oX*(1250.000)+oY*(11200.000),oX,oY,1,1,0);

Можно так управлять отрисовкой. Но тогда придётся внимательно следить за названием исполнений (что само по себе очень полезно) и отредактировать значение RadioButton.

img-2019-05-15-09-42-17.png

В общем вариантов много :-)

PS: Я не знаю, где еще используется FUSETYPE_SELECTION, так что проверяйте внимательно!!!

SCHEME_04_3_2_FUSE rel.1.1.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно как то регулировать значение числовых параметров?

1. Ну вот например у меня есть мощность ток и так далее, они между собой как то вычисляются и задаются, но вот отображается не так как мне надо.

Например если я задаю мощность 1 кВт (и вписываю в строку 1.00), то программа её сокращает в итоге до просто "1", а мне надо чтобы отображалось именно с двумя цифрами после запятой даже если нули. (см. скрин)

2. С током такая же ерунда, он высчитывает его до миллиона знаков после запятой, а мне нужно всего чтобы 2 показывало. (см. скрин.)

 

Screen.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>2. С током такая же ерунда, он высчитывает его до миллиона знаков после запятой, а мне нужно всего чтобы 2 показывало.

-----------

округлить до сотых уже предлагали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

http://www.spds.ru/info/faq/qa_0064.html

правда разбирались пришли к выводу, что лучше round

-------------

PS кстати в стандартных округляет до целого, а в таблицах до указанного знака

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>2. С током такая же ерунда, он высчитывает его до миллиона знаков после запятой, а мне нужно всего чтобы 2 показывало.

-----------

округлить до сотых уже предлагали?

Да спасибо, помогло округлить ток.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ещё не подскажете как в одном объекте СПДС суммировать определенные параметры из других объектов СПДС одного и того же чертежа?

Изменено пользователем Ruyke

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ещё не подскажете как в одном объекте СПДС суммировать определенные параметры из других объектов СПДС одного и того же чертежа?

надо задавать зависимости, при коннекте или руками.. по умолчанию объекты ничего не знают друг о друге.

для математики табличные отчеты придуманы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ещё не подскажете как в одном объекте СПДС суммировать определенные параметры из других объектов СПДС одного и того же чертежа?

надо задавать зависимости, при коннекте или руками.. по умолчанию объекты ничего не знают друг о друге.

для математики табличные отчеты придуманы

 

1. Как это сделать? Задавать зависимости? И при коннекте и руками, есть видео?

 

2. Что за табличные отчеты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>есть видео?

-----------------

Море у уважаемого mcad на все случаи жизни

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Как это сделать? Задавать зависимости? И при коннекте и руками, есть видео?

 

Тут только "Геометрические зависимости" - параметрические аналогично задаются

, потом

Это "теория", практика - Это в "Мастерскую СПДС"

 

http://www.youtube.com/watch?v=QMJay5JM8TY&list=PLxzNmJ3Maam67e9mrRIXhkdP-9e0VY9hG&index=27&t=0s

 

Уже обсуждалось:

Маркер - он универсальный. Он умеет привязывать и выравнивать геометрию под родительский объект. Но у него нет "геометрических зависимостей"

 

Сам объект лежит в посте #652

 

2. Что за табличные отчеты?

Тут не всё так просто :-)

Не знаешь

Точнее не, понятно (мне), что нужно получить

http://www.youtube.com/watch?v=dKR4pWemeI4&list=PLxzNmJ3Maam5c5pCkaWGaGAVzOVq2ddqD&index=15&t=0s

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Как это сделать? Задавать зависимости? И при коннекте и руками, есть видео?

 

Тут только "Геометрические зависимости" - параметрические аналогично задаются

, потом

Это "теория", практика - Это в "Мастерскую СПДС"

 

http://www.youtube.com/watch?v=QMJay5JM8TY&list=PLxzNmJ3Maam67e9mrRIXhkdP-9e0VY9hG&index=27&t=0s

 

Уже обсуждалось:

Маркер - он универсальный. Он умеет привязывать и выравнивать геометрию под родительский объект. Но у него нет "геометрических зависимостей"

 

Сам объект лежит в посте #652

 

2. Что за табличные отчеты?

Тут не всё так просто :-)

Не знаешь

Точнее не, понятно (мне), что нужно получить

http://www.youtube.com/watch?v=dKR4pWemeI4&list=PLxzNmJ3Maam5c5pCkaWGaGAVzOVq2ddqD&index=15&t=0s

 

Не получилось у меня сделать по ролику, ну тоесть делал все то же самое, но не хочет даже просто считывать параметр с другого объекта.

 

function OnConnect

{

if(rPart == 0){

if(obj.strTheType == "SCHEME_04_3_2" && obj.strTheName == "SCHEME_04_3_2_FIDER"){

SetParamConstraint(POWER_NOMINAL_SUMM, obj, EXPR, "obj.POWER_NOMINAL", FALSE);

NoVectorSelect = 1;

Handled = OBJ_HANDLED;

};

};

 

}

Не копирует даже значение параметра, что уже говорить о сложении нескольких

 

P.S. прикрепил свои файлы.

Есть объект SCHEME_04_3_2_FIDER (это тот что мы делали ранее, он есть просто фидер отходящий),

а есть объект SCHEME_04_3_2_FIDER_INTRO это как бы вводной фидер в щиток (я его сделал из SCHEME_04_3_2_FIDER и начал там потихоньку менять подшаманивать под нужды вводного фидера).

Пока я пробую связать эти объекты по одному параметку (POWER_NOMINAL в отходящем фидере, и POWER_NOMINAL_SUMM в вводном фидере).

То есть в идеале, POWER_NOMINAL_SUMM в вводном фидере должен считать сумму параметром POWER_NOMINAL в остальных фидерах.

Проблема в том, что мне не удалось даже присвоить POWER_NOMINAL_SUMM значение POWER_NOMINAL хотябы чтобы попробовать связать. Не понимаю в чем проблема.

Вроде делал все как по видео, и связь показыватся, но почему то не меняется ничего.

Что я делаю не так?

SCHEME_04_3_2_FIDER.rar

Изменено пользователем Ruyke

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема в том, что мне не удалось даже присвоить POWER_NOMINAL_SUMM значение POWER_NOMINAL

Что я делаю не так?

Всё так. Я только убрал не нужные скобки и запятые и закомментировал то, что не работало

Посмотри в functionOnChangeParameters

function OnChangeParameters {

// Я добавил 20.05.2019 19:55
POWER_NOMINAL_SUMM = new.POWER_NOMINAL_SUMM;

Там есть всё, что хочешь, кроме именно этого параметра :-|

SCHEME_04_3_2_FIDER_INTRO.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема в том, что мне не удалось даже присвоить POWER_NOMINAL_SUMM значение POWER_NOMINAL

Что я делаю не так?

Всё так. Я только убрал не нужные скобки и запятые и закомментировал то, что не работало

Посмотри в functionOnChangeParameters

function OnChangeParameters {

// Я добавил 20.05.2019 19:55
POWER_NOMINAL_SUMM = new.POWER_NOMINAL_SUMM;

Там есть всё, что хочешь, кроме именно этого параметра :-|

 

Ага спасибо большое, теперь понятно в чем неточность была.

Я так понял оператор summ(); там не работает? Ну чтобы суммировать этот параметр от всех привязанных объектов.

А возможно ли вот несколько объектов привязать? Я когда ковырялся с этим привязыванием, у меня при вставке этого объекта если я наводил его на другие, то они подсвечивались зеленым сразу несколько штук. А сейчас только один максимум можно, это как то регулируется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так понял оператор summ(); там не работает? Ну чтобы суммировать этот параметр от всех привязанных объектов.

Не понял вопрос. И вообще просто + чем плох?

А возможно ли вот несколько объектов привязать?

Можно. Можно прямо из "Мастера зависимостей".

 

http://www.youtube.com/watch?v=-RLPyFn08Qs&list=PLxzNmJ3Maam67e9mrRIXhkdP-9e0VY9hG&index=29&t=0s

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне получается же нужно выбрать несколько одинаковых объектов, чтобы суммировать у них один и тот же параметр.

И обнаружил некоторую особенность, а именно если все эти махинации с установкой зависимостей поставить не в функцию OnConnect, а в BeforeConnect (см. скрин)

А на втором скрине я показал как он это делает, то бишь выделено несколько одинаковых объектов (хотя было бы удобнее если бы можно было выбирать объекты как в таблице просто выделением), только конечное значение он берет из одного из них (получилось 6, хотя желтым подписано что в итоге должно быть (20). (см. скрин)

 

Есть ещё другая особенность, если после этого поменять значение у одного из объектов, то тот объект где должна была возникнуть сумма копирует значение именно этого измененного объекта.

OnConnect1.png

OnConnect2.png

Изменено пользователем Ruyke

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>только конечное значение он берет из одного из них

---------

Очевидно жэж, что BeforeConnect вызывается каждый раз при наведении курсор на объект (объект меняет цвет)

далее ты сбрасываешь все зависимости, ResetLastConctraint, потом задаешь по новой, наводишь курсор на другой объект все сбрасываешь и так по кругу)))

---------------

если хочешь, чтобы собирал зависимости с объектов (на которые наводил курсор), закомментируй все в BeforeConnect

а зависимости задавай в OnConnect

ЗЫ хотя это неправильно, получишь ошибки расчетов, но понять откуда они и отследить не сможешь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>только конечное значение он берет из одного из них

---------

Очевидно жэж, что BeforeConnect вызывается каждый раз при наведении курсор на объект (объект меняет цвет)

далее ты сбрасываешь все зависимости, ResetLastConctraint, потом задаешь по новой, наводишь курсор на другой объект все сбрасываешь и так по кругу)))

---------------

если хочешь, чтобы собирал зависимости с объектов (на которые наводил курсор), закомментируй все в BeforeConnect

а зависимости задавай в OnConnect

ЗЫ хотя это неправильно, получишь ошибки расчетов, но понять откуда они и отследить не сможешь

Так если это будет в OnConnect то больше чем один раз на один и тот же объект он не наводится (ну не может он выделить несколько одинаковых объектов как на предыдущем скрине)

А как правильно? Как сумму мне посчитать как я описал выше?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так если это будет в OnConnect то больше чем один раз на один и тот же объект он не наводится (ну не может он выделить несколько одинаковых объектов как на предыдущем скрине)

А как правильно? Как сумму мне посчитать как я описал выше?

Не припомню примера реализации такой задачи.

Состав и работа MechWizard.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так если это будет в OnConnect то больше чем один раз на один и тот же объект он не наводится (ну не может он выделить несколько одинаковых объектов как на предыдущем скрине)

А как правильно? Как сумму мне посчитать как я описал выше?

ну попробуй в BeforeConnect закомментировать только ResetLastConctraint

подозреваю, что делать расчеты в параметрике пытался чуть меньше чем никто.

ну и скачай InDebMon , значительно поможет впихнуть невпихуемое в отладке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос из переписки: "Как использовать контекстное меню".

Дубль 2.

 

http://www.youtube.com/watch?v=_7Dj3wSNL4M&list=PLxzNmJ3Maam7pWN5KD8NbMmYrZQbNRlhD

Menu Rectangle.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем решил проблему с суммированием. Я сделал таблицу с отчетами в виде нижней части вводного выключателя, и затем сгруппировал с самим выключателем вводным (который парметрический объект).. В таблице получилось все объекты нужные определить.

 

Теперь у меня второй вопрос, пытаюсь сделать спецификацию общую, и там в шаблонах отчетов не знаю как на один столбец как то умудрится несколько параметров определить, ну то есть вот у меня есть объект FIDER, но в нем не только же автомат может пойти в спецификацию, но и контактор может быть и реле (и так как они в одном параметрическом объекте, то у них параметры по своему называются для спецификации., Вот как получается чтобы они в одном отчете друг под другом записывались? Я понимаю что можно добавить другой отчет, но тогда будет не спецификация , а каша, сами отчеты же между собой не группируются

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем решил проблему с суммированием. Я сделал таблицу с отчетами в виде нижней части вводного выключателя, и затем сгруппировал с самим выключателем вводным (который парметрический объект).. В таблице получилось все объекты нужные определить.

 

Теперь у меня второй вопрос, пытаюсь сделать спецификацию общую, и там в шаблонах отчетов не знаю как на один столбец как то умудрится несколько параметров определить, ну то есть вот у меня есть объект FIDER, но в нем не только же автомат может пойти в спецификацию, но и контактор может быть и реле (и так как они в одном параметрическом объекте, то у них параметры по своему называются для спецификации., Вот как получается чтобы они в одном отчете друг под другом записывались? Я понимаю что можно добавить другой отчет, но тогда будет не спецификация , а каша, сами отчеты же между собой не группируются

что-то начинает вырисовываться, в смысле приходит понимание для чего нужна эта красота

не только нарисовать красиво в один клик, но и потом получить по этой живописи спецификации...

а фидера разные бывают и по типам оборудования и по наполнению, а кроме электрики в спецификацию еще всякие шкафы, дин рейки, кабельные муфты, короба, лотки уголки троссовки и прочее...

руками добавлять? концепция рушится....

надо. что то думать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...