ljpnb 发表于 2005-2-7 06:30:00

[分享]动态圆弧拖拉并显示圆弧半径

我参考晓东CAD里的一个动态直线拖拉显直线长度程序,改成了动态圆弧拖拉并显示圆弧半径,这一功能不一定经常会用到,但也值得参考。


(defun c:ad ()<BR>       (setvar "CMDECHO" 0)<BR>       (setvar "osmode" 0)<BR>       (setq pt1 (getpoint "\n请输入圆弧起点: "))<BR>       (setq pt3 (getpoint "\n请输入圆弧第二点: "))<BR>       (setq pt2 (cadr (grread T 4 0)))<BR>       (setq pt2 (mapcar '+ pt2 '(0.0001 -0.0001)))<BR>       (command "Arc" pt1 pt3 pt2)


       (setq ent (entlast))<BR>       (setq arc0 (entget ent))<BR>       (setq r0 (rtos (cdr (assoc 40 arc0))))<BR>       ;;求圆弧新的半径值并转化为字符型<BR>       (setq ts1 "R=")<BR>       (setq ts2 (strcat ts1 r0 "mm"))<BR>       (command "text" pt2 "2.5" "" ts2)<BR>       (setq tx1 (entlast))<BR>       (vla-put-color (vlax-ename-&gt;vla-object tx1) 1)<BR>       (setq tx2 (entget tx1))<BR>       (setq pick nil)<BR>       (while (not pick)<BR>                       (setq p (grread t 4 0))<BR>                       (princ)<BR>                       (setq ip (car p))<BR>                       (setq pt (cadr p))<BR>                       (if (= ip 5)<BR>;;;;;;;;;;;;;;确定为坐标移动<BR>                                       (progn<BR>        (setq p1 (trans pt 1 0))<BR>        ;;坐标系转换(以防止更新数据表时出错)<BR>        (entdel ent)<BR>        ;;删除旧的圆弧<BR>        (command "arc" pt1 pt3 p1)<BR>        (setq ent (entlast))<BR>        (setq arc0 (entget ent))<BR>        (setq r0 (rtos (cdr (assoc 40 arc0))))<BR>        ;;求圆弧新的半径值并转化为字符型<BR>        (setq ts2 (strcat ts1 r0 "mm"))<BR>        (setq tx2 (subst (cons 10 p1) (assoc 10 tx2) tx2))<BR>        (setq tx2 (subst (cons 1 ts2) (assoc 1 tx2) tx2))<BR>        (entmod tx2)<BR>        ;;更新文字的位置及内容


                                       )<BR>                                       ;;progn<BR>                       )<BR>                       ;;if<BR>                       (setq pick (= 3 ip))<BR>;;;确定为点取坐标<BR>       )<BR>       ;;while<BR>       (setvar "CMDECHO" 1)<BR>       (setvar "osmode" 37);;根据自身的需要可设置成相应的值<BR>       ;;(entdel ent)<BR>       ;;(entdel tx1)<BR>       ;;(print ts2)<BR>       (princ)<BR>)<BR>

BDYCAD 发表于 2005-2-7 08:27:00

蛮有创意的. 呵呵. 送朵花花

清风明月名字 发表于 2012-5-29 16:32:50

谢谢楼主,下载试用了

wzm56209487 发表于 2013-8-12 15:52:15

谢谢楼主,下载试用看看

技术工作室 发表于 2022-9-7 21:06:04

又学了一招,顶一个

mokson 发表于 2022-9-8 08:55:20

这是我想要的功能。
页: [1]
查看完整版本: [分享]动态圆弧拖拉并显示圆弧半径