Jump to content

параметрические объекты СПДС


Recommended Posts

А вид сзади, кстати, включится при таком отражении? Это ж по идее внутренний процесс объекта..?

лучше один раз увидеть)))

при зеркалировании объект пишет внутренний номер проекции.. , но после открытия в форме меняет на правильный текущий..

в принципе движок не идеален, но если его не насиловать такой заумью типа зеркала... работает вполне адекватно

Кубик.zip

  • Like 4
Link to comment
Share on other sites

Нано СПДС 6,0.

 

1. Можно ли в отчёт по параметрическим объектам автоматически докидывать их геометрию? Вроде было в нане что-то типа Object.Geometry или я ошибаюсь? Попробовал, не получилось.

В качестве фонарного примера: собрать данные со всех линий на чертеже, объединить по типу и сделать что-то типа автоматических условных обозначений.

 

 

Так?

 

Да, так, спасибо. Правда в контексте генплана приложение идеи выглядит так себе в итоге...

Link to comment
Share on other sites

А вид сзади, кстати, включится при таком отражении? Это ж по идее внутренний процесс объекта..?
лучше один раз увидеть))) при зеркалировании объект пишет внутренний номер проекции.. , но после открытия в форме меняет на правильный текущий.. в принципе движок не идеален, но если его не насиловать такой заумью типа зеркала... работает вполне адекватно

 

Так вот открытия в форме и хочется избежать. Если бы объекты "не насиловали такой заумью типа зеркала" - и вопроса бы такого не стояло...

Представьте жилое 10 этажное здание, где вся арматура разложена объектами, по 4 слоя объектов на каждую плиту перекрытия. Т.е. тьма элементов.

А теперь надо поставить рядом точно такое же здание, только зеркальное... Это ж если через форму или копированием, ппц будет полный. Или одно движение, если зеркалом.

Пример, канеш, преувеличенный, но механика такая...

 

Edited by Mитька
  • Like 1
Link to comment
Share on other sites

Кстати, в нане СПДС 8.0 объекты как-нибудь изнасиловали хитро или оставили всё как минимум, как было..? А то непонятно, перетаскивать ли свои менянные или редактировать новые..? Да и вообще чего ждать не ясно...

Link to comment
Share on other sites

перетаскивать ли свои менянные или редактировать новые..?

Если вы что-то меняли в базе, то запустите утилиту конфигурации: C:\Program Files\Nanosoft\nanoCAD СПДС x64 8.0\mg11\McConfiguration.exe

И синхронизируйте базу

img-2018-06-26-17-35-07.png

Link to comment
Share on other sites

Видимо, опять невнятно выразился. Я представляю себе, как пользоваться утилитой конфигурации. Мой вопрос о другом.

 

Я допиливал часть вшитых в базу наны 6.0. объектов (в основном металлический профиль: двутавры, уголки и т.д.) под потребности организации (менял диалог, механику/кол-во ручек, геометрию и пр.)

Т.е. сейчас они у меня такие, какие мне нужны. Поскольку я работал с базой 3-хгодичной давности, то в базе современной возможны 3 ситуации:

 

- существовавшие там объекты 3х-годичной давности НЕ МЕНЯЛИСЬ разработчиками (т.к. "они и так совершенны") и тогда я просто заменю их своими.

- существовавшие там объекты 3х-годичной давности МЕНЯЛИСЬ разработчиками (т.к. "никто не идеален, да и чего бы не переделать что-нибудь неважное") и тогда, заменив их своими, я могу проманать какое-нибудь приятное нововведение, не сразу заметное глазу.

- таких данных нет, (т.к. "разработчик уволился, а собака съела его отчёт и т.д") - и в этом случае я буду отслеживать это уже сам для каждого объекта отдельно, просто это дольше.

 

Вот мне и интересно, менялись ли СУЩЕСТВОВАВШИЕ РАНЕЕ объекты базы или изменения версий 7 и 8 коснулись иных сфер, а базу обошли.

Edited by Mитька
  • Like 1
Link to comment
Share on other sites

Вот мне и интересно, менялись ли СУЩЕСТВОВАВШИЕ РАНЕЕ объекты базы или изменения версий 7 и 8 коснулись иных сфер, а базу обошли.

 

Менялись. Были добавлены формы в диалоги редактирования. Других радикальных изменений не было.

Запрос #5105

Link to comment
Share on other sites

  • 2 weeks later...

Вопрос ко всем и в частности в MCAD, мастер всяческих тумблеров и переключателей: никто не делал/встречал что-то типа динамического графического интерполятора или... шкалы?

Механика работы: проводишь объект-линию, задаёшь ей числовые значения начала конца и шаг, и линия превращается в шкалу, где графически линиями и текстом выделены определенные промежуточные значения.

 

Если кто делал какие-то наброски и не пожалеет поделиться объектом, буду признателен. Полезная штука, но времени нету совсем... =(

Edited by Mитька
Link to comment
Share on other sites

Механика работы: проводишь объект-линию, задаёшь ей числовые значения начала конца и шаг, и линия превращается в шкалу, где графически линиями и текстом выделены определенные промежуточные значения.

 

 

Это не ОНО?

 

 

img-2018-07-11-09-52-38.png

ii=0;
While(ii<(N_VERT));
  jj=0;
  While(jj<(1));
 Line(node13+OY*(H)*ii+OX*(0)*jj,mp+OY*(H)*ii+OX*(0)*jj,1,1);
 Line(node14+OY*(H)*ii+OX*(0)*jj,node0+OY*(H)*ii+OX*(0)*jj,1,1);
 jj=jj+1;
EndWhile;
ii=ii+1;
EndWhile;
ii=0;
s0="А";s1="Б";s2="В";s3="Г";s4="Д";s5="Е";s6="Ж";s7="И";s8="К";s9="Л";s10="М";s11="Н";s12="П";s13="Р";
s14="С";s15="Т";s16="У";s17="Ф";s18="Ш";s19="Э";s20="Ю";s21="Я";
s22="АА";s23="ББ";s24="ВВ";s25="ГГ";s26="ДД";s27="ЕЕ";s28="ЖЖ";s29="ИИ";s30="КК";s31="ЛЛ";s32="ММ";s33="НН";s34="ПП";s35="РР";
s36="СС";s37="ТТ";s38="УУ";s39="ФФ";s40="ШШ";s41="ЭЭ";s42="ЮЮ";s43="ЯЯ";
//Ё, З, Й, О, X, Ц, Ч, Щ, Ъ, Ы, Ь  Буквы запрещенные ГОСТ
//s26="Н";s27="О";s28="П";s29="Р";
//s30="А";s31="Б";s32="В";s33="Г";s44="Д";s35="Е";s36="Ж";s37="И";s38="К";s39="Л";s40="М";s411="Н";s42="О";s33="П";s44="Р";
//АБВГДЕЖЗИКЛМНПР СТУФЦЧШЩЭЮЯ

 

bulge=1;
While(ii<(1));
  jj=0;
  While(jj<(N_HORIZ+1));
 Line(node15+OY*(0)*ii+OX*(L)*jj,node16+OY*(0)*ii+OX*(L)*jj,2,1);
 Arc(node17+OY*(0)*ii+OX*(L)*jj,node18+OY*(0)*ii+OX*(L)*jj,bulge,2,1);
 Arc(node18+OY*(0)*ii+OX*(L)*jj,node17+OY*(0)*ii+OX*(L)*jj,bulge,2,1);
 UText(getMiddle(node17,node18)+(L*jj)*OX-0*OY, 0, 300, 0, 0, s[jj] ,[,1 ,1]);
 jj=jj+1;

 

Совсем простой вариант: Шкала.zip

img-2018-07-11-10-58-04.png

Edited by MCAD
  • Like 3
Link to comment
Share on other sites

А подскажите как внутри скрипта исполнения объекта пользоваться командой "if"?

Просто давно каким-то чудом выяснил, что если внутри UText угол поворота текста прописать как DegToRad(-angleTwoPi(oX,gX)), то получится так, что текст всегда будет повёрнут горизонтально.

И теперь я хочу, чтобы в зависимость от текущего значения angleTwoPi(oX,gX) менялась привязка текста по горизонтали и вертикали, т.е эти переменные

UText(Point, Angle, Height, XScaling(widthfactor), Oblique,"Text",[HorizontalAlignment, VerticalAlignment]);

То есть, если кратко на словах, то

при 0<angleTwoPi(oX,gX)<90, HorizontalAlignment =1 и VerticalAlignment=1

при 90<angleTwoPi(oX,gX)<180, HorizontalAlignment =1 и VerticalAlignment=2

и т.п.

Но всё это надо прописать как-то в теле скрипта исполнения, ибо внутри скрипта объекта angleTwoPi(oX,gX) не меняется(

Link to comment
Share on other sites

при 0

при 90

Например, если выравнивание по горизонтали:

UText(mp+oX+oY*(50),0,2*rSymScl/rScl,1,-10.0000,"Test",iff(angleTwoPi(oX,gX)>=0;iff(angleTwoPi(oX,gX)<=90;0;2)),iff(angleTwoPi(oX,gX)>=0;iff(angleTwoPi(oX,gX)<=90;2;1)));

img-2018-07-12-19-06-45.png

Выравние uText в зависимости от угла вставки.zip

  • Like 2
Link to comment
Share on other sites

Доработал объект "шкала" из этого сообщения, вдруг кому понадобится

Там симбиоз разных объектов :D

 UText(node1+oX*step*jj+oY*5*rSymScl/rScl, DegToRad(-angleTwoPi(oX,gX)),2.5*rSymScl/rScl,0,0, String(K+jj*s)+String(PC),
 iff(angleTwoPi(oX,gX)>=0;iff(angleTwoPi(oX,gX)<60;1;
 iff(angleTwoPi(oX,gX)>=60;iff(angleTwoPi(oX,gX)<120;2;
 iff(angleTwoPi(oX,gX)>=120;iff(angleTwoPi(oX,gX)<240;1;
 iff(angleTwoPi(oX,gX)>=240;iff(angleTwoPi(oX,gX)<300;0;
 iff(angleTwoPi(oX,gX)>=300;iff(angleTwoPi(oX,gX)<360;1)))))))))),1);
jj=jj+1;
};

img-2018-07-12-20-44-30.png

Link to comment
Share on other sites

Намутил такую штуку

https://www.youtube.com/watch?v=DTaoDYQ3bEU

 

Сам объект дорабатывается, хочу прикрутить ещё армирование, конечно, со спецификацией автоматом.

Но пока, сверх того, что есть, прикрутил только плитку :D

  • Like 1
Link to comment
Share on other sites

HELP!

Есть параметрический объект с приличным набором параметров. Один из них (пока один, в будущем собираюсь делать больше) завязан на таблице. Но вот беда - если этот параметр менять через меню свойств, а не через форму, то в меню свойство его значение исчезает, если оно не подходит табличному. Хотя, по логике скрипта, должно выбираться ближайшее наибольшее из таблицы. Что, собственно, на самом деле и происходит, но в меню свойств значения этого параметра просто пропадает..

При этом, если из этого объекта удалить все другие параметры, то всё будет работать корректно.

Есть решение какое-нибудь по этому вопросу?

Видео прилагаю:

Нанокад СПДС 6.0

Edited by dromandon
Link to comment
Share on other sites

Разобрался.

Случайно дал разным переменным одно и то же описание.

У меня было

D1,"Диаметр нижней продольной арматуры",

и

D3,"Диаметр нижней продольной арматуры",

Прошу прощения за кипишь :rolleyes:

  • Like 2
Link to comment
Share on other sites

А возможно ли создать контур подавления объекта СПДС, чтобы тот перекрывал линии, создаваемые внутри объекта?

Как пример - в одном объекте у меня есть и продольная и поперечная арматура.

И вот я хочу чтобы поперечная армутра, перекрывала продольную. Но чтобы это было не два объекта с разным порядком следования, а один.

Link to comment
Share on other sites

А возможно ли создать контур подавления объекта СПДС, чтобы тот перекрывал линии, создаваемые внутри объекта?

Не реально. Можно просто пересчитать геометрию внутри.

img-2018-07-25-23-37-50.png

ГЦ.zip

 

Как пример - в одном объекте у меня есть и продольная и поперечная арматура.

Тут "Массив" напрашивается (spwizarr)

 

img-2018-07-25-23-19-38.png

 

Сетка копия .zip

  • Like 1
Link to comment
Share on other sites

А возможно ли создать контур подавления объекта СПДС, чтобы тот перекрывал линии, создаваемые внутри объекта?

Не реально. Можно просто пересчитать геометрию внутри.

 

Жаль, что не реально, геометрию геморно было передать, хоть и реально, как оказалось)

 

Тут "Массив" напрашивается (spwizarr)

 

Массивом пользуюсь. Даже догадался штриховку в объект добавить, но не до конца разобрался в скрипте её. Поэтому бросил. А ща понял, что вся ошибка в том была, что в конце End() не ставил :D

  • Like 1
Link to comment
Share on other sites

Помогите решить задачку.

Есть объект, в нём таблица Table0 с переменной D1 (real) - нужные мне диаметры.

вбиваю эту переменную в Public и Changeable

далее прописываю

function OnInitialization {
SelectInCache( 0, "kFirst", "D1", "=", 10);
}
function OnChangeParameters {
SelectInCache( 0, "kFirst", "D1", ">=", new.D1);
}

 

И потом возникает следующая ситуация.

Объект находится на чертеже - меняю через свойство параметр D1 - всё работает как следует.

Открываю форму - там таблица с фильтрацией - переменная TableEdit_0 в которой одна колонка с D1.

Изменяю значение D1 через эту таблицу, жму ОК - всё прекрасно работает.

 

Но возникла надобность ввести D1 в форме не через таблицу с фильрацией, а через обычную строку.

Беру строку, задаю ей переменную D1. Меняю, жму ОК - не работает, объект не изменился.

Захожу снова в форму, меняю D1, жму "Применить" - смотрю на объект - он изменился. Жму ОК - объект сбрасывается на значение, которое было до открытия диалога формы.

 

Что делаю не так?

Link to comment
Share on other sites

так пробуй

function OnDialogChanged {
 D1=new.D1;
  SelectInCache( 0, "kFirst", "D1", ">=", D1);
}

Edited by doctorraz
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт? Tell a friend!
×
×
  • Create New...