doctorraz Posted June 24, 2019 Report Share Posted June 24, 2019 >>А там логика какая тогда должна быть? 2 исполнения объеденить в одном объекте? линия и круг? зачем так усложнять? одно исполнение, выноску таскаешь (как трубу) а координаты пересечения вычисляются в скрипте и по ним строится. вот так делал http://www.youtube.com/watch?v=4bcdc7ROtyA что должна уметь твоя выноска, кроме того, что она выноска? Чертеж1.dwg 2 Quote Link to comment Share on other sites More sharing options...
Ruyke Posted June 24, 2019 Report Share Posted June 24, 2019 По сути это параметрический объект, в котором будут табличные параметры датчиков и позиция, только с графикой не могу разобраться. Должен быть круг, по середине убираемая палочка во весь диаметр. и палочка (линия выноска) которая будет не от центра а от края круга, но направление может быть от разных сторон, как бы я за нее тяну она меняет длину и направление, но как бы то что в пределах круга ее не видно, только снаружи. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted June 24, 2019 Report Share Posted June 24, 2019 (edited) По сути это параметрический объект, в котором будут табличные параметры датчиков и позиция, только с графикой не могу разобраться. Должен быть круг, по середине убираемая палочка во весь диаметр. и палочка (линия выноска) которая будет не от центра а от края круга, но направление может быть от разных сторон, как бы я за нее тяну она меняет длину и направление, но как бы то что в пределах круга ее не видно, только снаружи. табличные параметры будут храниться в выноске или руками или с другого объекта? взаимодействие с другими объектами? маркер из #776 не устраивает? Edited June 24, 2019 by doctorraz Quote Link to comment Share on other sites More sharing options...
Ruyke Posted June 24, 2019 Report Share Posted June 24, 2019 По сути это параметрический объект, в котором будут табличные параметры датчиков и позиция, только с графикой не могу разобраться. Должен быть круг, по середине убираемая палочка во весь диаметр. и палочка (линия выноска) которая будет не от центра а от края круга, но направление может быть от разных сторон, как бы я за нее тяну она меняет длину и направление, но как бы то что в пределах круга ее не видно, только снаружи. табличные параметры будут храниться в выноске или руками или с другого объекта? взаимодействие с другими объектами? маркер из #776 не устраивает? У него выносная линия не такая как мне нужна (она только слева или справа) Гляньте как я хочу реалиовать (см. файл). Drawing2.dwg Quote Link to comment Share on other sites More sharing options...
MCAD Posted June 24, 2019 Report Share Posted June 24, 2019 Слаб я в арифметике. Работает нормально только от "0" до Pi. Дальше надо исполнение менять если Y Балон со стрелкой.zip 1 Quote Link to comment Share on other sites More sharing options...
Ruyke Posted June 24, 2019 Report Share Posted June 24, 2019 Слаб я в арифметике. Работает нормально только от "0" до Pi. Дальше надо исполнение менять если Y Все примерно понял, Спасибо. Правда не понимаю как работает подавление той невидимой части. 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted June 24, 2019 Report Share Posted June 24, 2019 Если ничего не выдумывать, то стоит посмотреть 19. а) Шарнир.zip 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted June 24, 2019 Report Share Posted June 24, 2019 Правда не понимаю как работает подавление той невидимой части. На линию назначен "Рабочий объект" Quote Link to comment Share on other sites More sharing options...
MCAD Posted June 24, 2019 Report Share Posted June 24, 2019 На линию назначен "Рабочий объект" Мой коллега, отягощённый знаниями арифметики, подверг меня обструкции. Всё гениальное просто и не нужны никакие "рабочие объекты" Соответственно: 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="Укажите положение звена"; }; Кривошип.zip 2 Quote Link to comment Share on other sites More sharing options...
Mитька Posted June 24, 2019 Report Share Posted June 24, 2019 На линию назначен "Рабочий объект" Мой коллега, отягощённый знаниями арифметики, подверг меня обструкции. Всё гениальное просто и не нужны никакие "рабочие объекты" Соответственно: 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="Укажите положение звена"; }; А для пущего удовольствия ещё и контекстную менюшку из #723 для имитации выпадающего списка из исходников. 1 Quote Link to comment Share on other sites More sharing options...
Ruyke Posted June 25, 2019 Report Share Posted June 25, 2019 (edited) На линию назначен "Рабочий объект" Мой коллега, отягощённый знаниями арифметики, подверг меня обструкции. Всё гениальное просто и не нужны никакие "рабочие объекты" Соответственно: 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;} }; }; }; Edited June 25, 2019 by Ruyke Quote Link to comment Share on other sites More sharing options...
Ruyke Posted June 25, 2019 Report Share Posted June 25, 2019 Вот у меня есть таблица с отчетом параметрических объектов, и допустим собирает следующее: (столбцы обозначены скобками) Строка 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шт.) А нужно чтобы через запитую он прописывал первый столбец если там различаются позиции. Так можно сделать? Quote Link to comment Share on other sites More sharing options...
doctorraz Posted June 25, 2019 Report Share Posted June 25, 2019 (edited) >>Так можно сделать? ага =sum(Object.POZIC +iff(index==Count();"";", ")) POZIC -это свойство... QF-1 QF-2 итд Edited June 25, 2019 by doctorraz 1 Quote Link to comment Share on other sites More sharing options...
Ruyke Posted June 26, 2019 Report Share Posted June 26, 2019 >>Так можно сделать? ага =sum(Object.POZIC +iff(index==Count();"";", ")) POZIC -это свойство... QF-1 QF-2 итд Ого, вот спасибо! Класс. P.S. Знаю что запросы слишком велики, но за спрос же не поджарят)))) А можно ли сделать чтобы например если у меня их 8 штук подряд? чтобы было QF-1 - QF-8? Я понимаю что тут логика более сложная, но вдруг кто делал так Quote Link to comment Share on other sites More sharing options...
MCAD Posted June 26, 2019 Report Share Posted June 26, 2019 чтобы было QF-1 - QF-8? А по факту нужно получить такое? QF-1 - QF-8; QF-11 - QF-18; QF-21 - QF-28 и т.д. Я так не умею. Похоже что существующие алгоритмы этого не смогут реализовать. Вот зря вы все инструменты в одной теме обсуждаете. Уже и до таблиц добрались 1 Quote Link to comment Share on other sites More sharing options...
Mитька Posted June 26, 2019 Report Share Posted June 26, 2019 (edited) Вот зря вы все инструменты в одной теме обсуждаете. Уже и до таблиц добрались Их давно пора объединить в отдельном форуме или теме под грифом "Автоматизация". Они ж все связаны друг с другом часто. Часто ж тут как бывает: есть вопрос - есть 3-4 варианта решения: параметрика, маркеры, таблицы и, допустим, VBA. Нет же смысла разбивать диалог на 4 отдельных темы... Всё в любом случае обсуждается там, где поднялась тема. А поднимается она чаще всего тут. Edited June 26, 2019 by Mитька 4 Quote Link to comment Share on other sites More sharing options...
dromandon Posted July 1, 2019 Report Share Posted July 1, 2019 Ребят, такого рода вопрос, может я чего не знаю, Параметрический объект возможно завязать на полилинии/отрезке/штриховке? Т.е. вот у меня есть параметрический объект армирования по площади. В нём форма, где есть пункт - площадь. Там я жму кнопочку - взять с объекта - и выбираю полилинию нужную. Всё хорошо, цифра нужная ставится, всё считаются. Но я, допустим, хочу поменять контур полилинии. Площадь полилинии меняется, но площадь в объекте приходится менять вручную.. Может как-то можно реализовать эту связь, чтобы было автоматически? Через группы такое возможно? Или может где-то внутри самого объекта можно что-то прописать?) Quote Link to comment Share on other sites More sharing options...
MCAD Posted July 1, 2019 Report Share Posted July 1, 2019 Но я, допустим, хочу поменять контур полилинии. Площадь полилинии меняется, но площадь в объекте приходится менять вручную.. Может как-то можно реализовать эту связь, чтобы было автоматически? Такая связь реализована в Универсальном маркере. Его можно вставлять в группе объектов. http://www.youtube.com/watch?v=yJIxJu25hHY&feature=youtu.be 1 Quote Link to comment Share on other sites More sharing options...
dromandon Posted July 1, 2019 Report Share Posted July 1, 2019 Такая связь реализована в Универсальном маркере. Его можно вставлять в группе объектов. ну меня интересуют параметрические объекты) Не делать же мне параметрический объект, на него маркер, и это всё в группу) Quote Link to comment Share on other sites More sharing options...
MCAD Posted July 1, 2019 Report Share Posted July 1, 2019 ну меня интересуют параметрические объекты) Под объектами Базы Данных подразумеваются объектв которые легко и просто поддаются "параметризации". Идеологически - это инструменты для "Проектирования". "Кубики", из которых можно складывать конструкцию. Маркеры, Шаблоны Таблицы, это инструменты оформления и сбора информации. Тащить в мастер объектов инструмент описания зависимостей между свойствами объекта и свойствами примитивово платформы? Сложно и не востребовано оправдано. Сугубо личное мнение. 1 Quote Link to comment Share on other sites More sharing options...
dromandon Posted July 1, 2019 Report Share Posted July 1, 2019 (edited) Под объектами Базы Данных подразумеваются объектв которые легко и просто поддаются "параметризации". Идеологически - это инструменты для "Проектирования". "Кубики", из которых можно складывать конструкцию. Маркеры, Шаблоны Таблицы, это инструменты оформления и сбора информации. Тащить в мастер объектов инструмент описания зависимостей между свойствами объекта и свойствами примитивов платформы? Сложно и не востребовано оправдано. Сугубо личное мнение. Так я и не спорю) Просто спросил, может есть способ как-то завязать объект базы на примитиве платформы) Просто группами мало пользовался, но, как показалось, через группы нельзя) На нет и суда нет, как говорится)) Edited July 1, 2019 by dromandon 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted August 26, 2019 Report Share Posted August 26, 2019 Часто задают вопросы как заполнять список в comboBox из скрипта. Как правило на вопрос: "Зачем нужно именно так" - ответа нет, но вот один пользователь захотел "Управлять содержимым списка" в зависимости от "Управляющего параметра". Есть разные возможности для заполнения списка. http://www.youtube.com/watch?v=pQ7OQIb5wuY&list=PLxzNmJ3Maam7pWN5KD8NbMmYrZQbNRlhD с помощью Мастера скриптов. Одновременно создаем сам список (radio) и приравниваем значение параметра. Скрипт получается автоматически и в нужных разделах uniDialog появятся нужные comboBox (radio1 & radio2) //Список comboBox1 if(radio1 == 0) { T=275; } if(radio1 == 1) { T=290; } if(radio1 == 2) { T=310; } if(radio1 == 3) { T=650; } //Список comboBox2 if(radio2 == 0) { P1=200; } if(radio2 == 1) { P1=400; } if(radio2 == 2) { P1=665; } if(radio2 == 3) { P1=800; }[/font][/color] [color=#0D0D0D][font=Roboto, Arial, sans-serif] RADIO, //comboBox1 radio1,"Худая", "Нормальная", "Пышная", "Да ну её нафиг:-)", //comboBox2 radio2,"Mini", "Midle", "Maxi", "IGIL", [/font][/color] [color=#0D0D0D][font=Roboto, Arial, sans-serif] Есть возможность создавать значение списка из скрипта (дословно: как в Excel). Для этого, в function OnDialogChanged добавляем Form.combobox1.Count = и добавляем список нужных значений Form.combobox1.Items[1] При этом сам список и количество строк в нем может вычисляться от другой переменной Поля со списком (comboBox2, combobox2, combobox4) заполнены обычным способом и им всем присвоена та же переменная rT1 что и для combobox1 В зависимости от значения переменной rT, значение Form.combobox2.Visible = TRUE; для comboBox2, combobox2, combobox4 меняется. function OnDialogChanged { If rT=="Материал" { [/font][/color] [color=#0D0D0D][font=Roboto, Arial, sans-serif]Form.combobox1.Count = 5; Form.combobox1.Items[1] = "Чугун"; Form.combobox1.Items[2] = "Бронза"; Form.combobox1.Items[3] = "Латунь"; Form.combobox1.Items[4] = "Медь"; Form.combobox1.Items[5] = "Сталь"; Form.combobox2.Visible = TRUE; Form.combobox3.Visible = FALSE; Form.combobox4.Visible = FALSE; }; If rT=="Состояние" { Form.combobox1.Count = 3; Form.combobox1.Items[1] = "Твёрдый"; Form.combobox1.Items[2] = "Жидкий"; Form.combobox1.Items[3] = "ГАЗООБРАЗНЫЙ"; Form.combobox2.Visible = FALSE; Form.combobox3.Visible = TRUE; Form.combobox4.Visible = FALSE; }; If rT=="Цвет" { Form.combobox1.Count = 7;[/font][/color] [color=#0D0D0D][font=Roboto, Arial, sans-serif]Form.combobox1.Items[1] = "Красный"; Form.combobox1.Items[2] = "Оранжевый"; Form.combobox1.Items[3] = "Жёлтый"; Form.combobox1.Items[4] = "Зелёный"; Form.combobox1.Items[5] = "Голубой"; Form.combobox1.Items[6] = "Синий"; Form.combobox1.Items[7] = "Фиолетовый"; Form.combobox2.Visible = FALSE; Form.combobox3.Visible = FALSE; Form.combobox4.Visible = TRUE; }; };[/font][/color] [color=#0D0D0D][font=Roboto, Arial, sans-serif] Проверяем работу контролов на пользовательской форме и на чертеже Выравниваем comboBox2, combobox2, combobox4 на пользовательской формеComboBox ListValue.zip 5 Quote Link to comment Share on other sites More sharing options...
MCAD Posted August 26, 2019 Report Share Posted August 26, 2019 И, что б два раза не вставать, еще про использование списков в разных объектах. Универсальный маркер Переменные на пользовательской форме табличного отчёта Пользовательская сортировка по колонке http://www.youtube.com/watch?v=rIrYCotafFU 4 Quote Link to comment Share on other sites More sharing options...
dromandon Posted September 10, 2019 Report Share Posted September 10, 2019 Подскажите кто-нибудь пожалуйста. Хочу в одном из объектов создать возможность ввода площади либо в м2, либо в мм2. Но чтобы обе величины отображались и менялись в зависимости друг от друга. Т.е. условно, если отбросить всю остальную часть объекта, у меня должен получится объект перевода единиц измерения. С формой вроде получилось разобраться, как сделать подобное. У меня затуп в OnChangeParameters - что там надо написать? Может запутано написал.. Короче: две строчки, обе активные - меняешь одну, должна меняться и вторая (и быть равной = первая*1000000) и наоборот - меняешь вторую, меняется и первая (и становится равной = вторая/1000000) В форме я данное реализовал, помогите пожалуйста теперь реализовать это, при смене значения через свойства..) Перевод единиц 1.zip Quote Link to comment Share on other sites More sharing options...
doctorraz Posted September 10, 2019 Report Share Posted September 10, 2019 (edited) в OnChangeParameters делаешь проверку на new первого параметра.. если изменился присваиваешь ему значение new и идешь на пересчет для второго аналогично ---- что бы не плодить одинаковый код, можно вынести в пользовательскую функцию и на пересчет отправлять туда Edited September 10, 2019 by doctorraz 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.