峰峰兒 发表于 2014-2-14 11:49:34

Andyhon 发表于 2014-2-14 15:14:15

批量....

那么程序得取得图块名...


到圆的中心点...
圆的滤取方式又如何!?

内定or动态 取得!?


峰峰兒 发表于 2014-2-14 18:04:26

Andyhon 发表于 2014-2-14 20:46:36

本帖最后由 Andyhon 于 2014-2-15 10:24 编辑


(defun c:test ()
   (setq Dat
   '((0 . "INSERT")
       (100 . "AcDbEntity") (67 . 0) (410 . "Model")
       (8 . "0") (100 . "AcDbBlockReference")
       (2 . "Dummy")
       (10 0.0 0.0 0.0)
       (41 . 1.0) (42 . 1.0) (43 . 1.0)
       (50 . 0.0) (70 . 0) (71 . 0)
       (44 . 0.0) (45 . 0.0)
       (210 0.0 0.0 1.0)
      )
   )
   
   (setq blk
   (subst
       (assoc 2(entget (car (entsel "\nSelect a Block選擇一個圖塊:" ))))
       (assoc 2 Dat)
       Dat
   )
   )
   
   (setq ss (ssget '((0 . "CIRCLE")))
         nn (sslength ss)
         nn (1- nn)
   )
   (while (setq ee (ssname ss nn))
   (setq Po (assoc 10 (entget ee))
         nn (1- nn)
   )
   (entmake (subst Po '(10 0.0 0.0 0.0) blk))
   )
)

峰峰兒 发表于 2014-2-15 07:48:59

Andyhon 发表于 2014-2-15 10:22:05

基於 塊中心為基點 在插入點 程序已修訂

峰峰兒 发表于 2014-2-15 12:45:59

峰峰兒 发表于 2014-2-15 12:47:07

Andyhon 发表于 2014-2-15 13:52:19

選了圖A ==>"圓形L" ===>
(
(-1 . <Entity name: 7ef6d670>)
(0 . "INSERT")
(330 . <Entity name: 7ef6bcf8>)
(5 . "27E")
(100 . "AcDbEntity")
(67 . 0)
(410 . "Model")
(8 . "0")
(100 . "AcDbBlockReference")

(2 . "圓形L")    ; 圖塊名<==此處為 圓形L

(10 5232.9 6318.07 0.0)    ; 位於圖A所在位置的 insert point ; 改了位置就變了

(41 . 1.0)
(42 . 1.0)
(43 . 1.0)
(50 . 0.0)
(70 . 0)
(71 . 0)
(44 . 0.0)
(45 . 0.0)
(210 0.0 0.0 1.0)
)
页: [1]
查看完整版本: 圖塊