
Ruyke
Пользователи-
Posts
256 -
Joined
-
Last visited
-
Days Won
9
Content Type
Profiles
Forums
Downloads
Blogs
Everything posted by Ruyke
-
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Ого, вот спасибо! Класс. P.S. Знаю что запросы слишком велики, но за спрос же не поджарят)))) А можно ли сделать чтобы например если у меня их 8 штук подряд? чтобы было QF-1 - QF-8? Я понимаю что тут логика более сложная, но вдруг кто делал так -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Вот у меня есть таблица с отчетом параметрических объектов, и допустим собирает следующее: (столбцы обозначены скобками) Строка 1: (QF-1) (Автоматический выключатель 6 А) (1шт.) Строка 2: (QF-2) (Автоматический выключатель 6 А) (1шт.) Строка 3: (QF-3) (Автоматический выключатель 10 А) (1шт.) Если я группирую по второму столбцу то у меня получается следующее: Строка 1: (QF-1QF-2) (Автоматический выключатель 6 А) (2шт.) Строка 2: (QF-3) (Автоматический выключатель 10 А) (1шт.) А нужно чтобы через запитую он прописывал первый столбец если там различаются позиции. Так можно сделать? -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Мой коллега, отягощённый знаниями арифметики, подверг меня обструкции. Всё гениальное просто и не нужны никакие "рабочие объекты" Соответственно: function SetGripPoint { NGrip = 2; pntGrip0 = pntOrigin; pntGrip1 = pntGrip0+vecDirection*(l*cos(alfa))+vecPlane*(l*sin(alfa)); }; function OnMoveGripPoint{ if (NMovingGrip == 0) pntOrigin = pntGrip0; if ( NMovingGrip==1) { x=-(pntGrip1-Plane(pntOrigin,Vector(WP1)))/rScl; y=-(pntGrip1-Plane(pntOrigin,Vector(WP2)))/rScl; l=sqrt(x*x+y*y); if x>0 { alfa=atg(y/x) }; if x==0{ if y>0 {alfa=90} else {alfa=-90} }; if x<0{ if y<0 {alfa=-180+atg(y/x)} else {alfa=180+atg(y/x)} }; }; И для удовлетворения внутреннего "Перфекциониста" function OnInitSelect { strPromt="Укажите положение звена"; }; Огоо вот это класс. Спасибо. Пробую в этом скрипте реализовать шаг для угла, alfastep = 45; Вписываю в скрипт шаг и он не хочет на 90, 270 градусах останавливаться. function OnMoveGripPoint{ if (NMovingGrip == 0) pntOrigin = pntGrip0; if ( NMovingGrip==1) { x=-(pntGrip1-Plane(pntOrigin,Vector(WP1)))/rScl; y=-(pntGrip1-Plane(pntOrigin,Vector(WP2)))/rScl; l=sqrt(x*x+y*y); if x>0 { alfa=int(atg(y/x)/alfastep)*alfastep; }; if x==0{ if y>0 {alfa=90} else {alfa=-90} }; if x if y {alfa=-180+int(atg(y/x)/alfastep)*alfastep;} else {alfa=180+int(atg(y/x)/alfastep)*alfastep;} }; }; }; -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Все примерно понял, Спасибо. Правда не понимаю как работает подавление той невидимой части. -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
табличные параметры будут храниться в выноске или руками или с другого объекта? взаимодействие с другими объектами? маркер из #776 не устраивает? У него выносная линия не такая как мне нужна (она только слева или справа) Гляньте как я хочу реалиовать (см. файл). Drawing2.dwg -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
По сути это параметрический объект, в котором будут табличные параметры датчиков и позиция, только с графикой не могу разобраться. Должен быть круг, по середине убираемая палочка во весь диаметр. и палочка (линия выноска) которая будет не от центра а от края круга, но направление может быть от разных сторон, как бы я за нее тяну она меняет длину и направление, но как бы то что в пределах круга ее не видно, только снаружи. -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Нет я говорю про параметрику. Если в параметрике пробовать такое реализовать. У меня 2018 не открывает чертежи -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Случайно так не устроит? Маркер так сделать не получится Жаль -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
А там логика какая тогда должна быть? 2 исполнения объеденить в одном объекте? линия и круг? -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Подскажите, может я не совсем в ту тему пишу, но всеже. Хочу сделать подобный объект (как на скрине) только в виде маркера. И не могу понять как мне с выносной линией сделать так, чтобы она начиналась от края объекта (круга), а не от центра. Вот есть такой объект в СПДС как узловая выноска, там можно задавать угол шага этой выносной линии (мне тоже бы так хотелось) и там эта линия выходит не из центра а из граничной линии, мне нужно так, но просто вместо регулируемого овала у меня будет фиксированный круг. Как так сделать? Видел в некоторых видосах вводится какая то функция системная mcArrowSize которая регулирует размер стрелки, может там есть еще какие то функции чтобы сделать как я описал? -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Не знаю, поможет ли оно вам, но... Там 3 объекта: два отвода (1 и 2) и воздуховод (ВВ). Которые точно так же выстраиваются последовательно в цепь: ВВ-отвод1-ВВ. Все свойства, соответсвенно, передаются по всей цепочке. А вот отвод2 встраивается как раз между двумя уже существующими ВВ. Т.е. строим цепочку, удаляем из середины отвод1, вставляем отвод2, коннектимся к обоим ВВ (главное с порядком не пролететь) и всё работает, связи восстанавливаются, свойства по-прежнему летают туда-сюда по цепочке. ВВ и отвод1 - законченные объекты, отвод2 - просто эксперимент, целью которого и была такая вот встройка объекта в существующую цепь, именно добившись этой встройки я 2 года назад и плюнул на эту систему, ввиду того, что "нам и этого хватит". Хрен его знает, как у меня тогда это получилось, но насколько я помню, OnAddObject я не использовал в принципе (т.к. не знал о нём), все связи сделаны за счёт остальных обработчиков, возможно у меня там как-то OnConnect в обе стороны работает, я не помню... Наверняка, там много ненужного, неправильного, переусложненного и т.д., но гляньте, вдруг, чем поможет... Спасибо попробую. -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
В общем проблема. У меня несколько объектов в цепи подсоеденины, есть прямые зависимости в OnConnect, так и обратные в OnAddObject, и допустим мне нужно произвести перевставку первого объекта в цепи, соответственно остальная цепь от него отваливается, чтобы проицепить обратно я использую команду "Соединить объекты". Он почему то соединяет все то что указанно в OnConnect, А у меня же еще есть обратные зависимости в OnAddObject. И он их не соединяет почему то. В ролике я увидел что в этих трубных блоках и отводах обратная зависимость то же работает (когда там менялся диаметр перехода, все объекты до него тоже поменялись, То есть объекты становятся опять связанные и двигаются при перемещении одного из них, и зависимости прямые восстанавливаются, а обратные нет почему то Как при присоединении обновить OnAddObject? -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Ну я там глянул у него все переменные не через массив определены, а просто, и сумма высоты слоев выполняется вручную так сказать (h1+h2+h3...+...hn). И я попробовал объявить Pn по отдельности, и вроде получилось. Сумма теперь корректно считается. Странно, видимо с массивами как то криво работает программа. Очень неудобно, придется 50 переменных прописывать и описывать вручную -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Еще раз доброго дня. Подскажите не могу сообразить. Есть 2 файла (1 - шина (Bus) к которая создает подключаемые плоскости и массив переменных Pn), (2 - коннектор (Connector), который подключается к одной из плоскостей шины, коннекторов можно подключить несколько). Так вот когда к шине подключаются коннекторы, она с них считывает переменную Pn и записывает в свой массив в соответствии с индексом подключенной плоскости Pn. В итоге в объекте Bus формируется массив из чисел, взятых из подключенных объектов либо нулей, в случае если ничего не подключено. То есть примерно имеем следующий масси Pn[25, 0, 13, 250, 113, 225] и.т.д, в зависимости какое значение будет в Connector ах. И вот теперь дилема как сложить все эти числа. Хотелось бы конечно какое то оптимальное решение, но я даже пробовал через тупое суммирование вручную, но это даже не точно складывает. В функции OnMakeParam вписывыаю следующее: Pns = Pn[1]+Pn[2]+Pn[3]+Pn[4]+Pn[5]+Pn[6]+Pn[7]+Pn[8]+Pn[9]+Pn[10] Но результат получается не совсем корректный, а именно допустим у меня сформировался массив Pn[0,0,0,5,0,5,0,5,0], то по логике должно быть 15, но получается 14,85612312. Я не понимаю почему. Ну или можно как то изящнее это сделать чтобы работало? Файлы в приложении. P.S. Я там после этой суммы забыл добавить точку с запятой, но добавил и все осталось без изменений. Bus v2.rar -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Сам себе отвечу Для этого необходимо использовать функцию OnAddObject (стандартная функция). И там прописать какие параметры взять из объекта, который подключается к данному. (Вдруг кому пригодится, очень полезная как оказалась функция). И второй вопрос. Не могу понять зачем нужна функция OnUpdateGraphics. В описании в справке, ни в вордовском документе про нее ни слова. И третий. Как можно в скрипте вытянуть индекс плоскости, к которой совершено подключение? Вот у меня есть объект у него есть плоскости WP2, WP3, WP4, WP5, WP6. И к нему подключаются несколько других объектов. Подключаются к плоскостям WP3, WP4, WP6. И вот как мне вытянуть названия плоскостей этих. Если выбрать объект и нажать "Управление зависимостями" там будет список состоявшихся зависимостей и к каким его плоскостям какие объекты подключены. Вот мне нужно вытянуть номера (или хотяб названия) этих плоскостей. -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Выбрать в таблицу и в контекстном меню указать "Отвязать формат" Нельзя. Ясно спасибо. -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
А не подскажете, как привязать таблицу к Объекту спдс? Ну вот при вставке какого нибудь шаблона таблицы из базы (Экспликации например) она может жестко привязаться к формату, так что потом не удалишь без удаления формата. Как сделать так же только к какому то другому объекту? Не нашел видео о привязке таблице геометрически при вставке. -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Спасибо попробую! А еще не подскажете, как именно передать параметр при подключаеии (не взять зависимость а передать чтоли)? Ну вот подключаю я гайку к блоту (а не наоборот, и вот если у меня гайка большего диаметра то при присоединении её к болту,она передавать должна свой диаметр и болт соответственно подстраивает себя на такой же диаметр. -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Попробуй создать "Пользовательскую функцию" и присвоить контроллу на событие "На изменение" эту функцию. А в теле самой функции тогда что писать? Rsumm = new.Rsumm? -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Ясно.спасибо! А вот смотрите еще. У меня есть формула в OnMakeParameter Rsumm = Rsumm_old + R; Xsumm = Xsumm_old + X; вот она жестко считает всегда эти значения, но параметры R и X я могу задавать как из диалога (формы), так и из свойств объекта. Но вот какая загвоздка, у меня в диалоге есть вывод параметра Rsumm, который никак не хочет обновляться при смене какого нибудь из параметров. То есть если я закрою и открое объект заного то отображение будет правильным, а если нет, то в форме ничего не увижу какое число он посчитал. А если я ввожу из свойств то он в свойствах же сразу и пересчитывает. Все ок. В форме получается настроить правильное отображение, если я из OnMakeParameter скопирую ту же формулу в OnChangeDialog. Это так и должно быть? или есть другой способ чтобы в форме тоже обновлялось. (Rsumm = new.Rsumm в OnChangeDialog уже пробовал и не помогло, кстати в OnChangeParameters у меня все переменные обновлены (=new.Rsumm)) -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Не подскажете, зачем табличные параметры добавлять в protected? Я просто видел объекты где добавляли и где нет. Есть какая то разница? И вообще зачем нужно чтото в protected добавлять? Я не доконца понимаю. -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
И почему такое задание цикла не работает с праметрически распознанными объектами которая делает программа, а не вручную. Она там вначале задает какой то дополнительный цикл, который я понять не могу. Вот например когда не работает: Version = 1;//Version = 2, //Find: Version, BUS_LENGTH, step, N, endFind, ii=0, While(ii<4), node(ii);=mp, ii=ii+1, EndWhile, OX=oX, OY=oY, OZ=oZ, Verge0_ang=90, Verge1_ang=0, node1:mp:y+88, node3:x=mp:x+BUS_LENGTH, node1:x=mp:x+step/2*N, node0:x=node1:x, node0:y=mp:y, node3:y=mp:y, jj=0, While(jj < (N)){ Line(node0+oX*step*jj, node1+oX*step*jj,1,1), jj=jj+1, }, Line(mp,node3,1,1), А если я сделаю тоже самое, только параметрически опишу объект вручную например так как в "Шкале" было описано: Version = 2, //Find: Version, b, height, Length, endFind, node0 = mp + (step/2)*oX, node1 = mp + 50*oY + (step/2)*oX, node3 = mp + BUS_LENGTH*oX, jj=0, While(jj < (N)){ Line(node0+oX*step*jj, node1+oX*step*jj,1,1), jj=jj+1, }, Line(mp,node3,1,1), То тогда все работает. Почему? -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
Заметил еще очень странную особенность. Я взял из объекта "шкала" код исполнения чтобы он линеечки прописывал при растягивании Выглядит это так: Version = 2, //Find: Version, b, height, Length, endFind, node0 = mp + (2500/2)*oX, node1 = mp + 50*oY + (2500/2)*oX, node3 = mp + BUS_LENGTH*oX, jj=0, While(jj < (N+1)){ Line(node0+oX*step*jj, node1+oX*step*jj,1,1), //UText(Point,Angle, "Text", HorizontalAlignment, VerticalAlignment), UText(node1+oX*step*jj+oY*5, 0, String(jj),1,2), jj=jj+1, }, Line(mp,node3,1,1), Однако стоило мне после условия While скобку перенести на следующую строку - при вставке объекта вылетало сразу. Тоесть если сделать вот так: Version = 2, //Find: Version, b, height, Length, endFind, node0 = mp + (2500/2)*oX, node1 = mp + 50*oY + (2500/2)*oX, node3 = mp + BUS_LENGTH*oX, jj=0, While(jj < (N+1)) { Line(node0+oX*step*jj, node1+oX*step*jj,1,1), //UText(Point,Angle, "Text", HorizontalAlignment, VerticalAlignment), UText(node1+oX*step*jj+oY*5, 0, String(jj),1,2), jj=jj+1, }, Line(mp,node3,1,1), Программа крашится. Хотя странно в самом скрипте объекта (не исполнения) программа спокойно воспринимает когда я для удобства скобки вниз переношу чтобы четко видеть структуру и что в условии например: sub1obj.strTheName="Fuse"; sub1obj.strTheType="SEPARATED"; sub1obj.strTheSubType = "SEPARATED"; ii = 0; while (ii < N) { sub1obj[ii].WP2 = Plane( pntOrigin+vecDirection*(step*ii+step/2), -vecPlane); ii = ii+1; }; И программа спокойно работает. Это особенность скриптов в описании исполнений такое? -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
SPPICKPOINT ? Панель "СПДС объекты из базы" Я имею ввиду каждый раз когда я его за ручку перемещения двигаю, К нему с низу уже подключено много других объектов, а вверху я хочу всю группу переподключать двигая только верхний объект и переподключая его. -
параметрические объекты СПДС
Ruyke replied to swell{d}'s topic in Технические вопросы и обсуждение функционала
А есть возможсть повторно привязать объект? Ну вот все эти связи активируются только при первой вставки на чертеж. А вот если у меня объект уже вставлен на чертеж и мне его надо переподцепить к другому, я его двигаю а он не хочетавтоматически подцепляться, приходится заного объект вставлять из базы и все свойства задавать ему с нуля. Есть возможность повторного переподключения?