pizg 发表于 2013-6-19 18:30:30

請問如何用entmake建立一個minsert物件

AutoCAD 的 minsert 指令可以插入多重圖塊,
那麼請問如何用AutoLISP 的 entmake 來建立一個匿名的 minsert 物件?

vormittag 发表于 2013-6-19 18:35:08

本质还是"insert", 部分组码值不一样而已。看dxf帮助。

pizg 发表于 2013-6-19 19:05:05

vormittag 发表于 2013-6-19 18:35 static/image/common/back.gif
本质还是"insert", 部分组码值不一样而已。看dxf帮助。

小弟頭腦不好,
可否請大大舉個實例?

Gu_xl 发表于 2013-6-19 19:41:25

本帖最后由 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:22:48

本帖最后由 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]
查看完整版本: 請問如何用entmake建立一個minsert物件