Jump to content

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


Recommended Posts

По моему у меня когда-то был подобный прикол, что объект как-то непонятно реагировал на граничные углы.

Примерно то же, что и у тебя в примере: по логике программы x=0 было почему-то НЕпротивоположно x!=0 (примерно такой формат проблемы).

Причин тогда не нашёл и просто отдельно обозначил поведение в таких проблемных граничных точках.

Link to comment
Share on other sites

  • 1 month later...

Обновил объект пола

Объект, по сути, носит обучающий характер.
Упрощение в скрипте было следующее - прогнал через while все функции, которые добавляли и убирали строки.
Тут встретил один прикол - это сработало. 
т.е. У меня изначально было руками написано 20 однотипных функций на "+" к строке и на "-" к строке. Я их поставил на кнопочки.
Потом упростил это всё через функцию While - кнопки остались рабочими, но выбрать функцию с нужным номером нельзя
 

Спойлер

И соответственно, когда я добавлял функцию "function PlusDown", мне пришлось написать 20 строк вида "function PlusDown1 {};", забиндить каждую на нужную кнопку и лишь потом загнать всё это под while :ph34r:
 

  • Like 1
Link to comment
Share on other sites

Как текст красиво сделан!!!

iii=1;
h=0;
While(iii<=k);
q=iff(ht<(h[iii]*rSymScl/rScl); L/2; iff(iii/2==round(iii/2);L+otT;-otT));
UText(mp+oX*(q)+oY*((H-h-h[iii]/2)*rSymScl/rScl), DegToRad(0), ht, 0, 0.0000, string(iii),1,1);
h=h+h[iii];
iii=iii+1;
EndWhile;

Душевно прям!

image.png.a1cbdac3af4d30edb5104c6b7bfb8efc.png

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Добрый день!

Расскажите, а можно элементы исполнения параметрического объекта размещать на разных слоях. Ну или каким-то иным способом сделать часть исполнения "непечатным"?

Link to comment
Share on other sites

1 час назад, AlExTs сказал:

Добрый день!

Расскажите, а можно элементы исполнения параметрического объекта размещать на разных слоях. Ну или каким-то иным способом сделать часть исполнения "непечатным"?

image.png.c89e6227c3be8fc52882a8727c9a3b5e.png

Панель "СПДС Матер Объектов" -  "Установить параметр" - далее выбираете ряд объектов геометрии и в открывшейся форме в числе прочего можете задать переменную, которая будет отвечать за видимость данных объектов. Значения переменной: 1 (видно) и 0 (не видно). А условия, когда 1, а когда 0, уже прописываете в скрипте.

Что означает галочка рядом - не помню. Если при открытии этой формы нажать F1, то откроется нужный раздел справки.

  

1 час назад, AlExTs сказал:

Расскажите, а можно элементы исполнения параметрического объекта размещать на разных слоях

Нет, насколько мне известно.

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

1 час назад, Mитька сказал:

Значения переменной: 1 (видно) и 0 (не видно). А условия, когда 1, а когда 0, уже прописываете в скрипте.

Сейчас управление исполнениями и назначение параметров БД можно назначать прямо из отчётов.

добавлено через 5 минут
1 час назад, AlExTs сказал:

Расскажите, а можно элементы исполнения параметрического объекта размещать на разных слоях.

Вы хотите использовать "Непечатную геометрию" для взаимного расположения деталей?

Можно использовать "Зависимости" - их не видно на чертеже, но взаимное расположение  объектов всегда будет ограничиваться и обновляться при перемещении объектов

Link to comment
Share on other sites

  • 2 weeks later...

При перемещении параметрического объекта командой GRIP_MOVE точка вставки по оси Z перемещается из 0 в -1 и этот объект становится "невидим" для раздела ОТЧЁТ таблицы. При перемещении командой MOVE такое не происходит. Это так и задумано, или косяк? Или я чего-т не понимаю?

Link to comment
Share on other sites

  • 1 month later...

Вопрос к знающий людям. 
При создание (или в дальнейшем редактирование) исполнения для параметрики, можно задать тип линий (их вроде 8, если нечего не путаю), а цвет линии можно как-то задать?
И если нет, планируется ли в будущем это добавить?)
Пример использования - есть параметрический объект арматурного стержня, в этом стержне есть переменная, которая при значение 0, не даёт учитывать этот стержень в спецификации. В данном случае, было бы удобно, чтобы стержень, который не учитывается в спецификации, был бы другого цвета, чтобы визуально это можно было отследить)

Link to comment
Share on other sites

6 минут назад, MCAD сказал:

Было же в этой теме обсуждение, что проще перенести на другой слой? 

Тип линии "0"  должен быть по слою.

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

Link to comment
Share on other sites

14 минут назад, dromandon сказал:

Ну и в принципе нашёл решение, но оно кривое, конечно, использующее инструментарий, которые предназначен не для этого))

Вот тут, в архиве файл с примером. Попробуй у блока  поменять слой. Будет меняться исполнение. Может подойдет как идея.

Link to comment
Share on other sites

  • 1 month later...

Ребят, может знает кто
В параметрических объектах есть переменная lViewType, которая показывает, какой сейчас у детали вид. Но проблема в том, что она только лишь показывает, а есть ли переменная, которая отвечает за смену вида?

Т.е.

Вот есть переменная strDesignName отвечает за исполнение и ей можно присвоить имя

strDesignName = "Implementation1"

Такой строкой я скажу моему параметрическому объекту принять данное исполение

но если я напишу

lViewType = VTOP

То мой объект вид не поменяет =/

 

Link to comment
Share on other sites

В 25.12.2020 в 18:54, dromandon сказал:

То мой объект вид не поменяет =/

так поменяет

MakeVectorsFromView(VLEFT, vecDirection, vecPlane);//вид сверху

вставить в OnInitialization 

  • Thanks 1
Link to comment
Share on other sites

25 минут назад, doctorraz сказал:

вставить в OnInitialization

А если мне надо, чтобы по нажатию на кнопку в форме вид менялся?) хочу просто впихнуть кнопку, которая меняла бы ряд параметров в объекте, включая смену виду) 

Поэтому думал создать свою функцию и привязать её к нажатию на кнопку) 

Сработает в таком случае? 

Проверить сам смогу только завтра) 

Link to comment
Share on other sites

 

27 минут назад, dromandon сказал:

Сработает в таком случае? 

должно, какая разница, как менять, через панель видов жэж срабатывает

-----------

я предложил в OnInitialization потому, что мне при вставке понадобился вид отличный от "спереди"

------

PS Панель видов и исполнений чем неугодила?

 

image.png.e5363896ce65a0a101aa60ff417e9895.png

Edited by doctorraz
поменял картинку
  • Like 1
Link to comment
Share on other sites

11 часов назад, doctorraz сказал:

PS Панель видов и исполнений чем неугодила?

Хочу, чтобы одним нажатием менялись несколько параметров в объекте, а не "тыкнул тут, тут ручку поменял, тут вид сменил" и т.д.)

  • Like 1
Link to comment
Share on other sites

Добрый день, подскажите новичку. Есть необходимость сделать автоматическую нумерацию фотографий обследования на планах зданий. Мысль сделать параметрический объект в виде элипса с порядковой нумерацией внутри. Элипс потому что иногда цифры идут 110-115, а не 1,2,3 и нужно чтобы элипс вытягивался по оси x в зависимости от длинны надписи внутри. 

Пытался реализовать через маркер, но элипс не меняет своих размеров и данный маркер (сам элипс) не перекрывает растры и вектора которые под ним. Возможен ли такой объект если да, то как?

Link to comment
Share on other sites

7 часов назад, Xekkuc сказал:

Элипс потому что иногда цифры идут 110-115, а не 1,2,3

Можно сделать несколько "исполнений", которые будут меняться в зависимости от номера (если конечно там просто число, а не 110-115), и если image.png.8c20a20ec764b42531ec471a95d88f0e.png

ну, а дальше см. п. 5.3

 

7 часов назад, Xekkuc сказал:

не перекрывает растры и вектора которые под ним.

У эллипса нет контура перекрытия. Сделайте Wipeout  перенесите её на нижний уровень

image.png.01a3cc1d2ea2772da17a5ef141830260.png

PS: с растрами не пробовал 

PSS:  проверил - ПЕРЕКРЫВАЕТ

 

image.png.1bc2f1594065335ce710ccd44d0cbb6a.png

 

Xekkuc.zip

Link to comment
Share on other sites

В 04.01.2021 в 08:32, MCAD сказал:

Можно сделать несколько "исполнений", которые будут меняться в зависимости от номера (если конечно там просто число, а не 110-115)

Большое спасибо за совет с маскировкой, не совсем понял какой атрибут запрещает вводить в значение перемнной text символы кроме цифр?

и если ли какой либо аналог комбинации функций экселя "ечисло" и "поиск", для поиска содержимого в переменной text.

p.s. функция "поиск" возвращает в ячейку "1" если нашла нужный текст в заданной ячейке, а функция "ечисло" проверяет находится ли в ячейке число или нет.

в эксле бы условие было таким: 

{iff(ЕЧИСЛО(Поиск("-";Text);4(четвертая форма);iff(Text<10;"1";iff(Text<100;"2";"3"))

т.е если в text есть тире, то вызывает форму №4, если нет то перебирает формы в зависимости от значения

p.s.s ппц у Вас там -33...

Edited by Xekkuc
  • Like 1
Link to comment
Share on other sites

10 часов назад, Xekkuc сказал:

не совсем понял какой атрибут запрещает вводить в значение перемнной text символы кроме цифр?

В маркере нет типизации данных, просто на форме для элемента управления можно назначить декоративный  тип данных, просто для контроля ввода, если нужно.

image.png.b6f9099d6442ff473ad6fe842a605d79.png

10 часов назад, Xekkuc сказал:

p.s. функция "поиск" возвращает в ячейку "1" если нашла нужный текст в заданной ячейке, а функция "ечисло" проверяет находится ли в ячейке число или нет.

Нет, я выше уже говорил, что "Универсальный маркер" для пользователей, которые хорошо понимают алгоритмы, по которым проектируют и оформляют чертежи, но не владеют программированием. Старались сделать как можно более простой в использовании инструмент, доступный именно для этой категории. 

С другой стороны, маркер именно и задумывался как инструмент для "склейки" разных атрибутов, в том числе и спец символов например. Что мешает завести этот  аргумент  отдельным атрибутом маркера?

image.png.022846b2562a24b9fe1d21c4b964f524.png

Маркер со спецсиволами.mcdi

 

10 часов назад, Xekkuc сказал:

в эксле бы условие было таким: 

{iff(ЕЧИСЛО(Поиск("-";Text);4(четвертая форма);iff(Text<10;"1";iff(Text<100;"2";"3"))

т.е если в text есть тире, то вызывает форму №4, если нет то перебирает формы в зависимости от значения

О, это отдельная песня!!! Я лично не умею пользоваться Excel.  Ну точнее оцениваю свой  потенциал знаний на уровне 5-7 %  от всего, что умеет Excel. 

 Но это уже совсем другая история.

Можно попробовать распарсить строку в наших таблицах и вернуть значение в атрибут маркера. и Уже там управлять формой.

 

Под роликом подробная легенда и есть ссылка на файл. Разбор строки subSplit и ctlSetValue.dwg

На таблице есть интерактивная форма, для наглядных подсказок

 

 

10 часов назад, Xekkuc сказал:

p.s.s ппц у Вас там -33...

Угу, свежо :-)

Разбор строки subSplit и ctlSetValue.dwg

Link to comment
Share on other sites

10 часов назад, Xekkuc сказал:

то вызывает форму №4,

Если я не верно понял вопрос и он касался именно Форм, то делаете атрибут mcFormName "Вычисляемым" 

image.png.21377ae2cf87c115a8c546bc6da7dc22.png

и задаёте условие iff(Text<10;"Main";iff(Text<100;"Test1";"Test2"))

Предварительно создав нужные "Пользовательские формы"

image.png.36ce04692d3b3b5912544b045366eafe.png

 

Нумерация.mcdiПример связей.dwg

 

 

Link to comment
Share on other sites

@Xekkuc, накидал параметрический объект.
Если нужно автоматическое изменение размеров (параметров R (радиус) и L(длина) объекта) в зависимости от текста, то опишите алгоритм, добавлю)

Длину текста, к сожалению, вытащить не получится, поэтому, могу описать поведение только для числовых значений (допустим если число больше 10, то L=0, R=3 и т.п.)
 

Спойлер

UPD. Чтобы параметрика перекрывала растр в свойства в строке "Перекрывать примиты" выберите значение "Маскированием"

Спойлер

image.thumb.png.3323ea8adaa9c795d5cc2164831bc1dd.png

Круглый марке с цифрой.mcd Хеккус.dwg

Edited by dromandon
  • Like 1
Link to comment
Share on other sites

@dromandon , @MCAD

Спасибо всем за помощь, взял за основу маркеры от mcad, оставил 2 исполнения: круг для чисел от 1 до 999 и эллипс для нумерации с тире. Через если проверяется наличие числа, если в ячейке не число, то вызывает исполнение с эллипсисом. Плюс добавил функцию для добавления сразу на нужный слой.

P.s. так и не понял как ссылку на профиль вставлять...

 

Маркировка фото и прочностей.dwg Номер фотографии.mcdi

Edited by Xekkuc
  • Like 1
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...