找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1204|回复: 7

[必看]:粗糙度标注程序

[复制链接]
发表于 2003-4-12 21:25:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
有关粗糙度标注的程序有许多,几乎所有的机械CAD软件都已包含,XDCAD论坛也曾给予介绍。但他们都有不足之处,现将本程序与众不同之处介绍如下:
1. 有些程序需要输入粗糙度的字体高度,操作麻烦,而有些程序采用固定的字高,虽然操作简便了一点,但遇到0#图并采用较大的字高时,就显得无能为力了。本人的程序中含有获取CAD字高变量的语句,既不要输入字高,也能自动适应图纸的字高需要。当图纸采用5MM字高,那么粗糙度的字高就是5MM,其符号的全高是5×2.8MM(国标规定)。如图纸采用4MM字高,那么粗糙度的字高就是4MM,其符号的全高是4×2.8MM。
2. 有些程序需要输入粗糙度与标注表面的夹角,而有些虽能自动识别与标注表面的法线方向,但它却不能识别标注表面的内外方向。有时我们需要在一个圆柱的外面标注,而它却标到圆柱的内面,为此,在他的程序中加了一个补钉,提示用户:“需要翻转吗?”而本程序根本就没有以上提示,不仅能识别法线方向,而且能识别标注表面的内外方向。当需在圆柱的外表面标注时,就点圆柱的外表面,需在圆柱的内表面标注时,就点圆柱的内表面,绝对一次成功。
3. 当粗糙度数值为12.5时,其数值位数等于4,比常规的位数多一位,本程序能识别并自动左移一位。
4. 对于采用右上角简化标注时,本程序采用国标规定,自动放大1.4倍。
5. 程序中含有非加工面标注,只要输入“0”即可。
*****-----------------------------
(defun c:rou(/ blip cmd osd h ira irt ip p0 p1 p2 p3 p4 p5 e e1 st)
  (setq blip (getvar "blipmode"))
  (setq cmd (getvar "cmdecho"))
  (setq osd (getvar "osmode"))
  (setq oldlw (getvar "celweight"))
  (setq oldsn (getvar "snapmode"))
  (setq h (getvar "dimtxt"))
  (setvar "cmdecho" 0)
  (setvar "blipmode" 0)
  (setvar "osmode" 0)
  (setvar "celweight" 25)
  (setvar "snapmode" 0)
  (initget 1)
  (setq ip (getpoint "\n选择标注点: "))
  (setq p0 (osnap ip "nea"))
  (if p0 (setq ira (angle p0 ip))
         (setq ira (* 0.5 pi) p0 ip)
  )
  (setq p1 (polar p0 (- ira (/ pi 6)) (* 3.2 h)))
  (setq p2 (polar p0 (- ira (/ pi 6)) (* 1.6 h)))
  (setq p3 (polar p0 (+ ira (/ pi 6)) (* 1.6 h)))
  (setq irt (cond ((> 3.142 ira 0) (- ira (* 0.5 pi)))
                  (t (+ ira (* 0.5 pi)))
            )
  )
  (setq irt (/ (* irt 180) pi))
  (setvar "osmode" 0)
  (command "pline" p2 "w" 0"" p3 p0 p1"")
  (initget 6)               
  (setq st(getstring "\n粗糙度数值? (非加工 0)<1.6>:"))
  (if (= st "")(setq st "1.6"))
  (if (or(= st "0")(= st "o")(= st "O"))  ;;非加工标注
    (progn (entdel (entlast))
           (command "pline" p3 p0 p1"")
           (setq e (entlast))
           (setq p4 (polar p0 ira (* 0.92 h)))
           (command "circle" p4 (* 0.46 h))
    )                                      
    (progn (setq e (entlast))             ;;加工面标注
           (setq p5 (polar p0 ira (* 2.1 h)))
           (if (> (strlen st) 3)          ;;字符多于3,p5左移
               (setq p5 (polar p5 (+ ira (* 0.5 pi)) (* 0.3 h)))
           )
           (command "_text" "m" p5 h irt st)
    )
   )
  (cond ((= p0 ip)                        ;;右上角简化标注
         (setq st (getstring "\n放大标注1.4倍(回车)/否(任意键)"))   
         (if (= st "")(command "scale" e (entlast)"" p0 1.4))
        )
  )                        
  (setvar "osmode" osd)
  (setvar "cmdecho" cmd)
  (setvar "blipmode" blip)
  (setvar "celweight" oldlw)
  (setvar "snapmode" oldsn)                  
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-4-13 08:05:36 | 显示全部楼层
为什么不用AutoCAD Mechanical中自带的标注功能呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-14 08:40:43 | 显示全部楼层
也许他还不知道AutoCAD Mechanical为何物。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-4-14 08:51:35 | 显示全部楼层
陈老师,您好!您不止一次的建议我们采用现成的软件,这次又建议采用Autodesk的mechanical。其实谁不希望直接运用现成的软件,并非我们不愿意,而是从未见过Autodesk的mechanical版本,周围的同事也仅听说过,但都从未见过,大家用的是AutoCAD200X,在200X版本中并没有标注粗糙度的命令。至于国内的机械CAD软件,我用过北京的XXX2001、上海的XXX2002,虽然它们都已包含粗糙度标注法,但均有不足之处,不能识别与标注表面的夹角。当需要在一个圆柱的外面标注,而它却标到圆柱的内面。为此,在他的程序中不得不加一个补钉,提示用户确认与标注表面的角度。而且,北京的XXX2001还不能识别由polyline线组成的图形,不管polyline的角度如何,其粗糙度始终就是一个垂直位置。
    而本程序无须确认与标注表面的角度,能自动识别标注表面的内外方向。当需在圆柱的外表面标注时,就点圆柱的外表面,需在圆柱的内表面标注时,就点圆柱的内表面。仅此而言,是比专业软件强一点。
当然,这并不意味着我的程序超过了专业软件的水平,更无取代专业软件的欲望,仅仅是借此平台学习一点lisp程序,提高自己的能力,起到抛砖引玉的作用而已。我的一位朋友曾说过,当今社会计算机技术高速发展,如你始终抱着那么一点可值得炫耀的知识不放,不肯授于他人,那么你将不可能有多大长进,因为你已没有学习的动力。反之,你将它毫无保留的授于别人,让周围的人赶上或超过你,使你有一种紧迫感,逼迫自己不断的进取,这样才不回被社会所淘汰。在此我想引用某作者的话作为结尾:个人开发的CAD的投入产出是很低的,决无商业价值可言,完全没有必要遮遮掩掩,公开出来,让更多的人投入到这个程序的完善中去,对谁都有好处。
最后,我也希望得到各位老师的指点,Autodesk mechanical版本到底何处有?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-14 10:50:45 | 显示全部楼层
早在AutoCAD R14就开始有了AutoCAD Mechanical。
当然,您喜欢自己写,也不能算是什么问题。
我的建议是:这些通用的功能,软件中已经有了,就不必费心。
如果写程序,就写那些软件很难带有的、而专业设计中又确实很麻烦的功能。例如齿轮设计。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-14 11:40:20 | 显示全部楼层
啊,我的办法很土,每次都作这样个小图,到处拷贝,想标那里就那里,尺寸线上也可以,也很好用啊。:1
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-15 22:19:45 | 显示全部楼层
这个AutoCAD Mechanical怎么用我也不知道阿
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-16 02:16:25 | 显示全部楼层
哈哈我也是用小图片到处标的~~~~~~~~~~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-19 06:36 , Processed in 0.189891 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表