doctorraz 878 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 24 июня, 2019 >>А там логика какая тогда должна быть? 2 исполнения объеденить в одном объекте? линия и круг? зачем так усложнять? одно исполнение, выноску таскаешь (как трубу) а координаты пересечения вычисляются в скрипте и по ним строится. вот так делал http://www.youtube.com/watch?v=4bcdc7ROtyA что должна уметь твоя выноска, кроме того, что она выноска? Чертеж1.dwg 2 Цитата Ссылка на сообщение Поделиться на другие сайты
Ruyke 31 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 24 июня, 2019 По сути это параметрический объект, в котором будут табличные параметры датчиков и позиция, только с графикой не могу разобраться. Должен быть круг, по середине убираемая палочка во весь диаметр. и палочка (линия выноска) которая будет не от центра а от края круга, но направление может быть от разных сторон, как бы я за нее тяну она меняет длину и направление, но как бы то что в пределах круга ее не видно, только снаружи. Цитата Ссылка на сообщение Поделиться на другие сайты
doctorraz 878 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 24 июня, 2019 (изменено) По сути это параметрический объект, в котором будут табличные параметры датчиков и позиция, только с графикой не могу разобраться. Должен быть круг, по середине убираемая палочка во весь диаметр. и палочка (линия выноска) которая будет не от центра а от края круга, но направление может быть от разных сторон, как бы я за нее тяну она меняет длину и направление, но как бы то что в пределах круга ее не видно, только снаружи. табличные параметры будут храниться в выноске или руками или с другого объекта? взаимодействие с другими объектами? маркер из #776 не устраивает? Изменено 24 июня, 2019 пользователем doctorraz Цитата Ссылка на сообщение Поделиться на другие сайты
Ruyke 31 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 24 июня, 2019 По сути это параметрический объект, в котором будут табличные параметры датчиков и позиция, только с графикой не могу разобраться. Должен быть круг, по середине убираемая палочка во весь диаметр. и палочка (линия выноска) которая будет не от центра а от края круга, но направление может быть от разных сторон, как бы я за нее тяну она меняет длину и направление, но как бы то что в пределах круга ее не видно, только снаружи. табличные параметры будут храниться в выноске или руками или с другого объекта? взаимодействие с другими объектами? маркер из #776 не устраивает? У него выносная линия не такая как мне нужна (она только слева или справа) Гляньте как я хочу реалиовать (см. файл). Drawing2.dwg Цитата Ссылка на сообщение Поделиться на другие сайты
MCAD 727 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 24 июня, 2019 Слаб я в арифметике. Работает нормально только от "0" до Pi. Дальше надо исполнение менять если Y Балон со стрелкой.zip 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Ruyke 31 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 24 июня, 2019 Слаб я в арифметике. Работает нормально только от "0" до Pi. Дальше надо исполнение менять если Y Все примерно понял, Спасибо. Правда не понимаю как работает подавление той невидимой части. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
MCAD 727 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 24 июня, 2019 Если ничего не выдумывать, то стоит посмотреть 19. а) Шарнир.zip 1 Цитата Ссылка на сообщение Поделиться на другие сайты
MCAD 727 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 24 июня, 2019 Правда не понимаю как работает подавление той невидимой части. На линию назначен "Рабочий объект" Цитата Ссылка на сообщение Поделиться на другие сайты
MCAD 727 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 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 Цитата Ссылка на сообщение Поделиться на другие сайты
Mитька 237 Опубликовано 24 июня, 2019 Жалоба Поделиться Опубликовано 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 Цитата Ссылка на сообщение Поделиться на другие сайты
Ruyke 31 Опубликовано 25 июня, 2019 Жалоба Поделиться Опубликовано 25 июня, 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="Укажите положение звена"; }; Огоо вот это класс. Спасибо. Пробую в этом скрипте реализовать шаг для угла, 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;} }; }; }; Изменено 25 июня, 2019 пользователем Ruyke Цитата Ссылка на сообщение Поделиться на другие сайты
Ruyke 31 Опубликовано 25 июня, 2019 Жалоба Поделиться Опубликовано 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шт.) А нужно чтобы через запитую он прописывал первый столбец если там различаются позиции. Так можно сделать? Цитата Ссылка на сообщение Поделиться на другие сайты
doctorraz 878 Опубликовано 25 июня, 2019 Жалоба Поделиться Опубликовано 25 июня, 2019 (изменено) >>Так можно сделать? ага =sum(Object.POZIC +iff(index==Count();"";", ")) POZIC -это свойство... QF-1 QF-2 итд Изменено 25 июня, 2019 пользователем doctorraz 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Ruyke 31 Опубликовано 26 июня, 2019 Жалоба Поделиться Опубликовано 26 июня, 2019 >>Так можно сделать? ага =sum(Object.POZIC +iff(index==Count();"";", ")) POZIC -это свойство... QF-1 QF-2 итд Ого, вот спасибо! Класс. P.S. Знаю что запросы слишком велики, но за спрос же не поджарят)))) А можно ли сделать чтобы например если у меня их 8 штук подряд? чтобы было QF-1 - QF-8? Я понимаю что тут логика более сложная, но вдруг кто делал так Цитата Ссылка на сообщение Поделиться на другие сайты
MCAD 727 Опубликовано 26 июня, 2019 Жалоба Поделиться Опубликовано 26 июня, 2019 чтобы было QF-1 - QF-8? А по факту нужно получить такое? QF-1 - QF-8; QF-11 - QF-18; QF-21 - QF-28 и т.д. Я так не умею. Похоже что существующие алгоритмы этого не смогут реализовать. Вот зря вы все инструменты в одной теме обсуждаете. Уже и до таблиц добрались 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Mитька 237 Опубликовано 26 июня, 2019 Жалоба Поделиться Опубликовано 26 июня, 2019 (изменено) Вот зря вы все инструменты в одной теме обсуждаете. Уже и до таблиц добрались Их давно пора объединить в отдельном форуме или теме под грифом "Автоматизация". Они ж все связаны друг с другом часто. Часто ж тут как бывает: есть вопрос - есть 3-4 варианта решения: параметрика, маркеры, таблицы и, допустим, VBA. Нет же смысла разбивать диалог на 4 отдельных темы... Всё в любом случае обсуждается там, где поднялась тема. А поднимается она чаще всего тут. Изменено 26 июня, 2019 пользователем Mитька 4 Цитата Ссылка на сообщение Поделиться на другие сайты
dromandon 247 Опубликовано 1 июля, 2019 Жалоба Поделиться Опубликовано 1 июля, 2019 Ребят, такого рода вопрос, может я чего не знаю, Параметрический объект возможно завязать на полилинии/отрезке/штриховке? Т.е. вот у меня есть параметрический объект армирования по площади. В нём форма, где есть пункт - площадь. Там я жму кнопочку - взять с объекта - и выбираю полилинию нужную. Всё хорошо, цифра нужная ставится, всё считаются. Но я, допустим, хочу поменять контур полилинии. Площадь полилинии меняется, но площадь в объекте приходится менять вручную.. Может как-то можно реализовать эту связь, чтобы было автоматически? Через группы такое возможно? Или может где-то внутри самого объекта можно что-то прописать?) Цитата Ссылка на сообщение Поделиться на другие сайты
MCAD 727 Опубликовано 1 июля, 2019 Жалоба Поделиться Опубликовано 1 июля, 2019 Но я, допустим, хочу поменять контур полилинии. Площадь полилинии меняется, но площадь в объекте приходится менять вручную.. Может как-то можно реализовать эту связь, чтобы было автоматически? Такая связь реализована в Универсальном маркере. Его можно вставлять в группе объектов. http://www.youtube.com/watch?v=yJIxJu25hHY&feature=youtu.be 1 Цитата Ссылка на сообщение Поделиться на другие сайты
dromandon 247 Опубликовано 1 июля, 2019 Жалоба Поделиться Опубликовано 1 июля, 2019 Такая связь реализована в Универсальном маркере. Его можно вставлять в группе объектов. ну меня интересуют параметрические объекты) Не делать же мне параметрический объект, на него маркер, и это всё в группу) Цитата Ссылка на сообщение Поделиться на другие сайты
MCAD 727 Опубликовано 1 июля, 2019 Жалоба Поделиться Опубликовано 1 июля, 2019 ну меня интересуют параметрические объекты) Под объектами Базы Данных подразумеваются объектв которые легко и просто поддаются "параметризации". Идеологически - это инструменты для "Проектирования". "Кубики", из которых можно складывать конструкцию. Маркеры, Шаблоны Таблицы, это инструменты оформления и сбора информации. Тащить в мастер объектов инструмент описания зависимостей между свойствами объекта и свойствами примитивово платформы? Сложно и не востребовано оправдано. Сугубо личное мнение. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
dromandon 247 Опубликовано 1 июля, 2019 Жалоба Поделиться Опубликовано 1 июля, 2019 (изменено) Под объектами Базы Данных подразумеваются объектв которые легко и просто поддаются "параметризации". Идеологически - это инструменты для "Проектирования". "Кубики", из которых можно складывать конструкцию. Маркеры, Шаблоны Таблицы, это инструменты оформления и сбора информации. Тащить в мастер объектов инструмент описания зависимостей между свойствами объекта и свойствами примитивов платформы? Сложно и не востребовано оправдано. Сугубо личное мнение. Так я и не спорю) Просто спросил, может есть способ как-то завязать объект базы на примитиве платформы) Просто группами мало пользовался, но, как показалось, через группы нельзя) На нет и суда нет, как говорится)) Изменено 1 июля, 2019 пользователем dromandon 1 Цитата Ссылка на сообщение Поделиться на другие сайты
MCAD 727 Опубликовано 26 августа, 2019 Жалоба Поделиться Опубликовано 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 Цитата Ссылка на сообщение Поделиться на другие сайты
MCAD 727 Опубликовано 26 августа, 2019 Жалоба Поделиться Опубликовано 26 августа, 2019 И, что б два раза не вставать, еще про использование списков в разных объектах. Универсальный маркер Переменные на пользовательской форме табличного отчёта Пользовательская сортировка по колонке http://www.youtube.com/watch?v=rIrYCotafFU 4 Цитата Ссылка на сообщение Поделиться на другие сайты
dromandon 247 Опубликовано 10 сентября, 2019 Жалоба Поделиться Опубликовано 10 сентября, 2019 Подскажите кто-нибудь пожалуйста. Хочу в одном из объектов создать возможность ввода площади либо в м2, либо в мм2. Но чтобы обе величины отображались и менялись в зависимости друг от друга. Т.е. условно, если отбросить всю остальную часть объекта, у меня должен получится объект перевода единиц измерения. С формой вроде получилось разобраться, как сделать подобное. У меня затуп в OnChangeParameters - что там надо написать? Может запутано написал.. Короче: две строчки, обе активные - меняешь одну, должна меняться и вторая (и быть равной = первая*1000000) и наоборот - меняешь вторую, меняется и первая (и становится равной = вторая/1000000) В форме я данное реализовал, помогите пожалуйста теперь реализовать это, при смене значения через свойства..) Перевод единиц 1.zip Цитата Ссылка на сообщение Поделиться на другие сайты
doctorraz 878 Опубликовано 10 сентября, 2019 Жалоба Поделиться Опубликовано 10 сентября, 2019 (изменено) в OnChangeParameters делаешь проверку на new первого параметра.. если изменился присваиваешь ему значение new и идешь на пересчет для второго аналогично ---- что бы не плодить одинаковый код, можно вынести в пользовательскую функцию и на пересчет отправлять туда Изменено 10 сентября, 2019 пользователем doctorraz 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.