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

页: 1 2 [3] 4 5 6 7
查看完整版本: [已解决]请高手帮忙做个简单的等分工具