CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于字典对象和条目(AutoLISP)

2023-1-8 10:32| 发布者: admin| 查看: 362| 评论: 0|来自: AutoCAD

摘要: 字典是一个容器对象,类似于符号表。

字典是一个容器对象,类似于符号表。

字典存储在图形的命名对象字典中,该字典是图形中所有非图形对象的根,或作为附加到对象的扩展字典。每个绘图可以包含不同的字典,因此例程不应期望绘图中可能存在特定的字典。可以使用 访问图形命名对象字典中的字典,该字典返回图元名称。用于访问表示图形中所有字典的实体列表。namedobjdictentget

以下规则适用于字典对象:

  • 可以使用字典对象进行检查,并修改其 xdata。他们的条目不能被更改。对其条目的所有访问都是通过 theandfunctions 进行的。entgetentmodentmoddictsearchdictnext
  • 字典条目内容无法通过修改,但 xdata 可以修改。entmod
  • 无法重命名以 ACAD* 开头的字典条目。

字典条目可以使用 和函数查询。每个字典条目都包含一个文本名称键和一个对条目对象的硬所有权句柄引用。可以通过直接将条目对象名称传递给函数来删除字典条目。文本名称键使用与符号表名称相同的语法和有效字符。可以使用函数更改键名。dictsearchdictnextentdeldictrename

下面的示例代码列出了图形的命名对象字典中的每个字典及其条目:

(defun c:ListDictionaries ( / ed ed1)
  (prompt "\nDictionaries in current drawing: ")
  (foreach ed (entget (namedobjdict))
    (progn
      (cond ((= (car ed) 3)
        (prompt (strcat "\n" (cdr ed))))
            ((= (car ed) 350)
        (progn
          (foreach ed1 (entget (cdr ed))
            (if (= (car ed1) 3)
              (prompt (strcat "\n  " (cdr ed1)))
            )
          )
        ))
      )
    )
  )
 (princ)
)

以下是执行后您可能会在“文本历史记录”窗口中看到的输出示例。c:ListDictionaries

Dictionaries in current drawing:
ACAD_CIP_PREVIOUS_PRODUCT_INFO
ACAD_COLOR
ACAD_DETAILVIEWSTYLE
  Imperial24
ACAD_GROUP
ACAD_LAYOUT
  Layout1
  Layout2
  Model
ACAD_MATERIAL
  ByBlock
  ByLayer
  Global
ACAD_MLEADERSTYLE
  Annotative
  Standard
ACAD_MLINESTYLE
  Standard
ACAD_PLOTSETTINGS
ACAD_PLOTSTYLENAME
  Normal
ACAD_SCALELIST
  A0
  A1
  A2
  A3
  A4
  A5
  A6
  A7
  A8
  A9
  B0
  B1
  B2
  B3
  B4
  B5
  B6
  B7
  B8
  B9
  C0
  C1
  C2
  C3
  C4
  C5
  C6
  C7
  C8
  C9
  D0
  D1
  D2
ACAD_SECTIONVIEWSTYLE
  Imperial24
ACAD_TABLESTYLE
  Standard
ACAD_VISUALSTYLE
  2dWireframe
  Basic
  Brighten
  ColorChange
  Conceptual
  Dim
  EdgeColorOff
  Facepattern
  Flat
  FlatWithEdges
  Gouraud
  GouraudWithEdges
  Hidden
  JitterOff
  Linepattern
  OverhangOff
  Realistic
  Shaded
  Shaded with edges
  Shades of Gray
  Sketchy
  Thicken
  Wireframe
  X-Ray
AcDbVariableDictionary
  CANNOSCALE
  CMLEADERSTYLE
  CTABLESTYLE
  CVIEWDETAILSTYLE
  CVIEWSECTIONSTYLE
  DIMASSOC
  HIDETEXT
  LAYEREVAL
  LAYERNOTIFY

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部