- UID
- 4198
- 积分
- 621
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-4-22
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[求助][1215]标注程式疑问?
烦请各位高手,帮我看看这程序是否可以精简呢?及程序是否有问题?
另外有个问题,为何尺寸变数,用server 设定不行变更,
而用 command 却可以改变呢?
此程式用途在于建立尺寸型态~
另外若是希望建立尺寸标注的图块该怎样叙述呢?
谢谢~
LISP内容:
(defun c:USERDIM ()
(setq dcl_id(load_dialog "USERDIM"))
(new_dialog "USERDIM" dcl_id)
(action_tile "k1" "(done_dialog 1)")
(action_tile "k2" "(done_dialog 2)")
(action_tile "k3" "(done_dialog 3)")
(action_tile "k4" "(done_dialog 4)")
(setq dd(start_dialog))
(cond
((= dd 1)(c:DIM01))
((= dd 2)(c:DIM02))
((= dd 3)(c:DIM03))
((= dd 4)(c:DIM04))
(t (alert "未完成任何动作!!!"))
)
nil
)
;;;###############################
(defun C:DIM01 ()
(setvar "dimscale" 1)
(FONTSTL)
(createdimcblock)
(setq dim_dimc (tblsearch "dimstyle" "DIMC-100"))
(if (= dim_dimc nil)(command "-dimstyle" "s" "DIMC-100"))
(DIMC)
(command "-DIMSTYLE" "R" "DIMC-100")
(setvar "dimscale" 100)
nil)
(defun C:DIM02 ()
(setvar "dimscale" 1)
(FONTSTL)
(createdimcblock)
(setq dim_dimc (tblsearch "dimstyle" "DIMC-150"))
(if (= dim_dimc nil)(command "-dimstyle" "s" "DIMC-150"))
(DIMC)
(command "-DIMSTYLE" "R" "DIMC-150")
(setvar "dimscale" 150)
nil)
(defun C:DIM03 ()
(setvar "dimscale" 1)
(FONTSTL)
(createdimcblock)
(setq dim_dimc (tblsearch "dimstyle" "DIMC-200"))
(if (= dim_dimc nil)(command "-dimstyle" "s" "DIMC-200"))
(DIMC)
(command "-DIMSTYLE" "R" "DIMC-200")
(setvar "dimscale" 200)
nil)
(defun C:DIM04 ()
(setvar "dimscale" 1)
(FONTSTL)
(createdimcblock)
(setq dim_scale (getint "\n 输入比例系数值:"))
(setq dim_dimc (tblsearch "dimstyle" "DIMC"))
(if (= dim_dimc nil)(command "-dimstyle" "s" "DIMC"))
(DIMC)
(command "-DIMSTYLE" "R" "DIMC")
(setvar "dimscale" dim_scale)
nil)
;;;###############################
(defun DIMC ()
;;;设定选项之=====<线>
(command "dimclrd" "135")
;;;(setvar "dimclrd" 135)
;;;标注线与引线颜色, dimclrd
(command "dimdli" "0")
;;;(setvar "dimdli" 0)
;;;标注线与基准线间距, dimdli
(setvar "dimsd1" 0)
;;;抑制第一条标注线, dimsd1
(setvar "dimsd2" 0)
;;;抑制第二条标注线, dimsd2
(command "dimclre" "135")
;;;(setvar "dimclre" 135)
;;;延伸线颜色, dimclre
(setvar "dimse1" 0)
抑制第一条延伸线显示, dimse1
(setvar "dimse2" 0)
抑制第一条延伸线显示, dimse2
(command "dimexe" "0.15")
;;;(setvar "dimexe" 0.150)
;;;标注线上方延伸量, dimexe
(command "dimexo" "0")
;;;(setvar "dimexo" 0)
;;;延伸线自原点偏移量, dimexo
;;;+++++++++++++++++++++++++++++++
;;;设定选项之=====<符号与箭头>
(command "DIMBLK" "DIMC")
(setvar "dimblk1" "DIMC")
;;;第一个箭头图块名称, dimblk1
(setvar "dimblk2" "DIMC")
;;;第二个箭头图块名称, dimblk2
(setvar "dimldrblk" "_open30")
;;;引线图块名称, dimldrblk
(command "dimasz" "0.175")
;;;(setvar "dimasz" 0.175)
;;;显示与设定箭头的大小, dimasz
(command "dimcen" 0.5)
;;;(setvar "dimcen" 0.5)
;;;中心点标记大小, dimcen
;;;+++++++++++++++++++++++++++++++
;;;设定选项之=====<文字>
(setvar "dimtxsty" "STL")
;;;标注文字型式,dimtxsty
(setvar "dimclrt" 4)
;;;标注文字颜色, dimclrt
(command "dimtxt" 0.25)
(setvar "dimtxt" 0.25)
;;;标注文字高度, dimtxt
(setvar "dimtfac" 1.0)
;;;公差文字高度比例系数, dimtfac
(setvar "dimtad" 1)
;;;将文字置于标注线上方, dimtad
(setvar "dimjust" 0)
;;;文字在标注线上的对正方式, dimjust
(command "dimgap" 0.05)
;;;(setvar "dimgap" 0.05)
;;;自标注线偏移, dimgap
(setvar "dimtih" 0)
;;;文字在延伸线内侧是水平的, dimtih
(setvar "dimtoh" 0)
;;;外侧文字水平, dimtoh
;;;+++++++++++++++++++++++++++++++
;;;设定选项之=====<填入>
(setvar "dimtix" 1)
;;;将文字置于延伸线内侧, dimtix
(setvar "dimsoxd" 0)
;;;抑制外侧标注线, dimsoxd
(setvar "dimtmove" 2)
;;;文字移动, dimtmove
;;;(setvar "dimscale" 1)
;;;整体比例系数
(setvar "dimupt" 0)
;;;使用者定位的文字, dimupt
(setvar "dimtofl" 1)
;;;强制在延伸线内侧画线, dimtofl
;;;+++++++++++++++++++++++++++++++
;;;设定选项之=====<主要单位>
(setvar "dimlunit" 2)
;;;线性标注单位格式, dimlunit
(setvar "dimdec" 8)
;;;线性标注精确度, dimdec
(setvar "dimfrac" 0)
;;;分数格式, dimfrac
(setvar "dimdsep" ".")
;;;小数分隔符号, dimdsep
(setvar "dimrnd" 0.10)
;;;舍入值, dimrnd
(setvar "dimpost" ".")
标注文字的字首和字尾, dimpost
(setvar "dimlfac" 1.0)
;;;线性单位比例系数, dimlfac
(setvar "dimzin" 8)
;;;线性标注的零抑制, dimzin
(setvar "dimaunit" 0)
;;;角度标注单位格式, dimaunit
(setvar "dimadec" 2)
;;;角度标注精确度, dimadec
(setvar "dimazin" 0)
;;;角度标注的零抑制, dimazin
;;;+++++++++++++++++++++++++++++++
;;;设定选项之=====<公差>
(setvar "dimtol" 0)
;;;公差标注, dimtol
(setvar "dimtolj" 1)
;;;公差垂直对正方式, dimtolj
(prin1)
)
;;;###############################
(defun createblock ()
(setvar "cmdecho" 0)
;;;(command "layer" "m" "BLOCK" "c" "7" "" "")
;;;(command "LINE" "-1.5,0" "1.5,0" "")
;;;(command "LINE" "0,-1.5" "0,1.5" "")
;;;(command "CIRCLE" "0,0" "0.4")
;;;(setq obj1 (entlast))
;;;(command "chprop" obj1 "" "c" 4 "")
;;;(command "-BLOCK" "DIMC" "0,0" "ALL" "" )
(command "-INSERT" "C:/Ajhcad/black/DIMC.dwg" nil)
(prin1))
;;;###############################
(defun createdimcblock ( / dim_block oldlayer)
(setq oldLayer (getvar "clayer"))
(setq dim_block (tblsearch "BLOCK" "DIMC"))
(if (= dim_block nil)(createblock))
(setvar "clayer" oldLayer)
(prin1))
;;;###############################
(defun FONTSTL ()
(IF (tblsearch "STYLE" "STL")
(setvar "TEXTSTYLE" "STL")
(COMMAND "-style" "STL" "simplex,stsl" "" "1" "" "" "" "")
)
)
DCL内容:
//USERDIM.dcl
USERDIM :dialog {
label="JTH.自设标注型式";
:row{
:column{
:button{label="01.DIMC=S/100";width="5";key="k1";}
:button{label="02.DIMC=S/150";width="5";key="k2";}
:button{label="03.DIMC=S/200";width="5";key="k3";}
:button{label="04.DIMC=S/USER";width="5";key="k4";}
}
}
spacer_1;
ok_cancel_help;
}
;;;############################### |
|