那么程序得取得图块名...
到圆的中心点...
圆的滤取方式又如何!?
内定or动态 取得!?
本帖最后由 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))
)
)
基於 塊中心為基點 在插入點 程序已修訂
選了圖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]