找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 649|回复: 2

[LISP函数]:这样的公差标注lisp怎么编啊

[复制链接]
发表于 2004-6-8 15:50:42 | 显示全部楼层 |阅读模式

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

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

×
做模具的,常常不同的零件的公差配合很是烦恼,请各位看看有何高招

1.比如就m5的公差配合的导柱固定端,不同的直径公差不一样
   
而且模具的零件那么多,所以用标注样式是非常的烦的,而且不同的尺寸有不同

的样式,那显然给文件负担
2.能根据不同的值,公差随之改变,

3.公差的位置也是跟着文字的角度走
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-6-14 10:34:55 | 显示全部楼层

你可以参考一下我的公差标注程式

;;;;;;;;;;;;;;添加公差;;;44444444444444444444444444444444444444444
(VL-LOAD-COM)
(defun c:cs (/ AcadObject AcadDocument mSpace)
  (PrinC "\n这是铝型材高精度标注添加公差的程式...我的E-MAIL:jiangalum@163.com ,有空联系我吧!")

  (setq        AcadObject   (vlax-get-acad-object)
        AcadDocument (vla-get-ActiveDocument Acadobject)
        mSpace             (vla-get-ModelSpace Acaddocument)
  )                                        ;装载VLA程式函数

  (setq s (car (entsel)))                ;碰选标注的图元
  (setq en1 (entget s))
  (setq LWP (cdr (assoc 42 en1)))        ;取出标注的尺寸

;;;;;;;;;
  (if (<= 1 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.1) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.1) ;添加上公差
    )
  )
;;;;;;;;;;;;;
  (if (< 2 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.12) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.12) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;
  (if (< 3 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.16) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.16) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;
  (if (< 4 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.18) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.18) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;
  (if (< 6 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.2) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.2) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;
  (if (< 12 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.23) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.23) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;
  (if (< 19 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.25) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.25) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;
  (if (< 25 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.3) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.3) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;
  (if (< 38 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.36) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.36) ;添加上公差
    )
  )
;;;;;;;;;
  (if (< 50 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.61) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.61) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;

  (if (< 100 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 0.86) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 0.86) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;
  (if (< 150 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 1.12) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 1.12) ;添加上公差
    )
  )

;;;;;;;;;;;;;;;;;
  (if (< 200 lwp)
    (progn
      (setq dimobj (vlax-ename->vla-object s)) ;把LISP对象转换成VLA对象
      (vla-put-ToleranceDisplay dimObj acTolSymmetrical) ;显示公差
      (vla-put-ToleranceLowerLimit dimObj 1.37) ;添加下公差
      (vla-put-ToleranceUpperLimit dimObj 1.37) ;添加上公差
    )
  )
;;;;;;;;;;;;;;;

  (princ)                                ;结束
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-17 15:56:11 | 显示全部楼层
(if (>=200 lwp)如何作呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 13:48 , Processed in 0.177700 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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