Переопределение параметров объектов при публикации в CADLib Модель и Архив
By cad@maxsoft.ru,
CADLib Модель и Архив
В этой записи блога рассмотрен функционал добавления\переопределения параметров объектов при публикации в CADLib Модель и Архив.
В этом видео демонстрируется функционал и его общее назначение. В последующих видео рассмотрены более конкретные пользовательские приемы.
В этом ролике демонстрируется формула, которая переопределяет значения параметра только при выполнении определенного условия.
В данном видео рассмотрены приемы, которые позволяют добавлять параметры объектам платформы nanoCAD, при публикации в CADLib Модель и Архив
Текст формулы из видео:
if(string(object.objectName)="AcDbBlockReference",
"Я блок",
if(string(object.objectName)="mcsDbObject3dSolid",
"Я параметрический солид",
if(string(object.objectName)="AcDb3dSolid",
"Я солид",
if(string(object.objectName)="AcDbHatch",
"Я штриховка",
if(string(object.objectName)="AcDbTable",
"Я таблица",
if(string(object.name)="Слой1",
"Мы объекты слоя 1",
if(string(object.name)="Слой2",
"Мы объекты слоя 2",
if(string(object.name)="Слой3",
"Мы объекты слоя 3",
"Какой-то слой"))))))))
В этой формуле есть несколько нюансов:
1. Использование условия Case, хоть и является в данной ситуации более лаконичным вариантом, тем не менее вызывает ошибки, вероятно из-за того, что case не может обработать несколько обращений к COM интерфейсу. С условием IF проблем не возникает.
2. Также в конструкции IF необходимо первыми обрабатывать объекты блоков, солидов, параметрических моделей, и всего того, что публикуется не послойно. Т.к. в свойствах COM интерфейса таких объектов отсутствует свойство name, имеющиеся у слоев.
Ссылка на сайт, где можно получить документацию по API платформы nanoCAD:
В данном видео рассмотрено переопределение параметров объектов не просто при публикации, а в пространстве модели чертежа. А также демонстрируются примеры применимости.
Формулы из видео:
1. Отступ балки от оси.
if([PART_TAG]="30К2" and [STEEL_DIM_GAP1]<>object.OffsetStartX, object.Element.Parameters.SetParameter("STEEL_DIM_GAP1", string(object.OffsetStartX), "Отступ по Х", ""), [STEEL_DIM_GAP1])
2. Вкл/Выкл переопределения цвета.
if([GENERAL_SWITCH_1]<>0, object.Element.Parameters.SetParameter("GENERAL_SWITCH_1", int(0), "ВКЛ/ВЫКЛ Цветовую индикацию", ""), [GENERAL_SWITCH_1])
3. Переопределение имени
if([PART_NAME]<>string([PART_TAG]&" "&"x"&" "&[PART_MATERIAL]), object.Element.Parameters.SetParameter("PART_NAME", string([PART_TAG]&" "&"x"&" "&[PART_MATERIAL]), "Наименование", "Наименование"), [PART_NAME])
4. Скрытие части объекта.
if([GENERAL_SWITCH_1]<>1, object.Element.Parameters.SetParameter("GENERAL_SWITCH_1", int(1), "ВКЛ/ВЫКЛ", ""), [GENERAL_SWITCH_1])
- Read more...
-
- 0 comments
- 175 views