明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2228|回复: 4

[提问] 請問如何用entmake建立一個minsert物件

[复制链接]
发表于 2013-6-19 18:30 | 显示全部楼层 |阅读模式
AutoCAD 的 minsert 指令可以插入多重圖塊,
那麼請問如何用AutoLISP 的 entmake 來建立一個匿名的 minsert 物件?
发表于 2013-6-19 18:35 | 显示全部楼层
本质还是"insert", 部分组码值不一样而已。看dxf帮助。
 楼主| 发表于 2013-6-19 19:05 | 显示全部楼层
vormittag 发表于 2013-6-19 18:35
本质还是"insert", 部分组码值不一样而已。看dxf帮助。

小弟頭腦不好,
可否請大大舉個實例?
发表于 2013-6-19 19:41 | 显示全部楼层
本帖最后由 Gu_xl 于 2013-6-19 19:42 编辑
pizg 发表于 2013-6-19 19:05
小弟頭腦不好,
可否請大大舉個實例?

  1. (entmake (list
  2.              '(0 . "INSERT")
  3.              '(100 . "AcDbEntity")
  4.              (cons 2 (getstring "\n输入块名称:"))
  5.              '(100 . "AcDbMInsertBlock")
  6.              (cons 10 (getpoint "\n插入点:"))
  7.              '(41 . 1.0)             ;XScale
  8.              '(42 . 1.0)              ;YScale
  9.              '(43 . 1.0)              ;ZScale
  10.              '(50 . 0.0)              ;Rotate
  11.              '(70 . 1)                 ;Column count (optional; default = 1)
  12.              '(71 . 1)                 ;Row count (optional; default = 1)
  13.              '(44 . 0.0)               ;Column spacing (optional; default = 0)
  14.              '(45 . 0.0)               ;Row spacing (optional; default = 0)
  15.              ) ;_ 结束list
  16.            )
 楼主| 发表于 2013-6-21 09:22 | 显示全部楼层
本帖最后由 pizg 于 2013-6-21 09:23 编辑
Gu_xl 发表于 2013-6-19 19:41

感謝版主的回覆.

我想做一個匿名的Minsert, 代碼如下:

  1. <span style="line-height: 1.5;">;;建立匿名圖塊</span>
  2.       (EntMake '((0 . "BLOCK")(2 . "*U")(100 . "AcDbBlockReference")(70 . 3)(10 0 0 0)))
  3.       (EntMake (list (cons 0 "LINE") (cons 100 "AcDbEntity") (cons 10 '(0 0 0)) (cons 11 '(10 10 0))))
  4.       (setq blkn (EntMake '((0 . "ENDBLK"))))
  5.       ;;多重插入
  6.       (entmake
  7.         (list        (cons 0 "INSERT")
  8.                 (cons 100 "AcDbMInsertBlock")
  9.                 (cons 70 2)
  10.                 (cons 71 2)
  11.                 (cons 2 blkn)
  12.                 (cons 10 0 0 0)
  13.         )
  14.       )      
以上代碼是可行的.
但如果那條'(0 0 0) '(10 10 0)的線是既存的物件,
請問如何改寫下列代碼

  1.       (setq ss (ssget)) ;;此處選到物件
  2.       ;;建立匿名圖塊
  3.       (EntMake '((0 . "BLOCK")(2 . "*U")(100 . "AcDbBlockReference")(70 . 3)(10 0 0 0)))
  4.       ;;將 ss 置入此處
  5.       (setq blkn (EntMake '((0 . "ENDBLK"))))
  6.       ;;多重插入
  7.       (entmake
  8.         (list        (cons 0 "INSERT")
  9.                 (cons 100 "AcDbMInsertBlock")
  10.                 (cons 70 2)
  11.                 (cons 71 2)
  12.                 (cons 2 blkn)
  13.                 (cons 10 0 0 0)
  14.         )
  15.       )      
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-11 13:18 , Processed in 0.181161 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表