十五年专注于
液压缸筒生产

全国咨询热线:
400-086-9833

   热门关键词修理 加工 活塞杆 缸筒 不锈钢

无标题文档

天圆液压产品中心

当前位置:主页 > 行业资讯 >

在AutoCAD中实液压油缸现尺寸公差自动标注的切磋

时间:2016-06-11 09:00来源:天圆网站 作者:admin 点击:
用AutoCAD举办机器计划时,标注尺寸公差是计划职员常常碰着的一个题目。用Text呼吁手工标注,不只速率慢,并且轻易堕落;通过对话框设定参数举办标注,每个差异的公差值都要设定一次。这些要领在标注时都必要翻阅手册,给计划者带来很大的未便。曾有一些标

  (defun read (record fname)
  (setq name (nth i b)
  在标注公差进程中,对付必然的根基尺寸而言,可否按照根基尺寸巨细、公差品级和根基毛病代号敏捷查询出上、下毛病值,是实现公差自动标注的要害。为此,可将国标中常用的极限毛病以Data·txt为文件名生涯在数据文件中。数据文件名目如下:
    用AutoCAD举办机器计划时,标注尺寸公差是计划职员常常碰着的一个题目。用Text呼吁手工标注,不只速率慢,并且轻易堕落;通过对话框设定参数举办标注,每个差异的公差值都要设定一次。这些要领在标注时都必要翻阅手册,给计划者带来很大的未便。曾有一些标注公差的措施,行使结果并不很抱负。笔者操作Autolisp说话编写了一个尺寸公差自动标注的措施。行使该措施举办公差标注不必翻阅手册,天圆液压缸筒,只需选择根基尺寸和公差带代号即可自动标注尺寸公差,可大大进步标注公差的速率。
  (setq p1 (polar p (+ (/ pi 2) angr) 0.2))
  (setq tole (strcat "%%p" gc1))
  (cond ((<= dimt 3) 1)       ((and (> dimt 3) (<= dimt 6)) 2)       ((and (> dimt 6) (<= dimt 10)) 3)       ((and (> dimt 10) (<= dimt 14)) 4)    ;dimt为获取的根基尺寸          ……            ;因篇幅所限,以下数行略。
  (if (= (substr dim 1 3) "%%c") (setq dim1 (substr dim 4)))
  f6       g6    h6    h7    
  );获取种种尺寸的尺寸数值
  (setq i (1+ i))
  (setq b '() i 1)
  (setq hi (* txth 0.5))
  )
  (setq p3 (polar p1 angr 1.8))
  一、公差值数据存贮
  (if (= fp nil)
  (command "text" p2 hi angd gc2 "")
  ) ) 四、自动标注公差  为使标注的尺寸公差与根基尺寸和谐,在标注前先按照根基尺寸的字高、旋转角等确定出公差的字高和旋转角,并计较出上、下毛病的标注位置,然后用“Text”呼吁标注公差。措施在计划中,思量到了只知道上、下毛病值而不知道公差品级和公差代号的环境(此时可不输入公差品级和代号,而直接输入上、下毛病),同时也思量到了某些非凡气象,如±0.01等等。
  (repeat record (setq h (read (read-line fp))))
  (setq n (length h))
  (while (< i n)
  (command "text" p1 hi angd gc1 "")
  (if (/= (abs gc11) (abs gc22))
  (setq b (append b (list (read (strcat "h" (itoa i))))))
  

 
  (if (= (substr dim 1 7) "\\A1;\\U+") (setq dim1 (substr dim 12)))
  (if (= (substr dim 1 4) "\\A1;") (setq dim1 (substr dim 5)))
  (… -0.030 -0.049 -0.010 -0.029 0 -0.019 0 -0.030 …);dimt65~80mm (… -0.036 -0.058 -0.012 -0.034 0 -0.022 0 -0.035 …);dimt80~100mm
  (alert "not open datatxt!")

  )
  用Entget、Substr函数获取根基尺寸dimt、字高Txth及旋转角Angd,便于在标注公差时确定公差的字高、角度等参数。这里要留意,在尺寸标注前Dimaso应设定为off,不然取不到尺寸。对付根基尺寸前有R、r、Φ等标记时,应作非凡处理赏罚。对用“Text”呼吁标注的尺寸和用“Dimension”呼吁标注的尺寸,处理赏罚要明确有差异,详见源措施。
  源措施(文件名为gcbz..lsp)如下:
  (setq dim1 dim)
  (setq angr (cdr (assoc 50 ss)))
  本措施已在AutoCAD R14、AutoCAD2000上调试通过,可函盖所有机器计划中的公差标注范例,可大大进步标注尺寸公差的速率。
  dim1 (substr dim 6)))
  (if (> gc11 0) (setq gc1 (strcat "+" gc1)))
  (if (> gc22 0) (setq gc2 (strcat "+" gc2)))
  (… -0.025 -0.041 -0.009 -0.025 0 -0.016 0 -0.025 …);dimt40~50mm (… -0.030 -0.049 -0.010 -0.029 0 -0.019 0 -0.030 …);dimt50~65mm
  (if (= gcdh "h7") (setq gc11 h1 gc22 h4))    ;取得上、下毛病值   ……                     ; 以下数行从略 (setq gc1 (rtos gc11 2 4) gc2 (rtos gc22 2 4))
  ……
  (setq i (1+ i))
  )
  )
  (while (<= i n)
  *********************
  (defun record (dimt)
  value (nth i h)
  第一举动公差带代号,现实文件中没有。若公差带代号为g6,根基尺寸为45mm,则其上毛病为-0.009mm,下毛病为-0.025mm。因查询函数是以字符位置获取上、下毛病的,以是公差数值表应整齐,不然获取的公差值将堕落。
  为自动查询出所需的公差数值,我们高设定了两个函数:起首用Record()函数检索出数据文件中切合根基尺寸(dimt)范畴的数据行,用Read()函数将该行中全部公差值赋给响应的变量hi,以便将响应的公差值配置为上、下毛病。譬喻,当获取的根基尺寸为40mm、输入的公差带代号为h7时,Record()获得的数据行号为8,用Read()将该行上的公差数值所有赋给hi,则h29为上毛病,h30为下毛病值。响应的措施如下:
  (setq p2 (polar p1 (+ (* pi 1.5) angr) (+ hi 0.8)))
  将措施放在Support\子目次下,在AutoCAD情形下用load函数将措施装入;也可用tools/application装入;可能直接将文件放在ACADR14.LSP文件中。这样,在运行AutoCAD时可直接将该措施装入。为利便标注,可在下拉菜单Dimension段增进尺寸公差标注项,详细要领如下:打开菜单文件ACAD.MNU,液压缸,在**DIMENSION下增进[尺寸公差标注]^C^CGCBZ即可。
  (if (= (substr dim 1 1) "R") (setq dim1 (substr dim 2)))
  ))
  (if (= (abs gc11) (abs gc22)) (command "text" p2 txth angd tole ""))
  (set name value)
  (if (= (substr dim 1 1) "r") (setq dim1 (substr dim 2)))
  (defun c:gcbz() (setq ss (entget (car (entsel)))) (setq gcdh (getstring "\n 输入公差带代号:")) (setq p (getpoint "\n 输入插入点:"))
  (setq dimt (atof dim1))
 
  二、根基尺寸的获取
  五、措施运行及菜单定制
  ……
  )
  (setq fp (open fname "r"))
  (close fp)
  将常用的公差数值以数据文件情势存贮,操作Autolisp说话编程,自动检索尺寸公差数值来实现尺寸公差的自动标注,是一种很好的本领。
  )
  (setq dim (cdr (assoc 1 ss)))
  (progn
  (progn
  )
  (setq k (record dimt));挪用函数,获取数据行号
  (setq txth (cdr (assoc 40 ss)));
  (setq angd (* (/ angr pi) 180))
  )
  (setq i 0)
  三、公差数值的查询
  (progn
  六、竣事语
  (read k "d:/data.txt");读取数据 (if (= gcdh "")   (setq gc11 (getreal "\n 输入上毛病:") gc22 (getreal "\n 输入下毛病:"))
  (if (= gcdh "f6") (setq gc11 h2 gc22 h3))
  (if (or (= (substr dim 1 5) "\\A1;R") (= (substr dim 1 5) "\\A1;r")) (setq 
(责任编辑:admin)
分享按钮
------分隔线----------------------------