圆,方形画中心线
<p>圆,方形画中心线,但这个命令输入太麻烦,请教各位高人有没有相同功能的程序?不管是圆还是矩形,异形一个命令就搞定!</p> <p>这是我以前在机械CAD论坛找到的LSP代码,一直在用,加载执行CL就可以绘制中心线了。</p><p>;;*************************;;<br/>;;CL.lsp: <br/>;;Designed by pengliang ;;<br/>;;2005.4.21;;<br/>;;*************************;;</p><p>(defun c:cl ()<br/> (setvar "cmdecho" 0)<br/> (setq os_old (getvar "osmode"))<br/> (setq cl_old (getvar "clayer"))<br/> (setvar "osmode" 0)<br/> (command "ucs" "")<br/>;-----------------------------------------------------------------------------------------<br/> (if (not (tblsearch "layer" "cen"))<br/> (command "_.layer" "_new" "cen" "_color" "1" "cen" "_ltype" "center" "cen" "")<br/> (command "_.layer" "thaw" "cen" "on" "cen" "unlock" "cen" "")<br/> )<br/>;------------------------------------------------------------------------------------------<br/> (setq a1 (entsel "\n请选定要画中心线的圆\\圆弧\\直线:"))<br/> (while (null a1)<br/> (setq a1 (entsel "\n请选定要画中心线的圆\\圆弧\\直线:"))<br/> )<br/> (setq a2 (entget (car a1)))<br/> (setq l1 (assoc 0 a2))<br/> (setq l2 (cdr l1))<br/> (while (and (/= l2 "LINE") (/= l2 "ARC") (/= l2 "CIRCLE"))<br/> (setq a1 (entsel "\n所选的不是圆\\圆弧\\直线:"))<br/> (while (null a1)<br/> (setq a1 (entsel "\n请选定要画中心线的圆\\圆弧\\直线:"))<br/> )<br/> (setq pt1 (cadr a1))<br/> (setq a2 (entget (car a1)))<br/> (setq l1 (assoc 0 a2))<br/> (setq l2 (cdr l1))<br/> )<br/> (if (or (= l2 "ARC") (= l2 "CIRCLE"))<br/> (progn<br/> (setq b1 (cdr (assoc 10 a2))) ;圆心座标<br/> (setq b2 (cdr (assoc 40 a2))) ;圆半径<br/> (setvar "clayer" "cen")<br/> (command "line" (list (- (car b1) (* b2 1.2)) (cadr b1)) (strcat "@" (rtos (* b2 2.4))<br/> "<0") "")<br/> (command "array" "l" "" "p" b1 "2" "90" "")<br/> )<br/> )<br/> (if (or (= l2 "LINE"))<br/> (progn<br/> (setq a3 (entsel "\n请选定另一直线:"))<br/> (while (null a3)<br/> (setq a3 (entsel "\n请选定另一直线:"))<br/> )<br/> (setq a4 (entget (car a3)))<br/> (setq end1 (cdr (assoc 10 a2)))<br/> (setq end2 (cdr (assoc 11 a2)))<br/> (setq end3 (cdr (assoc 10 a4)))<br/> (setq end4 (cdr (assoc 11 a4)))<br/> (setq e1 (distance end1 end3))<br/> (setq e2 (distance end1 end4))<br/> (if (< e1 e2)<br/> (progn<br/> (setq end5 (list (/ (+ (car end1) (car end3)) 2.0) (/ (+ (cadr end1) (cadr end3)) 2.0)))<br/> (setq end6 (list (/ (+ (car end2) (car end4)) 2.0) (/ (+ (cadr end2) (cadr end4)) 2.0)))<br/> )<br/> (progn<br/> (setq end5 (list (/ (+ (car end1) (car end4)) 2.0) (/ (+ (cadr end1) (cadr end4)) 2.0)))<br/> (setq end6 (list (/ (+ (car end2) (car end3)) 2.0) (/ (+ (cadr end2) (cadr end3)) 2.0)))<br/> )<br/> )<br/> (setq end5_1 (polar end5 (angle end6 end5) 10))<br/> (setq end6_1 (polar end6 (angle end5 end6) 10))<br/> (setvar "clayer" "cen")<br/> (command "line" end5_1 end6_1 "")<br/> )<br/> )<br/> (setvar "osmode" os_old)<br/> (setvar "clayer" cl_old)<br/> (princ)<br/>)</p> muwind 发表于 2008-6-29 12:47这是我以前在机械CAD论坛找到的LSP代码,一直在用,加载执行CL就可以绘制中心线了。;;******************** ...
多谢哈,好久没有上论坛了,发完我都忘记,感谢 muwind 发表于 2008-6-29 12:47
这是我以前在机械CAD论坛找到的LSP代码,一直在用,加载执行CL就可以绘制中心线了。;;******************** ...
谢谢大佬分享 <p>抢个沙发 顶一下 </p> <p>是很好用,</p><p></p> <p>看看啊</p> 下载看看<img alt="" src="Skins/default/topicface/face1.gif"/> ding 要看看握 借鉴一下PCCAD的中心线 <p>谢谢,呵呵</p> <p>谢谢提供! 下载试用!!</p>