請問如何用entmake建立一個minsert物件
AutoCAD 的 minsert 指令可以插入多重圖塊,那麼請問如何用AutoLISP 的 entmake 來建立一個匿名的 minsert 物件?
本质还是"insert", 部分组码值不一样而已。看dxf帮助。 vormittag 发表于 2013-6-19 18:35 static/image/common/back.gif
本质还是"insert", 部分组码值不一样而已。看dxf帮助。
小弟頭腦不好,
可否請大大舉個實例? 本帖最后由 Gu_xl 于 2013-6-19 19:42 编辑
pizg 发表于 2013-6-19 19:05 static/image/common/back.gif
小弟頭腦不好,
可否請大大舉個實例?
(entmake (list
'(0 . "INSERT")
'(100 . "AcDbEntity")
(cons 2 (getstring "\n输入块名称:"))
'(100 . "AcDbMInsertBlock")
(cons 10 (getpoint "\n插入点:"))
'(41 . 1.0) ;XScale
'(42 . 1.0) ;YScale
'(43 . 1.0) ;ZScale
'(50 . 0.0) ;Rotate
'(70 . 1) ;Column count (optional; default = 1)
'(71 . 1) ;Row count (optional; default = 1)
'(44 . 0.0) ;Column spacing (optional; default = 0)
'(45 . 0.0) ;Row spacing (optional; default = 0)
) ;_ 结束list
) 本帖最后由 pizg 于 2013-6-21 09:23 编辑
Gu_xl 发表于 2013-6-19 19:41 static/image/common/back.gif
感謝版主的回覆.
我想做一個匿名的Minsert, 代碼如下:
<span style="line-height: 1.5;">;;建立匿名圖塊</span>
(EntMake '((0 . "BLOCK")(2 . "*U")(100 . "AcDbBlockReference")(70 . 3)(10 0 0 0)))
(EntMake (list (cons 0 "LINE") (cons 100 "AcDbEntity") (cons 10 '(0 0 0)) (cons 11 '(10 10 0))))
(setq blkn (EntMake '((0 . "ENDBLK"))))
;;多重插入
(entmake
(list (cons 0 "INSERT")
(cons 100 "AcDbMInsertBlock")
(cons 70 2)
(cons 71 2)
(cons 2 blkn)
(cons 10 0 0 0)
)
)
以上代碼是可行的.
但如果那條'(0 0 0) '(10 10 0)的線是既存的物件,
請問如何改寫下列代碼
(setq ss (ssget)) ;;此處選到物件
;;建立匿名圖塊
(EntMake '((0 . "BLOCK")(2 . "*U")(100 . "AcDbBlockReference")(70 . 3)(10 0 0 0)))
;;將 ss 置入此處
(setq blkn (EntMake '((0 . "ENDBLK"))))
;;多重插入
(entmake
(list (cons 0 "INSERT")
(cons 100 "AcDbMInsertBlock")
(cons 70 2)
(cons 71 2)
(cons 2 blkn)
(cons 10 0 0 0)
)
)
页:
[1]