oper_80 Posted August 19, 2016 Report Share Posted August 19, 2016 Появились следующие вопросы по созданию объектов в базе элементов: 1. В записи графического исполнения, например, LineToA(mp+oX*(22.3378)+oY*(23.2117), 1,1); что означает последняя 1? 2.Как можно задать список значений в combobox? Form.combobox.AddItem "123" не работает. Спасибо за наглядный ответ, по первому пункту все понятно. По второму, я вопрос немного не так сформулировал. Как задать список значений из скрипта? Например, есть функция, которая повешена на открытие формы. Из этой функции было бы неплохо задать набор значений combobox в соответствии с определенными условиями. Какие методы поддерживает combobox? Например, стандартный виндовый combobox понимает такие конструкции на C#: Form.combobox.Items.Add("qwerty"); //Добавить элемент Form.combobox.Items.Insert(1, "qwerty"); //Добавить элемент в 1 позицию Form.combobox.Items.Clear(); //Очистить список элементов и т.д. А как это сделать из скрипта? Quote Link to comment Share on other sites More sharing options...
MCAD Posted August 19, 2016 Report Share Posted August 19, 2016 Например, стандартный виндовый combobox понимает такие конструкции на C#: У нас нет возможности и необходимости повторять в MechWizard'е функционал C#. Он, сам по себе самодостаточен, и , если вы владеете им, то можете не просто создавать свои объекты, а переписать (например ;-) ) нанокад. Наоборот, все сделано таким образом, что б создавать, редактировать и и модифицировать объекты мог любой пользователь. Приведите пример, когда в этом есть необходимость и нет возможности использовать штатные средства диалога редактирования форм, например. Вот обратная задача, когда в зависимости от значений combobox'а нужно присвоить то, или другое, значение переменной в скрипте имеет место быть: Например тут ( ) http://www.youtube.com/watch?v=kBp-fkC9taw&index=55&list=PL1MQqrS2qjWNfYGu1IyeLR3l5YGd4N20p Quote Link to comment Share on other sites More sharing options...
oper_80 Posted August 19, 2016 Report Share Posted August 19, 2016 Приведите пример, когда в этом есть необходимость и нет возможности использовать штатные средства диалога редактирования форм, например. Например, у меня есть 28 combobox, список доступных для выбора значений которых зависит от выбранного устройства. Т.е. заранее задать этот список через редактор форм не получается. Конечно, можно наложить эти comboboxы друг на друга и управлять их видимостью, но это сильно усложнит скрипт. PS Я не требую создать вундервафлю, просто интересуюсь возможностями Quote Link to comment Share on other sites More sharing options...
doctorraz Posted August 19, 2016 Report Share Posted August 19, 2016 Например, у меня есть 28 combobox, список доступных для выбора значений которых зависит от выбранного устройства. Т.е. заранее задать этот список через редактор форм не получается. Конечно, можно наложить эти comboboxы друг на друга и управлять их видимостью, но это сильно усложнит скрипт. таблица с фильтрацией на форме и фильтром типа SelectInCache("kFilter", "FilterGost","<", bbFilterGost); по таблице базы обрабатываешь свои условия, без танцев с бубном и сишар 2 Quote Link to comment Share on other sites More sharing options...
oper_80 Posted August 19, 2016 Report Share Posted August 19, 2016 таблица с фильтрацией на форме и фильтром типа SelectInCache("kFilter", "FilterGost","<", bbFilterGost); по таблице базы обрабатываешь свои условия, без танцев с бубном и сишар Можно и так. Но управлять контролами из скрипта для динамического изменения формы было бы неплохо. А есть где-нибудь список доступных из скрипта свойств контролов? Я нашел только Enabled, Visible и Value. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted August 19, 2016 Report Share Posted August 19, 2016 А есть где-нибудь список доступных из скрипта свойств контролов? Я нашел только Enabled, Visible и Value. есть в книжке по мехвизарду и на форумах крохи.. это называется ДСП. зачем тебе это, у тебя есть сишар, можно вообще в голой платформе крутые вещи делать. ЗЫ имхо и существующего функционала под большинства потребностей выше крыши, вопрос в другом, что этот функционал порой неимоверно крив и работает далеко не так, как обещали тебе при покупке. А исправлять баги никто не торопится, добавляют новые баги фишки 2 Quote Link to comment Share on other sites More sharing options...
MCAD Posted August 19, 2016 Report Share Posted August 19, 2016 Например, у меня есть 28 combobox, список доступных для выбора значений которых зависит от выбранного устройства. Ну идея не новая и, в принципе doctorraz уже ответил: зачем тебе это, у тебя есть сишар, можно вообще в голой платформе крутые вещи делать. Одно дело реализовать функционал, другое дело сделать его удобным, доступным и востребованным. Вот как с комбобоксами решать такие задачи? http://www.youtube.com/watch?v=5E3GGmVv3M0&feature=youtu.be Но управлять контролами из скрипта для динамического изменения формы было бы неплохо. Да в общем-то при желании все можно сделать. Вопрос цены и затраченного времени. :-) 2 Quote Link to comment Share on other sites More sharing options...
MCAD Posted August 30, 2016 Report Share Posted August 30, 2016 К вопросу о работе с блоками autocad. Действительно, блоков и наработок много. Но блоки можно модифицировать и упростить взаимодействие "Блока и пользователя" http://www.youtube.com/watch?v=zuWNJsfsk6w&list=PL1MQqrS2qjWNfYGu1IyeLR3l5YGd4N20p 2 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted August 30, 2016 Report Share Posted August 30, 2016 (edited) можно, но имхо они для другого (блоки) как пример дин блок с таблицей параметров строк этак на 100 будет вызывать неадекватные тормоза всего чертежа А параметрика или тот же маркер при подавляющем превосходстве функционала и наличии нескольких таблиц параметров строк под 1к, сколь-нибудь заметного торможения вызывать не будет. Оно и понятно, описание дин блока, таблица его параметров и вся возможная графика хранится в чертеже, а параметрика объектов, таблицы в базе (в чертеже только индекс и текущая графика) Edited August 30, 2016 by doctorraz 2 Quote Link to comment Share on other sites More sharing options...
Bucho Posted October 26, 2016 Report Share Posted October 26, 2016 Автомат.rar Что не так с автоматом? Когда вставляю два не связанных автомата все красиво отображается. Но когда один соединен со вторым, то при перемещении главного автомата у второго меняется вид Автомат.rar Quote Link to comment Share on other sites More sharing options...
MCAD Posted October 27, 2016 Report Share Posted October 27, 2016 Но когда один соединен со вторым, то при перемещении главного автомата у второго меняется вид В Вашем случае плоскость WP2 задана параллельно плоскости "OXY" - соответственно зависимость поворачивает объект. Если Вы хотите (как я понял) соединить верхние и нижние точки "автомата" то плоскость должна лежать параллельно "OYZ". Желательно сразу задать направление вектора. Потом проще накладывать зависимости. Я не смог разобраться с Вашими комментариями в скрипте. Приложил свой вариант: Автомат (вариант).zip 3 Quote Link to comment Share on other sites More sharing options...
MCAD Posted June 17, 2017 Report Share Posted June 17, 2017 Из переписки: Способ формирования текстовой строки для "Исполнения" в объекте БД. Таблица и объекты в архиве. Объекты переехали в пост #243 2 Quote Link to comment Share on other sites More sharing options...
dromandon Posted July 4, 2017 Report Share Posted July 4, 2017 Знающее люди, помогите пожалуйста.. Мучаюсь с видами и ручками на них.. Хочу сделать банальный арматурный стержень, чтобы был вид сбоку, сверху и сечение. На виде сбоку - за ручку увеличивалась бы длина стержня, поворот за эту же ручку и отдельная ручка на диаметр арматуры (этот вид у меня получилось) на виде сверху - просто базовая ручка и ручка для распределения стержня и ручка для длины (для распределения ручка не появляется). на сечение - две ручки для распределения (сверху и снизу сечения) + ручку для диаметра. Вроде всё правильно (как мне кажется) прописываю, но не работает. Скажите, где я тупой?) Файл стержня прилагаю L - длина стержня D - диаметр DR - длина распределения function SetGripPoint { OXPlane = Plane(pntOrigin,vecDirection); OYPlane = Plane(pntOrigin,vecPlane); vecNormal = getLocalNormal(vecDirection,vecPlane); OZPlane = Plane(pntOrigin,vecNormal); if(lViewType == VFRONT) { NGrip = 3; pntGrip0 = pntOrigin; pntGrip1 = pntOrigin + vecDirection*(L) + vecPlane*(0); pntGrip2 = pntOrigin + vecDirection*(0) + vecPlane*(D); }; if(lViewType == VTOP) { NGrip = 4; pntGrip0 = pntOrigin; pntGrip1 = pntOrigin + vecPlane*(D); pntGrip2 = pntOrigin + vecNormal*(DR) + vecPlane*(0); pntGrip3 = pntOrigin + vecNormal*(DR) + vecPlane*(D); }; if(lViewType == VLEFT) { NGrip = 3; pntGrip0 = pntOrigin; pntGrip1 = pntOrigin + vecDirection*(L) + vecPlane*(0); pntGrip3 = pntOrigin + vecDirection*(0) + vecNormal*(DR); }; }; function OnMoveGripPoint { OXPlane = Plane(pntOrigin,vecDirection); OYPlane = Plane(pntOrigin,vecPlane); vecNormal = getLocalNormal(vecDirection,vecPlane); OZPlane = Plane(pntOrigin,vecNormal); if(lViewType == VFRONT) { if (NMovingGrip == 0) { pntOrigin = pntGrip0; }; if(NMovingGrip == 1){ L = vecLen(pntGrip0 - pntGrip1)/rScl; vecDirection = pntGrip1 - pntGrip0; }; if(NMovingGrip == 2){ D = vecLen(pntGrip2 - pntGrip0)/rScl; LoadInCache( Tip,GOST, D ); SelectInCache( "kFirst","Tip", "~", Tip,"GOST", "~", GOST,"D", "~", D); }; }; if(lViewType == VTOP){ if (NMovingGrip == 0) { pntOrigin = pntGrip0; }; if(NMovingGrip == 1){ DR = vecLen(pntGrip0 - pntGrip2)/rScl; vecNormal = pntGrip2 - pntGrip0; }; if(NMovingGrip == 2){ DR = vecLen(pntGrip2 - pntGrip3)/rScl; vecNormal = pntGrip2 - pntGrip3; }; if(NMovingGrip == 3){ D = vecLen(pntGrip0 - pntGrip1)/rScl; LoadInCache( Tip,GOST, D ); SelectInCache( "kFirst","Tip", "~", Tip,"GOST", "~", GOST,"D", "~", D); }; }; if(lViewType == VLEFT) { if (NMovingGrip == 0) { pntOrigin = pntGrip0; }; if (NMovingGrip == 1) { L = vecLen(pntGrip0 - pntGrip1)/rScl; }; if (NMovingGrip == 2) { DR = vecLen(pntGrip2 - pntGrip0)/rScl; }; }; //end auto generation for view VFRONT }; Арматурный стержень 3.0.mcd.7z Quote Link to comment Share on other sites More sharing options...
Mитька Posted July 5, 2017 Report Share Posted July 5, 2017 (edited) Не сильно копался, но, если я правильно понял, то на VTOP вы не видите плоскость Plane. Тогда: pntGrip0 = pntOrigin; pntGrip1 = pntOrigin + vecPlane*(D); Эти 2 точки сольются в одну, т.к. значения Direction и Normal у них одинаковы. pntGrip2 = pntOrigin + vecNormal*(DR) + vecPlane*(0); pntGrip3 = pntOrigin + vecNormal*(DR) + vecPlane*(D); У этих двух - аналогичная ситуация. Т.е. программа как минимум не знает, какую именно из каждой пары точек вы выбираете. Добавьте во 2 и 3 точку какой-нибудь отличный от нуля Direction и будет вам, как сказал бы Доктор, счастье. Третью плоскость не смотрел, но думаю, там та же драма. Плюс могут быть ошибки в самом поведении объекта. Ещё в вашем описании очень помогло бы соотнесение видов (топ, лефт, фронт) с вашими их описаниями (сбоку, сверху,сечение), т.к. порядок их, как я понимаю по кол-ву ручек, перепутан. Кол-во ручек, которое вы хотите видеть на каждом из видов, тоже прописать бы. Поможет потенциальным помощникам. Кстати, в перепутанных видах, возможно, и кроется ваша беда (хотя по кол-ву ручек по идее нет...). Сейчас в сечении (когда арматура представляет из себя просто круг) - 4 ручки (2 из которых - непонятно на что, т.к. не контачат. как минимум, у меня). Нафига..? Edited July 5, 2017 by Mитька 3 Quote Link to comment Share on other sites More sharing options...
Mитька Posted July 5, 2017 Report Share Posted July 5, 2017 (edited) И вот это вот гляньте, делалось давно и топорно, но вдруг пригодится. Привязываются к краю плиты с заданным защитным слоем. При небольшом усилии можно все 4 типа объединить в один объект и навертеть свистелок форму, подсчёт массы, разные диаметры, глубину и прочие ваши хотелки. Геометрия прилагается. А то задавать распределение отдельно поперечной арматуре - это как-то сложно... Армирование.7z Edited July 5, 2017 by Mитька 2 Quote Link to comment Share on other sites More sharing options...
MCAD Posted July 5, 2017 Report Share Posted July 5, 2017 Можно посмотреть тут: MCD-шник ГОСТ 19425 -74 в работе не использовать!!! Только для примера. Для форума nancad.ru ГОСТ 19425-74.zip 1 Quote Link to comment Share on other sites More sharing options...
dromandon Posted July 10, 2017 Report Share Posted July 10, 2017 Кстати, в перепутанных видах, возможно, и кроется ваша беда (хотя по кол-ву ручек по идее нет...). Сейчас в сечении (когда арматура представляет из себя просто круг) - 4 ручки (2 из которых - непонятно на что, т.к. не контачат. как минимум, у меня). Нафига..? Насчёт видов, возможно и не разобрался.. Вот как мне показалось, должны располагаться виды и оси к ним.. Распределение - имеется ввиду - тянешь за эту ручку в сторону - появляются через указанный шаг новые стрежни Может я как-то не правильно понимаю суть кода.. Как я думаю: в function SetGripPoint мы задаёмся количеством ручек и указываем их расположение. А в function OnMoveGripPoint мы уже задаём функции, что происходит, когда мы тянем за эти ручки.. P.S. Я в итоге ввёл исполнения вместо видов и отказался от вида сверху. Прикрепляю файл, если интересно, что хотелось получить от ещё 2 ручек в виде с сечением) Desktop.7z 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted August 22, 2017 Report Share Posted August 22, 2017 Обновился маркер из поста #237 uText.zip 3 Quote Link to comment Share on other sites More sharing options...
Mитька Posted September 20, 2017 Report Share Posted September 20, 2017 Можно ли присвоить тексту в объекте тип линии, отличный от 1? Quote Link to comment Share on other sites More sharing options...
MCAD Posted September 20, 2017 Report Share Posted September 20, 2017 Нет Quote Link to comment Share on other sites More sharing options...
Mитька Posted September 20, 2017 Report Share Posted September 20, 2017 Это печально (с) Quote Link to comment Share on other sites More sharing options...
MCAD Posted September 20, 2017 Report Share Posted September 20, 2017 Можно ли присвоить тексту в объекте тип линии, отличный от 1? Сложно представить ситуацию, когда текст пишется типом линии (может еще с шейпами) :-) Это печально (с) Крепкие сибирские мужики получили японскую бензопилу. Сначала дали ей перепилить тонкое бревно. Вжик! - сказала японская бензопила и перепилила тонкое бревно. ОГО! - сказали крепкие сибирские мужики и дали пиле толстое бревно. Вжик! - сказала японская бензопила и перепилила толстое бревно. ОГО! - сказали крепкие сибирские мужики и дали пиле гигантское бревно. Вжик! - сказала японская бензопила и перепилила гигантское бревно. ОГО! - сказали крепкие сибирские мужики и дали пиле стальной ломик. КХХХРРРЖЖЖ - сломалась японская бензопила. НУ ДЫК! - ухмыльнулись крепкие сибирские мужики и пошли валить лес ручными пилами. 2 Quote Link to comment Share on other sites More sharing options...
Mитька Posted September 20, 2017 Report Share Posted September 20, 2017 Сложно представить ситуацию, когда текст пишется типом линии (может еще с шейпами) :-) Разве сложно? Простейший объект возьмите: линия и её название. Линия нужна типа 1, типу 1 автоматом присвоена толщина "По слою", толщина слоя - 0,7, а текст нужен толщиной 0,13, как и весь окружающий текст, а не 0,7. Quote Link to comment Share on other sites More sharing options...
Kreator Posted September 20, 2017 Report Share Posted September 20, 2017 Пардон, тип линии - это же не вес? Quote Link to comment Share on other sites More sharing options...
Mитька Posted September 20, 2017 Report Share Posted September 20, 2017 Видимо, разные типы линий (каждая со своими настройками веса) - единственный известный мне способ использовать разные веса линий в пределах одного объекта. Если есть ещё какие-то, буду признателен за информацию. =) 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.