На developer.nanocad.ru уже есть примеры со вставкой элемента. Если говорить про COM интерфейс, есть возможность использовать XML для указания параметров вставки, тогда не потребуется использовать командные методы. Ручки объекта как правило завязаны на какие-то параметры внутри объекта, поэтому можно редактировать не сами ручки, а те параметры, которыми управляют ручки.
Пример в видео по ссылке
https://disk.yandex.ru/i/UR3dnEwV-ae9Ww
Ниже код из видео. Часть кода позаимствована отсюда
https://t.me/ModelStudioCS/37606.
(Vl-load-com)
(setq obj (vlax-get-acad-object))
(setq ICADLibrary (vla-GetInterfaceObject obj “LibManager.CADLibrary.1”))
(setq xml (strcat
“<?xml version=\"1.0\" encoding=\"utf-8\"?>”
“”
“”
“”
“”
“”
“”“”
“”
“”
“”))
(vlax-invoke ICADLibrary “Insert” “{1D0DE154-8841-448B-A9CD-9C06AFB033DF}” xml)
(setq obj (entlast))
(setq vlaobj (vlax-ename->vla-object obj))
(setq Elm (vlax-get-property vlaobj “Element”))
(setq Param_List (vlax-get-property Elm “Parameters”))
(vlax-invoke Param_List “SetParameter” “DIM_LENGTH” “100” “Длина”)
(vlax-invoke vlaobj “UpdateGraphics”)
Но всё это работает для типа объекта Параметрическое оборудование (linCSParametricSolid), описание структуры xml для других типов объектов я не видел.
И вероятно, что-то должно быть в SDK касательно .net, пока не смотрел SDK по этому поводу.
Олег. Почему именно нужно редактировать ручки:
Дело в том, что параметрический объект в ручках имеет алгоритмы управляющие параметром, а если просто задать свойство, то эти алгоритмы не будут учтены.
Например, в ручке заданы максимальное значение, шаг и т.п., которые можно принимать параметру.
Если применить параметру длины значение из GetDistance или Jig, то можно задать некорректное значение длины именно для конкретного объекта.
Конечно все условия можно прописать в алгоритме команды, но тогда это будет не универсальная команда вставки, которую можно использовать для вставки любого параметрического объекта, а команда вставки определенного объекта с определенным набором параметров для редактирования в определенной последовательности.
Универсальная же команда с редактированием ручек могла-бы вставлять любой объект с интерактивным редактированием любого количества параметров в любой последовательности.
Например вставка плиты с интерактивным определением только ширины, или
Вставка плиты с определением ширины и длины, или наоборот длины и ширины.