马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun c:Tt(/ sel ar p1 p2 di ist get len n add name ent n1 n2 ce )
- (princ "\n功能 [选择相同线长]")
- (setq sel (entsel "\n点取直线:"))
- (setq ar (entget (car sel)))
- (setq p1 (cdr (assoc 10 ar))
- p2 (cdr (assoc 11 ar))
- )
- (setq di (distance p1 p2))
- (princ (strcat "\n参照直线长度为<" (rtos di 2 2) ">"))
- (setq ist (getdist "\n输入线长误差值 <0.3>:"))
- (if (null ist ) (setq ist 0.3))
- (setq get (ssget (list (assoc 0 ar))))
- (setq len (sslength get)
- n 0)
- (setq add (ssadd))
- (while (< n len)
- (setq name (ssname get n))
- (setq ent (entget name))
- (setq n1 (cdr (assoc 10 ent))
- n2 (cdr (assoc 11 ent))
- )
- (setq ce (distance n1 n2))
- (if (equal di ce ist) (ssadd name add))
- (setq n (1+ n))
- )
- (if add (sssetfirst nil add))
- (princ)
- )
这样写只能选到直线的。
像圆弧,曲线,多线段,没办法用组码10 11来取到它的线长。
有没有一个这样函数,点中它,就返回它的长度
|