- UID
- 89570
- 积分
- 345
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-10-25
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
;;*****************************************************************************
;;YL_begin
;;功 能:绘图程序的初始化处理,记录当前层名、线型、颜色、捕捉方式、文本样式、文本高度,
;; 控制点标记可见方式、主单位值消零处理方式、命令行回显方式、然后关闭目标捕捉,
;; 设置线形随层、颜色随层、设置命令行不回显、不显示控制点标记、对主单位值后续零作消零处理
;;说 明:和函数YL_end配对使用。
(defun YL_begin ()
(setq oderr *error*) ;;保存原来的*error*
(setq *error* YL_err) ;;将*error*用自己的错误处理函数替代
(setq odltp (getvar "celtype")) ;;记录当前线型设置
(setq odclr (getvar "cecolor")) ;;记录当前颜色设置
(setq odosm (getvar "osmode")) ;;记录当前捕捉方式
(setq odlay (getvar "clayer")) ;;记录当前层
(setq odsty (getvar "textstyle")) ;;记录当前文本样式
(setq odtsz (getvar "textsize")) ;;记录当前文本高度
(setq odbpm (getvar "blipmode")) ;;记录当前控制点标记是否可见
(setq odzin (getvar "dimzin")) ;;记录主单位值消零处理方式
(setq odcmd (getvar "cmdecho")) ;;记录命令行回显方式
(setvar "celtype" "bylayer") ;;设置线形随层
(setvar "cecolor" "bylayer") ;;设置颜色随层
(setvar "cmdecho" 0) ;;设置命令行不回显
(setvar "blipmode" 0) ;;不显示控制点标记
(setvar "dimzin" 8) ;;对主单位值后续零作消零处理,因为DIMZIN 对 AutoLISP rtos 和 angtos 函数执行实数向字符串转换操作有影响。
(setvar "osmode" 0) ;;关闭对象捕捉方式
)
;;*****************************************************************************
;;YL_end
;;功 能:程序结束,恢复程序开始前的设置。
;; 恢复YL_begin设置的系统变量表中的数值。
;;说 明:和函数YL_begin配对使用。
(defun YL_end ()
(setvar "celtype" odltp)
(setvar "cecolor" odclr)
(setvar "osmode" odosm)
(setvar "textstyle" odsty)
(setvar "textsize" odtsz)
(setvar "blipmode" odbpm)
(setvar "dimzin" odzin) ;;恢复主单位值消零处理方式
(command "layer" "s" odlay "")
(setvar "cmdecho" odcmd)
(setq *error* oderr) ;;恢复原来的*error*
(princ)
)
;;*****************************************************************************
;;YL_err
;;功 能:错误处理函数。
(defun YL_err (msg)
(princ (strcat "\n错误:" msg "\n")) ;;打印错误原因
(YL_end) ;;调用函数YL_end恢复程序开始前的设置
(setq *error* oderr) ;;恢复原来的*error*
(princ)
)
;******************************************************************************
;;按给定比例建立尺寸标注样式程序 YS
;;功 能:配合jt.dwg文件,按给定比例建立尺寸标注样式
;;作 者:yunlong3000
(defun c:YS (/ odscal scal nam nam1 txt en1)
(YL_begin) ;;初始化处理
(princ "\n按给定比例建立尺寸标注样式程序!")
(setq odscal (getvar "USERR1")) ;;取系统变量"USERR1"的值为默认比例因子
(if (equal odscal 0.0 0.1) ;;如果系统变量的值为0.0(容许误差为0.1)
(progn ;;则设置
(setq odscal 100.0) ;;首次运行,设默认比例因子为100
(setvar "USERR1" odscal) ;;系统变量userr1存储默认比例因子
)
)
(setq scal (getreal (strcat "\n 请输入比例因子<" (rtos odscal) ">:")))
(if (= scal nil) (setq scal odscal)) ;;如果用户直接回车,则使用默认的比例值
(setq odscal scal)
(if (not (tblsearch "layer" "Dim")) ;;判断是否存在Dim层,无则创建。
(command "layer" "m" "Dim" "c" "6" "" "l" "continuous" "" "")
)
(setq nam1 (strcat "YL" (rtos scal 2)))
(if (tblsearch "DIMSTYLE" nam1) ;;判断是否存在nam1标注样式,有则设为当前,无则创建。
(progn
(command "DIMSTYLE" "S" nam1 "" "")
(setq txt (strcat "比例尺为 1:" (rtos scal 2) " 尺寸标注样式已存在,名为 " nam1 " 现已设为当前样式!"))
)
(progn
(command "layer" "s" "Dim" "")
(command"insert" "jt" "0,0" 1 1 0) ;;在图中插入用户自定义的箭头(jt.dwg文件应放在CAD的收索路径中)
(setq en1 (entlast)) ;;返回图形中最后一个未被删除的图元名
(entdel en1) ;;删除刚插入的箭头实体,但图形中保留了块的定义。
(if (tblsearch "style" "sty_YL") ;;判断是否存在sty_YL字体,有则设为当前,无则创建。
(setvar "textstyle" "sty_YL")
(command"style" "sty_YL" "romans,hztxt" 0 0.7 0 "n" "n" "n")
)
(setvar"DIMTOL" 0)
(setvar"DIMLIM" 0)
(setvar"DIMTIH" 0)
(setvar"DIMTOH" 0)
(setvar"DIMSE1" 0)
(setvar"DIMSE2" 0)
(setvar"DIMALT" 0)
(setvar"DIMTOFL" 1)
(setvar"DIMSAH" 1)
(setvar"DIMTIX" 0)
(setvar"DIMSOXD" 0)
(setvar"DIMSD1" 0)
(setvar"DIMSD2" 0)
(setvar"DIMUPT" 0)
(setvar"DIMTOLJ" 1)
(setvar"DIMALTD" 2)
(setvar"DIMZIN" 8)
(setvar"DIMAZIN" 2)
(setvar"DIMJUST" 0)
(setvar"DIMFIT" 5)
(setvar"DIMTZIN" 8)
(setvar"DIMALTZ" 0)
(setvar"DIMALTTZ" 0)
(setvar"DIMTAD" 1)
(setvar"DIMUNIT" 2)
(setvar"DIMAUNIT" 0)
(setvar"DIMDEC" 1)
(setvar"DIMADEC" 1)
(setvar"DIMTDEC" 0)
(setvar"DIMALTU" 2)
(setvar"DIMALTTD" 2)
(setvar"DIMSCALE" scal)
(setvar"DIMASZ" 0.12)
(setvar"DIMEXO" 0)
(setvar"DIMDLI" 0.6)
(setvar"DIMEXE" 0.15)
(setvar"DIMRND" 0)
(setvar"DIMDLE" 0)
(setvar"DIMTP" 0)
(setvar"DIMTM" 0)
(setvar"DIMTXT" 0.25)
(setvar"DIMCEN" 0.3)
(setvar"DIMTSZ" 0)
(setvar"DIMALTF" 25.4)
(setvar"DIMLFAC" 1)
(setvar"DIMTVP" 0)
(setvar"DIMTFAC" 1)
(setvar"DIMGAP" 0.05)
(setvar"DIMCLRD" 6)
(setvar"DIMCLRE" 6)
(setvar"DIMCLRT" 6)
(setvar"DIMDSEP" ".") ;;设置小数点的符号
(setvar"DIMASSOC" 1) ;;创建非关联标注对象。
(command "DIMTXSTY" "sty_YL")
(command "DIMBLK1" "JT")
(command "DIMBLK2" "JT")
(command "DIMSTYLE" "S" nam1)
(setq txt (strcat "比例尺为 1:" (rtos scal 2) " 的尺寸标注样式已建立,名为 " nam1 "."))
)
)
(princ txt)
(setvar "USERR1" scal) ;;系统变量userr1存储默认比例因子
(YL_end) ;;恢复程序开始前的设置
(princ)
) |
|