根据我的建议,我已经开始了理解entmake的旅程,并将努力摆脱使用(命令…)的旧习惯总是
李,我有你指示我去的entmakex实体的列表,谢谢。我决定采用每个实体类型,并尝试通过将正确的参数传递给entmake引擎来调用它们。简单的实体(线、圆、文本等)是我可以实现的。然而,区块仍然是一个谜。我查看了一些不同的代码,认为如果先定义块,然后定义子实体,然后关闭(结束)块定义,我应该会看到块出现在屏幕上。
该代码在图形数据库中创建块图元的实例,但不会显示在屏幕上。
-
- (defun c:LOLLIPOP ()
- (entmake '((0 . "BLOCK")
- (100 . "AcDbEntity")
- (67 . 0)
- (8 . "0")
- (100 . "AcDbBlockReference")
- (66 . 1)
- (2 . "LOLLIPOP")
- (10 0.0 0.0 0.0)
- (70 . 2)
- )
- )
- (entmake '((0 . "CIRCLE")
- (100 . "AcDbEntity")
- (67 . 0)
- (8 . "NewLayer1")
- (100 . "AcDbCircle")
- (10 0.0 3.0 0.0)
- (40 . 1.0)
- )
- )
- (entmake '((0 . "LINE")
- (100 . "AcDbEntity")
- (67 . 0)
- (8 . "NewLayer2")
- (100 . "AcDbLine")
- (10 0.0 0.0 0.0)
- (11 0.0 2.0 0.0)
- )
- )
- (entmake '((0 . "ATTDEF")
- (100 . "AcDbEntity")
- (67 . 0)
- (8 . "NewLayer3")
- (100 . "AcDbText")
- (10 -0.375 2.4375 0.0)
- (40 . 1.125)
- (1 . "X")
- (50 . 0.0)
- (41 . 1.0)
- (51 . 0.0)
- (7 . "MONOSIFR")
- (71 . 0)
- (72 . 4)
- (11 0.0 3.0 0.0)
- (100 . "AcDbAttributeDefinition")
- (3 . "PROMPT X:")
- (2 . "TAGX")
- (70 . 0)
- (73 . 0)
- (74 . 0)
- )
- )
- (entmake '((0 . "ENDBLK") (100 . "AcDbBlockEnd") (8 . "0")))
- (command "_.Layer" "c" "1" "NewLayer1" "c" "2" "NewLayer2" "c" "3" "NewLayer3" "")
- (princ)
- )
为什么不显示?此外,我使用命令更改图层颜色。我研究了entmod,但它并没有解释修改层属性。有没有更合适的方法可以在不使用命令调用的情况下修改图层特性? |