小弟自学VLISP,身边没有会的人,所以遇到一点小问题就卡壳,太困难了,刚整明白的函数不多,向各位前辈请教。
如上图:几条横线都延伸到一条竖线,我想在这条竖线上捕捉到的所有“端点”上全部插如一个块。
我的思路是:从竖线起点作为P1,捕捉只开启端点,插入一个,然后P1的X坐标和Y坐标-6(搜索范围),组成新点,对这个点用OSNAP,会自动吸附到下一个端点P2,如果P2的Y坐标和P1(上次插入的点)不同,那么在P2插入一个块,然后把P2的Y坐标给P1,然后再P1的X坐标和Y坐标-6,组成新点,对这个点用OSNAP,会再自动吸附到下一个端点P2。。。。。如此循环。
请各位前辈帮忙看下怎么就不行呢?多谢多谢。
(defun c:ii () (setvar "CMDECHO" 0) (setvar "osmode" 1) (setvar "apbox" 1) (setvar "aperture" 20) (setq p1 '(244 342) p1x (car p1) p1y (cadr p1) )
(while (> p1y 91) (setq p2 (osnap (list p1x (- p1y 6)) "endp")
p2y (cadr p2) ) (if (> p1y p2y) (progn (command "-insert" "left-circle2" p2 "" "" "") (setq p1y p2y p1 (list p1x p1y) ) ) ) ) )
|