几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   数据库ObjectDBX (http://www.dimcax.com/hust/forumdisplay.php?f=177)
-   -   【转帖】打断 (http://www.dimcax.com/hust/showthread.php?t=13614)

yang686526 2009-04-28 01:57 PM

【转帖】打断
 
打断
www.dimcax.com
打断
请问打断一个圆要用什么方法最好,打断还是更新列表好?我写了个打断的,主要是选择那边 (command "rotate" enname "" cen sjd)的问题,也就是一开始的时候选择集是一个圆,但打断成两段之后再选择就不能两段都选择到了。不知各位有什么好的方法和经验?
;;;打断圆
(defun c:xxl()
(setvar "osmode" 0)
(setvar "filedia" 1)
(setq len (getreal "\n 请输入桥位的宽度<5>:"))
(if (= len nil) (setq len 5))
(setq en (ssget))
(setq num (sslength en))
(setq n 0)
(repeat num
(setq enname (ssname en n))
(setq enname_x (entget enname))
(setq cen (cdr (assoc 10 enname_x)))
(setq rad (cdr (assoc 40 enname_x)))
(cond ((< rad 10) (setq x 0))
((< rad 30) (setq x 1))
((< rad 60) (setq x 2))
((< rad 90) (setq x 3))
((> rad 90) (setq x (fix (/ rad 30)))))
(setq pt1 (polar cen 0 rad))
(setq jd (/ (* (* pi 2) len) (* pi rad 2)))
(setq pt2 (polar cen jd rad))
(setq sjd (/ 360 x))
(repeat x
(command "break" pt1 pt2)
(command "rotate" enname "" cen sjd)
)
(setq n (+ 1 n))
)
(setvar "cmdecho" 1)
(prinl)
)
勤能补拙

要的效果如下:
勤能补拙

图片:

效果如下:
勤能补拙

不太清楚

顶一下,懂的帮忙看一下,不懂的也过来学学
勤能补拙

本人已自个解决,方法就是设pt1和pt2,然后循环角度单个打断(不是旋转圆圈)
勤能补拙

没明白

谁明白,出来讲一下啊,我也遇到了这个问题,还有怎么编程啊

图片:

我把你的程序改了一下:
(defun c:xxl(/ len en num n enname enname_x cen rad a b c jd x sjd i pt1 pt2 pt3 pt4 )
(setvar "osmode" 0)
(setvar "filedia" 1)
(setq len (getreal "\n 请输入桥位的宽度<5>:"))
(if (= len nil) (setq len 5))
(setq en (ssget))
(setq num (sslength en))
(setq n 0)
(repeat num
(setq enname (ssname en n))
(setq enname_x (entget enname))
(setq cen (cdr (assoc 10 enname_x)))
(setq rad (cdr (assoc 40 enname_x)))
(setq a (* rad rad) b (/ len 2.0) c (sqrt (- a b)) jd (atan (/ b c)))
(if (< rad 30)(setq x 1)(if (< rad 60)(setq x 2)(if (< rad 90)(setq x 3)(if (> rad 90)(setq x (fix (/ rad 30)))))))
(setq sjd (/ 360 x))
(setq pt1 (polar cen (- 0 jd) rad) pt2 (polar cen (+ 0 jd) rad) i 1)
(command "break" pt1 pt2)
(repeat (- x 1)
(setq pt3 (polar cen (- (* (/ pi 180) (* sjd i)) jd) rad) pt4 (polar cen (+ (* (/ pi 180) (* sjd i)) jd) rad) )
(command "zoom" "c" pt3 (* len 4) "break" pt3 pt4 "zoom" "p")
(setq i (+ 1 i))
(prompt (rtos i 2 0))
)
(setq n (+ n 1))
)
)
gbg


所有的时间均为北京时间。 现在的时间是 02:17 AM.