有一组数据批量复制平行线
www.dimcax.com
有一组数据批量复制平行线
我想要这样的效果。线段ab,以a为基点,导入n个数据,向下复制n条平行线。
图片:
用下面的程序可拷贝任意多的平行线.
(defun gbg3 ( / b1 n i1 k k1 bb1 d c1 c2 )
(setq c3 0 a1 nil a2 nil a3 nil a4 nil a5 nil a6 nil a7 nil a8 nil a9 nil a10 nil b1 nil c1 nil b1 (substr a (strlen a) 1))
(if (= b1 ",")(setq x (+ (strlen a) 1))(setq a (strcat a ",") x (+ (strlen a) 1)))
(setq i1 1 k "a" i 1 k1 1)
(repeat x
(setq bb1 (substr a i1 1))
(if (= bb1 ",")
(repeat 1
(setq d (read (strcat k (itoa i))))
(setq c1 (substr a k1 (- i1 k1)) k1 (+ i1 1))
(if (and (= c1 "")(= i 1))(setq c1 "0"))
(setq c2 'd c2 c1)
(set d c1)
(setq i (+ i 1) i1 (+ i1 1))
)
(setq i1 (+ i1 1))
)
)
(setq lii (- i 1))
(setq k nil)
)
(defun c:cpp ()
(setq os (getvar "osmode"))
(setvar "osmode" 39)
(prompt "选择要拷贝的线段:")
(setq en (car (entsel)))
(setq en1 (entget en) p1 (cdr (assoc 10 en1)) p2 (cdr (assoc 11 en1)) an (angle p1 p2) an1 (+ an (* pi 0.5)))
(setvar "osmode" 0)
(prompt "输入线段间的距离后面的线相对前面的线的距离,数字间用逗号隔")
(setq a (getstring))
(gbg3)
(command "copy" en """m"p1)
(setq ii 1 b 0)
(repeat lii
(setq d (eval(read (strcat "a" (itoa ii)))) dd (read d))
(setq b (+ b dd) p3 (polar p1 an1 b))
(command p3)
(setq ii (+ ii 1))
)
(command "")
)
gbg
谢谢啊。您是一个高手啊。就是我的数据怎么导入到cad中。先运行宏,再怎么导入数据呢。
是用什么编的呢,导到vb还是lisp,vba还是什么地方啊,麻烦您讲一下。
小问题,我知道
菜单" (工具)___(加载引用程序)___(启动组)
那是用lisp编的