我需要一个自动标注尺寸公差的程序。
我需要一个好用的自动标注尺寸公差的程序。我在明经通道下载的,使用起来感觉不太方便。 您可以登录到http://xrsoft.nease.net下载XRCAD,试一试其中的工具。 有xrcad的注册码吗? http://www.szty.com.cn/gmsoft/tools/DGJ.zip 注册码不能下,楼上的能不能直接贴出来! 本论坛下载中心有的 下载机械工程师2003,这个比较好用 (defun c:g1()(setq ss (entsel "\n请输入对称公差的尺寸:"))
(setq ss (car ss))
(setq en (entget ss '("*")))
(setq lt1 (assoc 1 en))
(setq lt11 (cdr lt1))
(setq lt33 (getstring "请输入对称公差值:"))
(cond ((= lt11 "") (setq lt22 (strcat "<>%%p" lt33)))
(t (setq lt22 (strcat lt11 "%%p" lt33)))
)
(setq lt2 (cons 1 lt22))
(setq en (subst lt2 lt1 en))
(entmod en)
(PRINC " -------OK-------")
(PRINC)
)
;-----------------------------------------------
;---------------------------------------------------
(defun c:g2()
(setq ss (entsel "\n请输入不对称公差的尺寸:"))
(setq ss (car ss))
(setq en (entget ss '("*")))
(setq lt1 (assoc 1 en))
(setq lt11 (cdr lt1))
(setq lt33 (getstring "请输入上公差值:"))
(setq lt44 (getstring "请输入下公差值:"))
(cond ((= lt11 "") (setq lt22 (strcat "<>\\H.68x\\S" lt33 "^" lt44)))
(t (setq lt22 (strcat lt11 "\\H.68x\\S" lt33 "^" lt44)))
)
(setq lt2 (cons 1 lt22))
(setq en (subst lt2 lt1 en))
(entmod en)
(PRINC " -------OK-------")
(PRINC)
)
;----------------------------------------------------------------------
;-----------------------------------------------------------------------
(defun c:g3()
(COMMAND "_.UNDO" "M")
(setq ss (entsel "\n请输入有公差的尺寸:"))
(setq ss (car ss))
(setq en (entget ss '("*")))
(setq lt1 (assoc 1 en))
(setq lt22 (cdr lt1))
(PROMPT "\n请选择修改区域:")
(SETQ ENTGRP (SSGET))
(SETQ COUNT 0)
(REPEAT (SSLENGTH ENTGRP)
(SETQ ENTNAME (SSNAME ENTGRP COUNT))
(SETQ ENT (ENTGET ENTNAME))
(setq lt01 (assoc 1 ent))
(setq lt011 (cdr lt01))
(cond ((= lt011 "") (setq lt022 lt22))
(t (exit))
)
(setq lt02 (cons 1 lt022))
(setq ent (subst lt02 lt01 ent))
(entmod ent)
(SETQ COUNT (1+ COUNT))
)
(PRINC "\n共计修改尺寸")(PRINC COUNT) (PRINC "!!!")
(PRINC " -------OK-------")
(PRINC)
) 我来一个给大家看看:
(defun c:htol
(/ dVal-tp dVal-tm ss1)
(setq dVal-tp (getreal "\nUpper value +<0.00>: ")) ;setq
(if
(not dVal-tp)
(setq dVal-tp 0.0)
)
(setq dVal-tm (getreal "\nLower value -<0.01>: ")) ;setq
(if
(not dVal-tm)
(setq dVal-tm 0.01)
)
;;;
(setq ss1 (ssget))
(if
(not ss1)
(exit)
)
;;;
(setvar "dimtol" 1)
(setvar "dimtp" dVal-tp)
(setvar "dimtm" dVal-tm)
(if
(< (abs (- (abs dVal-tp) (abs dVal-tm))) 0.0001) ;<
(progn (if (< (abs dVal-tm) 0.001)
(progn
(setvar "dimtp" 0.0)
(setvar "dimtm" 0.0)
(setvar "dimtol" 0)
) ;progn
) ;if
(setvar "dimtfac" 1.0)
) ;progn
(setvar "dimtfac" 0.8)
) ;if
(command "-dimstyle" "apply" ss1 "")
(setvar "dimtp" 0.0)
(setvar "dimtm" 0.0)
(setvar "dimtol" 0)
(princ)
)
;defun
大师们真厉害!
页:
[1]