|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
08.04.2016, 07:04 | #1 | |
Как средствами LISP сделать обычный атрибут постоянным?
RUSSIA
Регистрация: 05.09.2007
Сообщений: 165
|
||
Просмотров: 1772
|
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,091
|
попробуйте с помощью dxf-кода 70. к текущему значению прибавить 2 и атрибут станет постоянным
небольшой код для иллюстрации Код:
Последний раз редактировалось kp+, 08.04.2016 в 10:43. |
|||
|
||||
Регистрация: 05.09.2007
RUSSIA
Сообщений: 165
|
Цитата:
Но немного не так, как хотелось бы. Смысл сделать постоянным - чтобы при новой вставке значение атрибута сохранялось. Если я делаю постоянным в "редакторе блока", то так и работает. Если сделать по предлагаемому коду, то применяется это только к конкретному вхождению блока. А при новой вставке этот атрибут по-прежнему "непостоянный" |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,091
|
Ну так код сугубо для иллюстрации. Если Вы желаете программно править определение атрибута (attdef) в определении блока - то самое трудное, это до него добраться. Судя по #1, это Вы сделали и получили vla-объект определения атрибута. А далее vlax-vla-object->ename в помощь и вторая строчка из приведенного в #2 кода.
|
|||
|
||||
Регистрация: 05.09.2007
RUSSIA
Сообщений: 165
|
Похоже - нет. Я шел через выбор блока, а в этом случае, видимо, работаешь с вхождением...
Получается тоже только для этого вхождения... Пошел другим путем через vla-get-blocks. Получил определения блоков. Из них выбрал нужный. Вроде это ОПРЕДЕЛЕНИЕ БЛОКА. Не пойму - как добраться до атрибутов. (vlax-dump-object block 1) ; IAcadBlock: Определение блока, включающее в себя имя блока и набор объектов. ; Значения свойств: ; Application (RO) = #<VLA-OBJECT IAcadApplication 00007ff7399ed910> ; BlockScaling = 0 ; Comments = "" ; Count (RO) = 57 ; Document (RO) = #<VLA-OBJECT IAcadDocument 000000002b367ef8> ; Explodable = -1 ; Handle (RO) = "65B6" ; HasExtensionDictionary (RO) = -1 ; IsDynamicBlock (RO) = 0 ; IsLayout (RO) = 0 ; IsXRef (RO) = 0 ; Layout (RO) = AutoCAD.Application: Свойство недоступно в текущем состоянии ; Name = "Основной_штамп_v4" ; ObjectID (RO) = 52 ; ObjectID32 (RO) = 52 ; ObjectName (RO) = "AcDbBlockTableRecord" ; Origin = (0.0 0.0 0.0) ; OwnerID (RO) = 44 ; OwnerID32 (RO) = 44 ; Path = AutoCAD.Application: Неприменимо ; Units = 0 ; XRefDatabase (RO) = AutoCAD.Application: Нет базы данных ; Поддерживаемые методы: ; Add3DFace (4) ; Add3DMesh (3) ; Add3DPoly (1) ; AddArc (4) ; AddAttribute (6) ; AddBox (4) ; AddCircle (2) ; AddCone (3) ; AddCustomObject (1) ; AddCylinder (3) ; AddDim3PointAngular (4) ; AddDimAligned (3) ; AddDimAngular (4) ; AddDimArc (4) ; AddDimDiametric (3) ; AddDimOrdinate (3) ; AddDimRadial (3) ; AddDimRadialLarge (5) ; AddDimRotated (4) ; AddEllipse (3) ; AddEllipticalCone (4) ; AddEllipticalCylinder (4) ; AddExtrudedSolid (3) ; AddExtrudedSolidAlongPath (2) ; AddHatch (4) ; AddLeader (3) ; AddLightWeightPolyline (1) ; AddLine (2) ; AddMInsertBlock (11) ; AddMLeader (2) ; AddMLine (1) ; AddMText (3) ; AddPoint (1) ; AddPolyfaceMesh (2) ; AddPolyline (1) ; AddRaster (4) ; AddRay (2) ; AddRegion (1) ; AddRevolvedSolid (4) ; AddSection (3) ; AddShape (4) ; AddSolid (4) ; AddSphere (2) ; AddSpline (3) ; AddTable (5) ; AddText (3) ; AddTolerance (3) ; AddTorus (3) ; AddTrace (1) ; AddWedge (4) ; AddXline (2) ; AttachExternalReference (9) ; Bind (1) ; Delete () ; Detach () ; GetExtensionDictionary () ; GetXData (3) ; InsertBlock (7) ; Item (1) ; Reload () ; SetXData (2) ; Unload () Последний раз редактировалось mkung, 13.04.2016 в 15:09. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Делаешь vlax-for и проверяешь имя объекта. Если AcDbAtributeDefinition (кажется, так) - то это атрибут. Ну и снимай для него дамп...
Код:
Код:
----- добавлено через 59 сек. ----- P.S. Возможно, вместо vla-get-effectivename понадобится vla-get-name
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,091
|
Здесь хороший пример http://forums.autodesk.com/t5/visual...s/td-p/2114394
|
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как быстро средствами autocad сделать 3d модель из 2d чертежей. | gesper | AutoCAD | 19 | 02.12.2010 09:07 |
Как сделать диалоговое окно, описанное в DCL файле и вызванное Lisp программой, немодальным? | E-degtyarev | LISP | 9 | 28.05.2010 09:10 |
Как средствами VBA сделать "AI_DESELECT " | Miniril | Программирование | 1 | 23.03.2010 11:07 |
Возможно ли сделать атрибут невидимым на чертеже при изменении ручки состояния видимости? | JokerrSergh | AutoCAD | 15 | 15.01.2009 12:26 |
Как сделать "прозрачный" lisp? | ASLYS | LISP | 21 | 01.06.2007 15:43 |