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


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » 数据库ObjectDBX
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-28, 01:57 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】打断

打断
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
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 11:35 PM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多