找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 476|回复: 0

[求助] [求助][1215]标注程式疑问?

[复制链接]
发表于 2005-12-15 23:48:04 | 显示全部楼层 |阅读模式

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

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

×
[求助][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;

                  }

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

本版积分规则

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

GMT+8, 2025-9-28 22:18 , Processed in 0.423374 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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