求一个简单的小程序
就是判断直线或者多段线长度数值后面的数字是0或者5,比如直线长度为1299那个就把这个直线变个红色,1295的长度的话就变个蓝色。1300的话就不变色。尾数:0不动,5变蓝色,其他数值变红色
谢谢啦!
本帖最后由 vectra 于 2017-12-8 20:47 编辑
(defun c:tt (/ en len n ss)(setq ss (ssget '((0 . "*LINE"))))
(repeat (setq n (sslength ss))
(setq n (1- n)
en(vlax-ename->vla-object (ssname ss n))
len (vla-get-length en)
)
(cond ((= 0 (rem (fix len) 10)) t)
((= 0 (rem (fix len) 5)) (vla-put-color en 5))
(t (vla-put-color en 1))
)
)
(princ)
) (defun c:gs ( / ss i e color x str wsz ob)
(vl-load-com)
(if
(setq ss (ssget'((0 . "*POLYLINE,line"))))
(progn
(repeat (setq i (sslength ss) )
(setq e (ssname ss (setq i (1- i))))
(setq ob (vlax-ename->vla-object e))
(setq color (vla-get-Color ob))
(setq x (vlax-curve-GetEndParam ob))
(setq str (rtos (vlax-curve-GetDistAtParam ob x) 2 0))
(setq wsz (substr str (strlen str) (strlen str)) )
(cond((= "5" wsz)(vla-put-color ob 5) )
((= "0" wsz)(vla-put-color ob color) )
(t (vla-put-color ob 1) )
);cond
)
);progn
);IF
(princ)
) vectra 发表于 2017-12-8 17:47
对的!太厉害了!谢谢!
页:
[1]