zhynt
发表于 2011-6-21 15:01:50
(defun c:adf (/ sel el e n ju pt0 r angs
angepts pte ang larclarc_s larc_ju
po_en m
)
(setvar "CMDECHO" 0)
(setq sel (car (entsel "\n请选择圆弧:<Exit> ")))
(if (/= sel nil)
(progn
(setq el (entget sel))
(setq e (assoc 0 el))
(if (= "ARC" (cdr e))
(progn
(setq n (getint "\n等分数:"))
(setq ju (getreal "\n等分间距:"))
(setq pt0 (cdr (assoc 10 el)))
(setq r (cdr (assoc 40 el)))
(setq angs (cdr (assoc 50 el)))
(setq ange (cdr (assoc 51 el)))
(setq pts (polar pt0 angs r)
pte (polar pt0 ange r)
)
(setq ang (- ange angs))
(if (< ang 0)
(setq ang (- (* 2 pi) (abs ang)))
)
(setq larc (* r ang))
(setq larc_s (/ (- larc (* ju (- n 1))) n))
(setq ang_s (* (/ (/ larc_s r) pi) 180.00))
(setq ang_ju (* (/ (/ ju r) pi) 180.00))
(command "point" pts)
(command "ROTATE" "L" "" pt0 ang_s)
(command "copy" "l" "" "@" "@")
(setq m 0)
(setq n1 (- n 2))
(while (/= n1 m)
(command "rotate" "l" "" pt0 (+ ang_s ang_ju))
(command "copy" "l" "" "@" "@")
(setq n1 (- n1 1))
)
(command "point" pts)
(command "ROTATE" "L" "" pt0 (+ ang_s ang_ju))
(command "copy" "l" "" "@" "@")
(setq m 0)
(setq n1 (- n 2))
(while (/= n1 m)
(command "rotate" "l" "" pt0 (+ ang_s ang_ju))
(command "copy" "l" "" "@" "@")
(setq n1 (- n1 1))
)
)
)
)
)
)
daidong013
发表于 2011-6-21 17:47:55
回复 userzhl 的帖子
是个好工具,发上源码分享一下!~~
死神去了
发表于 2011-6-21 18:14:11
学习了,呵呵,不过高手都是发图片,木有程序啊
raimo
发表于 2011-6-21 22:53:20
死神去了 发表于 2011-6-21 18:14 static/image/common/back.gif
学习了,呵呵,不过高手都是发图片,木有程序啊
呵呵,院长是这样的.图片演示专业勾人
xyp1964
发表于 2011-6-21 23:04:05
下一版工具箱会添加此功能
my_mjtd
发表于 2011-6-22 10:26:56
CAD不是有命令“divide” 吗?
等分有那么麻烦吗?
当然,做个小程序出来当然更方便了
429014673
发表于 2011-6-22 19:40:09
zhynt 发表于 2011-6-21 15:01 static/image/common/back.gif
不知zhynt 可有时间在我改下程序,当时我以为用“点”来作为每个分格可用批量打断命令可以打断的,今日一试,打断不了,最好可以改为在圆心那一侧有一条直线(长度:0.1倍半径值,直线在03分格层)垂直于该圆弧,那些点就不要了,麻烦下了。
在工作中还经常遇到这个的情况,别人测量了很多弧长,回来要把每一个数值1:1画在图纸上,如果没有程序这样的工作量可想而知,测量的每一段弧长不一样,但小格弧长还是15(默认为15,当然还有其它的长度),可不可以写一个只要输入每一个大格的尺寸(小格还是比大格少一格),弧长的分格开始端是该弧长端点的靠近端(即是是可以点选是从哪个端点开始分格),都是希望可以有那些垂直的分格直线(直线在03分格层)。
多谢你前面帮忙写的那个程序,祝你工作顺利。分值不多,小小心意。
raimo
发表于 2011-6-22 21:23:34
回复 my_mjtd 的帖子
老兄,等分的方式不同...divided只是点..
zhynt
发表于 2011-6-22 21:54:59
我想知道是干什么用的,别人测量的弧长是用什么方式和格式记录的。光知道弧长可画不出圆弧,还要知道半径或弧度。
1078815748
发表于 2011-6-23 00:33:50