liuhoujun 发表于 2008-4-1 08:53:00

圆,方形画中心线

<p>圆,方形画中心线,但这个命令输入太麻烦,请教各位高人有没有相同功能的程序?不管是圆还是矩形,异形一个命令就搞定!</p>

muwind 发表于 2008-6-29 12:47:00

<p>这是我以前在机械CAD论坛找到的LSP代码,一直在用,加载执行CL就可以绘制中心线了。</p><p>;;*************************;;<br/>;;CL.lsp:&nbsp;&nbsp;&nbsp;&nbsp; <br/>;;Designed by pengliang&nbsp; ;;<br/>;;2005.4.21;;<br/>;;*************************;;</p><p>(defun c:cl ()<br/>&nbsp;&nbsp; (setvar "cmdecho" 0)<br/>&nbsp;&nbsp; (setq os_old (getvar "osmode"))<br/>&nbsp;&nbsp; (setq cl_old (getvar "clayer"))<br/>&nbsp;&nbsp; (setvar "osmode" 0)<br/>&nbsp;&nbsp; (command "ucs" "")<br/>;-----------------------------------------------------------------------------------------<br/>&nbsp;&nbsp; (if (not (tblsearch "layer" "cen"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "_.layer" "_new" "cen" "_color" "1" "cen" "_ltype" "center" "cen" "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "_.layer" "thaw" "cen" "on" "cen" "unlock" "cen" "")<br/>&nbsp;&nbsp; )<br/>;------------------------------------------------------------------------------------------<br/>&nbsp; (setq a1 (entsel "\n请选定要画中心线的圆\\圆弧\\直线:"))<br/>&nbsp; (while (null a1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a1 (entsel "\n请选定要画中心线的圆\\圆弧\\直线:"))<br/>&nbsp; )<br/>&nbsp; (setq a2 (entget (car a1)))<br/>&nbsp; (setq l1 (assoc 0 a2))<br/>&nbsp; (setq l2 (cdr l1))<br/>&nbsp; (while (and (/= l2 "LINE") (/= l2 "ARC") (/= l2 "CIRCLE"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a1 (entsel "\n所选的不是圆\\圆弧\\直线:"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while (null a1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a1 (entsel "\n请选定要画中心线的圆\\圆弧\\直线:"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq pt1 (cadr a1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a2 (entget (car a1)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq l1 (assoc 0 a2))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq l2 (cdr l1))<br/>&nbsp; )<br/>&nbsp; (if (or (= l2 "ARC") (= l2 "CIRCLE"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq b1 (cdr (assoc 10 a2)))&nbsp; ;圆心座标<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq b2 (cdr (assoc 40 a2)))&nbsp; ;圆半径<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "clayer" "cen")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "line" (list (- (car b1) (* b2 1.2)) (cadr b1)) (strcat "@" (rtos (* b2 2.4))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&lt;0") "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "array" "l" "" "p" b1 "2" "90" "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp; (if (or (= l2 "LINE"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a3 (entsel "\n请选定另一直线:"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (while (null a3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a3 (entsel "\n请选定另一直线:"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq a4 (entget (car a3)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end1 (cdr (assoc 10 a2)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end2 (cdr (assoc 11 a2)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end3 (cdr (assoc 10 a4)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end4 (cdr (assoc 11 a4)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq e1 (distance end1 end3))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq e2 (distance end1 end4))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (&lt; e1 e2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end5 (list (/ (+ (car end1) (car end3)) 2.0) (/ (+ (cadr end1) (cadr end3)) 2.0)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end6 (list (/ (+ (car end2) (car end4)) 2.0) (/ (+ (cadr end2) (cadr end4)) 2.0)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end5 (list (/ (+ (car end1) (car end4)) 2.0) (/ (+ (cadr end1) (cadr end4)) 2.0)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end6 (list (/ (+ (car end2) (car end3)) 2.0) (/ (+ (cadr end2) (cadr end3)) 2.0)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end5_1 (polar end5 (angle end6 end5) 10))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq end6_1 (polar end6 (angle end5 end6) 10))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setvar "clayer" "cen")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "line" end5_1 end6_1 "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; (setvar "osmode" os_old)<br/>&nbsp;&nbsp; (setvar "clayer" cl_old)<br/>&nbsp;&nbsp; (princ)<br/>)</p>

liuhoujun 发表于 2020-4-13 16:35:16

muwind 发表于 2008-6-29 12:47
这是我以前在机械CAD论坛找到的LSP代码,一直在用,加载执行CL就可以绘制中心线了。;;******************** ...

多谢哈,好久没有上论坛了,发完我都忘记,感谢

榨菜人生 发表于 2023-11-12 14:46:30

muwind 发表于 2008-6-29 12:47
这是我以前在机械CAD论坛找到的LSP代码,一直在用,加载执行CL就可以绘制中心线了。;;******************** ...

谢谢大佬分享

flfcegu168 发表于 2008-4-8 19:37:00

<p>抢个沙发&nbsp; 顶一下&nbsp; </p>

xufulai 发表于 2008-4-16 14:08:00

<p>是很好用,</p><p></p>

xiangxi888 发表于 2008-4-18 21:43:00

<p>看看啊</p>

etom999 发表于 2008-4-28 10:29:00

下载看看<img alt="" src="Skins/default/topicface/face1.gif"/>

crab3 发表于 2008-5-2 11:48:00

ding

wyvernlan 发表于 2008-5-4 12:15:00

要看看握

董堃 发表于 2008-5-5 20:50:00

借鉴一下PCCAD的中心线

haifeng168 发表于 2008-5-31 20:46:00

<p>谢谢,呵呵</p>

sy100 发表于 2008-6-12 14:03:00

<p>谢谢提供! 下载试用!!</p>
页: [1] 2 3 4 5
查看完整版本: 圆,方形画中心线