357785513 发表于 2008-10-31 22:25:00

给块加上一个圆

大家好.我想要一个程序.首先执行某个命令.再选择多个任意块.然后回车.这些块就加上了一个圆圈.圆圈不到块里面,圆圈大小可以手输入.层可以在0层或者,当前层,请问那位高手能做到吗.好烦.公司最近老让我给这些块画一个个圆圈

caoyin 发表于 2008-11-1 09:42:00

(defun c:tt (/ s d i)<br/>&nbsp; (if (and (setq s (ssget '((0 . "insert"))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq d (getdist "\n指定圆直径: "))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (repeat (setq i (sslength s))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p (cdr (assoc 10 (entget (ssname s (setq i (1- i)))))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmake (list '(0 . "circle") (cons 10 p) (cons 40 (/ d 2.))))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (princ)<br/>)

357785513 发表于 2008-11-1 23:37:00

谢谢谢谢.实在感谢.要是那么多,我加一个月也加不完.

357785513 发表于 2008-11-1 23:40:00

对了.能不能增强它的功能.比如说.我先用过滤器选择这些块.再用这个程序.能加上圆不

jxlsp 发表于 2008-11-2 10:57:00

(defun c:tt (/ s d i)(COMMAND"PAN"'(0 0)'(0 0))<br/>&nbsp; (if (and (setq s (ssget "P"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq d (getdist "\n指定圆直径: "))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (repeat (setq i (sslength s))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p (cdr (assoc 10 (entget (ssname s (setq i (1- i)))))))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (entmake (list '(0 . "circle") (cons 10 p) (cons 40 (/ d 2.))))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (princ)<br/>)

wutao8282 发表于 2022-8-20 10:38:01

jxlsp 发表于 2008-11-2 10:57
(defun c:tt (/ s d i)(COMMAND"PAN"'(0 0)'(0 0))&nbsp; (if (and (setq s (ssget "P"))&nbsp;&nbsp;&nbsp ...

老师您好!如果直径改成插入指定半径的圆怎么改呢?请指教
页: [1]
查看完整版本: 给块加上一个圆