(defun c:tt(/ code e1 e2 ent1 ent2 loop mag msg n1 n2 p11 p12 p21 p22 pt s1 s2 ss ss1 ss2)
...
谢谢解答,主要是想学习entsel这个选择如何处理,ssget本身就有选择空的不会退出要求继续选,所以一个while就解决了,entsel如果点的是空的就返回nil退出了 被承包的东子 发表于 2024-11-1 11:39
(defun c:tt(/ code e1 e2 ent1 ent2 loop mag msg n1 n2 p11 p12 p21 p22 pt s1 s2 ss ss1 ss2)
...
不过结合你这里面的代码,貌似能看懂一点ssyfeng大佬那段代码了,非常感谢 wzg356 发表于 2024-11-1 11:02
手机想象敲的(while(/= ""(progn(initget " ")(entsel ))))
这个怎么用呢,按空格会跳出循环,但是entsel不管选中选不中都一起循环让选 本帖最后由 kozmosovia 于 2024-11-1 17:01 编辑
需要比较tricky的处理
(DEFUN _PICK (MSG / RR RUN)
(SETQ RUN T)
(WHILE RUN
(SETQ RR (INITGET " ")
RR (ENTSEL MSG)
)
(COND ((= RR "")
(SETQ RUN NIL
RRNIL
)
)
((= (TYPE RR) 'LIST)
(SETQ RUN NIL
RR(CAR RR)
)
)
)
)
RR
)
(AND (SETQ E1 (_PICK "\n选取第一条线:"))
(SETQ E2 (_PICK "\n选取第二条线:"))
)
本帖最后由 被承包的东子 于 2024-11-1 17:12 编辑
(defun c:ttt (/ e1 e2)
(while(/= ""(if (and (NULL(initget " ")) (/= ""(setq E1 (entsel "选择第一根直线"))) (NULL(initget " ")) (/= ""(setq E2 (entsel "选择第二根直线"))))
(zhs E1 E2)
""
)))
(PRINC)
)
(defun zhs(e1 e2 / ent1 ent2 p11 p12 p21 p22 pt s1 s2 ss)
(if (and e1 e2)
(progn
;(setq loop nil)
(setq ent1 (entget (CAR e1)))
(setq p11 (cdr (assoc 10 ent1)))
(setq p12 (cdr (assoc 11 ent1)))
(setq ent2 (entget (CAR e2)))
(setq p21 (cdr (assoc 10 ent2)))
(setq p22 (cdr (assoc 11 ent2)))
(setq pt (inters p11 p12 p21 p22 nil))
(if (= pt nil)
(alert "\n所选的两条线为平行线,重选或退出")
(progn
(if (< (distance pt p11) (distance pt p12))
(command "LINE" pt p11 "")
(command "LINE" pt p12 "")
)
(setq s1 (entlast))
(if (< (distance pt p21) (distance pt p22))
(command "LINE" pt p21 "")
(command "LINE" pt p22 "")
)
(setq s2 (entlast))
(setq ss (ssadd))
(ssadd s1 ss)
(ssadd s2 ss)
(command "_.scale" ss "" pt 0.35)
)
)
;(setq e1 nil e2 nil MSG T)
)
)
) zolly 发表于 2024-11-1 16:23
这个怎么用呢,按空格会跳出循环,但是entsel不管选中选不中都一起循环让选
(progn……)选中返回表,选不中返回nil,回车/右键/空格——返回“”,自己设定循环条件就行了,用手机打的,没法写多。 wzg356 发表于 2024-11-1 18:38
(progn……)选中返回表,选不中返回nil,回车/右键/空格——返回“”,自己设定循环条件就行了,用手机 ...
好的,谢谢 被承包的东子 发表于 2024-11-1 17:07
(defun c:ttt (/ e1 e2)
(while(/= ""(if (and (NULL(initget " ")) (/= ""(setq E1 (entsel "选择第 ...
有点BUG,调试一下就好了,非常感谢 kozmosovia 发表于 2024-11-1 16:57
需要比较tricky的处理
非常感谢解答
页:
1
[2]