s678z 发表于 2013-6-21 10:24:14

查稍微有点斜的线

画图时稍不注意,有的线画斜了。斜一点点,肉眼看不出,结果标注尺寸时出来小数点,因为看不出所以难查,网上下载了查斜线的程序,但它是把所有的斜线都查出来打成红色,能否在这程序基础上,改成查与正交线,即水平和竖直线偏一点点的线,程序加上角度,各人可按需修改需查的角度。

bias.lsp程序见下面
(defun c:bias(/ pd_lst olderr newerr ss_kill ss_first n en en_data pt_st pt_en ang)
(setq pd_lst '(0.0 18000.0 9000.0 27000.0))(setvar "cmdecho" 0)(setq olderr *error* *error* newerr)

(defun newerr(msg)
(if msg
(progn
(princ "\n         函数出错了\n")
;
(princ msg)
))(command "_.undo" "_e")
(setq *error* olderr)
(setvar "cmdecho" 1)
(princ))
(command "_.undo" "_be")
(prompt "\n选择直线:")
(setq ss_kill (ssadd) n 0)(setq ss_first (ssget '((0 . "line"))))
(while (< n (sslength ss_first))
(setq en (ssname ss_first n) en_data (entget en))
(setq pt_st (cdr (assoc 10 en_data)))(setq pt_en (cdr (assoc 11 en_data)))
(setq ang (/ (* 180 100 (angle pt_st pt_en)) pi))
(if (not (member ang pd_lst))(setq ss_kill (ssadd en ss_kill))
)
(setq n (1+ n)))(if ss_kill
(progn
(command "_.chprop" ss_kill "" "c" 1 "")
(princ (strcat "\n------------- 有\t" (itoa (sslength ss_kill)) "条斜线。"))
)
(princ "\n没有斜线!")
)


(newerr nil)
)

fl202 发表于 2013-7-2 18:02:22

而且还可以加个功能,查出来后是否自动纠正为正垂直或者正水平的直线。但这个时候就要判断往哪个端点纠正才是对的?要总结斜线出现的规律了。

自贡黄明儒 发表于 2013-7-2 22:54:10

highflybir有个图元归整,完美解决以上问题

highflybir 发表于 2013-7-3 09:27:44

参考帖子:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=86961&page=10#pid594428

wudi 发表于 2013-7-3 12:58:35

highflybir 发表于 2013-7-3 09:27 static/image/common/back.gif
参考帖子:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=86961&page=10#pid594428

highflybir你好,花了明经币下载你说的一楼的程序怎么下载不下来,提示“抱歉,该附件无法读取”~~~

YJ647372 发表于 2013-7-3 14:32:30

我要学习啊。。。。
页: [1]
查看完整版本: 查稍微有点斜的线