Перейти к содержанию

Ruyke

Пользователи
  • Публикаций

    256
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Ruyke стал победителем дня 21 мая

Ruyke имел наиболее популярный контент!

Репутация

31 Очень хороший

Информация о Ruyke

  • Звание
    Активист

Информация

  • Пол
    Мужчина
  1. Ого, вот спасибо! Класс. P.S. Знаю что запросы слишком велики, но за спрос же не поджарят)))) А можно ли сделать чтобы например если у меня их 8 штук подряд? чтобы было QF-1 - QF-8? Я понимаю что тут логика более сложная, но вдруг кто делал так
  2. Вот у меня есть таблица с отчетом параметрических объектов, и допустим собирает следующее: (столбцы обозначены скобками) Строка 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шт.) А нужно чтобы через запитую он прописывал первый столбец если там различаются позиции. Так можно сделать?
  3. Мой коллега, отягощённый знаниями арифметики, подверг меня обструкции. Всё гениальное просто и не нужны никакие "рабочие объекты" Соответственно: 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;} }; }; };
  4. Все примерно понял, Спасибо. Правда не понимаю как работает подавление той невидимой части.
  5. табличные параметры будут храниться в выноске или руками или с другого объекта? взаимодействие с другими объектами? маркер из #776 не устраивает? У него выносная линия не такая как мне нужна (она только слева или справа) Гляньте как я хочу реалиовать (см. файл). Drawing2.dwg
  6. По сути это параметрический объект, в котором будут табличные параметры датчиков и позиция, только с графикой не могу разобраться. Должен быть круг, по середине убираемая палочка во весь диаметр. и палочка (линия выноска) которая будет не от центра а от края круга, но направление может быть от разных сторон, как бы я за нее тяну она меняет длину и направление, но как бы то что в пределах круга ее не видно, только снаружи.
  7. Нет я говорю про параметрику. Если в параметрике пробовать такое реализовать. У меня 2018 не открывает чертежи
  8. Случайно так не устроит? Маркер так сделать не получится Жаль
  9. А там логика какая тогда должна быть? 2 исполнения объеденить в одном объекте? линия и круг?
  10. Подскажите, может я не совсем в ту тему пишу, но всеже. Хочу сделать подобный объект (как на скрине) только в виде маркера. И не могу понять как мне с выносной линией сделать так, чтобы она начиналась от края объекта (круга), а не от центра. Вот есть такой объект в СПДС как узловая выноска, там можно задавать угол шага этой выносной линии (мне тоже бы так хотелось) и там эта линия выходит не из центра а из граничной линии, мне нужно так, но просто вместо регулируемого овала у меня будет фиксированный круг. Как так сделать? Видел в некоторых видосах вводится какая то функция системная mcArrowSize которая регулирует размер стрелки, может там есть еще какие то функции чтобы сделать как я описал?
  11. Не знаю, поможет ли оно вам, но... Там 3 объекта: два отвода (1 и 2) и воздуховод (ВВ). Которые точно так же выстраиваются последовательно в цепь: ВВ-отвод1-ВВ. Все свойства, соответсвенно, передаются по всей цепочке. А вот отвод2 встраивается как раз между двумя уже существующими ВВ. Т.е. строим цепочку, удаляем из середины отвод1, вставляем отвод2, коннектимся к обоим ВВ (главное с порядком не пролететь) и всё работает, связи восстанавливаются, свойства по-прежнему летают туда-сюда по цепочке. ВВ и отвод1 - законченные объекты, отвод2 - просто эксперимент, целью которого и была такая вот встройка объекта в существующую цепь, именно добившись этой встройки я 2 года назад и плюнул на эту систему, ввиду того, что "нам и этого хватит". Хрен его знает, как у меня тогда это получилось, но насколько я помню, OnAddObject я не использовал в принципе (т.к. не знал о нём), все связи сделаны за счёт остальных обработчиков, возможно у меня там как-то OnConnect в обе стороны работает, я не помню... Наверняка, там много ненужного, неправильного, переусложненного и т.д., но гляньте, вдруг, чем поможет... Спасибо попробую.
  12. В общем проблема. У меня несколько объектов в цепи подсоеденины, есть прямые зависимости в OnConnect, так и обратные в OnAddObject, и допустим мне нужно произвести перевставку первого объекта в цепи, соответственно остальная цепь от него отваливается, чтобы проицепить обратно я использую команду "Соединить объекты". Он почему то соединяет все то что указанно в OnConnect, А у меня же еще есть обратные зависимости в OnAddObject. И он их не соединяет почему то. В ролике я увидел что в этих трубных блоках и отводах обратная зависимость то же работает (когда там менялся диаметр перехода, все объекты до него тоже поменялись, То есть объекты становятся опять связанные и двигаются при перемещении одного из них, и зависимости прямые восстанавливаются, а обратные нет почему то Как при присоединении обновить OnAddObject?
  13. Ну я там глянул у него все переменные не через массив определены, а просто, и сумма высоты слоев выполняется вручную так сказать (h1+h2+h3...+...hn). И я попробовал объявить Pn по отдельности, и вроде получилось. Сумма теперь корректно считается. Странно, видимо с массивами как то криво работает программа. Очень неудобно, придется 50 переменных прописывать и описывать вручную
  14. Еще раз доброго дня. Подскажите не могу сообразить. Есть 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
  15. Сам себе отвечу Для этого необходимо использовать функцию OnAddObject (стандартная функция). И там прописать какие параметры взять из объекта, который подключается к данному. (Вдруг кому пригодится, очень полезная как оказалась функция). И второй вопрос. Не могу понять зачем нужна функция OnUpdateGraphics. В описании в справке, ни в вордовском документе про нее ни слова. И третий. Как можно в скрипте вытянуть индекс плоскости, к которой совершено подключение? Вот у меня есть объект у него есть плоскости WP2, WP3, WP4, WP5, WP6. И к нему подключаются несколько других объектов. Подключаются к плоскостям WP3, WP4, WP6. И вот как мне вытянуть названия плоскостей этих. Если выбрать объект и нажать "Управление зависимостями" там будет список состоявшихся зависимостей и к каким его плоскостям какие объекты подключены. Вот мне нужно вытянуть номера (или хотяб названия) этих плоскостей.
×
×
  • Создать...