家居装修知识
模具知识|AutoCAD内常用术语的自动标注方法
2017-02-10  浏览:48
模具之家讯:摘要 [HT5SS]本文提出了一种用对话框实现AutoCAD内常用术语自动标注的方法。用这种方法,可方便地将各种常用术语标注在图中,为CAD应用提供了方便。

一、引言

汉字的标注在CAD设计制图中是一个重要的部分,也是一个较为繁琐、困难的部分。目前,在AutoCAD内汉字的输入大多采用拼音方式,对拼音不熟悉的人来说汉字的输入就很困难。如果能将设计中常用的文字术语直观地显示出来供设计人员调用,将会极大地提高工作效率。本文就此进行研究,提出了一种用对话框(下图)将常用术语显示并供调用的方法,同时给出了源程序,供大家参考。该程序已应用于我院的实际生产中。
二、原理及方法

AutoCAD对话框结构包含有多种构件,如edit_box(编辑框)、list_box(列表框)、radio_button(多选一按钮)等,利用这些工具,可以开发出界面友好的实用程序。

左图就是用这种方法实现的。将常用词组分类,分别存于不同的文件中。根据多选一按钮中所驱动的分组号分别打开不同的文件,将文件内容读入并显示于列表框内,供设计人员使用。同时,设有一个编辑框,可将所点取的词组显示于编辑框中,便于用户对词组进行适当的修改,如删除或增加字符等。这种方法有一个优点,用户可十分方便地根据自己需要修改或添加词组内容。对话框文件及驱动程序分别见#CAL.DCL及#CAL.LSP。

三、程序使用方法

先用WPS、EDIT等编辑程序分类建立词组库(注意,需要存成纯文本格式),每个词组占一行。程序要求将"常用术语"、"图纸名称"、"房间名称"等各分类所对应的词组库文件名分别为$TXT1.DAT、$TXT2.DAT、$TXT3.DAT厖。除第一个文件不能少外,其它文件可空缺,但当点取该分类项时,系统会提示有关文件不存在的信息。

然后将所建立的词组库文件及所提供的程序#TXT.LSP和对话框文件#TXT.DCL拷贝到AutoCAD所能找到的目录(环境变量ACAD所设置的任一目录如ACAD\SUPPORT或当前目录)中,在Command:命令下键入(LOAD "#TXT")进行程序的加载,即可象其它AutoCAD内部命令一样使用#TXT了。也可在所使用的菜单文件(如ACAD.MNU)中的下拉式菜单或屏幕菜单部分加上下面一行:[常用词组]^C^C^P(if (null c:#txt) (load"#txt")) #txt以后可直接从菜单中驱动该程序。

在COMMAND:状态下,键入#TXT后,系统弹出一个对话框,根据需要点取所需的词组类别,再从列表框内选择所需词组。所点取的词组会在编辑框[所选词组]中显示。用户可以在此对词组进行必要的修改,点取[OK]后,根据提示输入字高及起点即可把词组写到图中。

需要说明的是,本程序中是将文字以"HZ"字型写到图中,要求字体为TXT.SHX及HZTXT.SHX。若您的软件中无这两种字体,可将其它字体改名为该两种字体(要求一个为英文字体,一个为中文字体),或将程序修改为您所具有的字体。但需要注意,也许您的字体在用于设置字型时会多一个选项,询问是否垂直书写文字,此时,可将字型设置一句改为:(command "STYLE" "HZ" "txt,hztxt" 0 0.7 0 "n" "n" "n")即可。

本程序在AutoCAD R12.0 ForDOS及ForWINDOWS版上均调试通过。

(defun c:#txt ( / oldcmd olderr ok txt_tb txt dcl_id sty fp nn ht pt txterr diag init wr_txt old_nn)

; 定义错误处理子程序

(defun txterr(s)

(if (and (/= s "console break")

(/= s "Function cancelLED")

(/= s "quit / exit abort")

)

(princ (strcat "\nError:" s))

)

(if olderr (setq *error* olderr)); 恢复原系统设置

(if oldcmd (setvar "cmdecho" oldcmd))

(princ)

)

; 对话框显示及驱动程序

(defun diag ( / i)

(if (> (setq dcl_id (load_dialog "#txt")) 0);加载对话框文件

(progn

(if (new_dialog "filetext" dcl [JX*6]id); 显示对话框

(progn start_list "what");将词组显示到列表框内

(mapcar 'add_list txt_tb

)

(end_list)

(setq i 1)

(repeat nn;点取词组分类项后的操作

(action_tile (strcat "c" (itoa i)) "(wr_txt)")

(setq i (1+ i))

)

(action_tile "what" "(setq i (atoi $value));选中词组

(setq txt (nth i txt_tb))(set_tile \"sel_ok\" txt)"

)

(action_tile "sel_ok" "(setq txt $value)")

(action_tile "accept" "(setq ok T)(done_dialog 1)(unload_dialog dcl_id)")

(action_tile "cancel" "(unload_dialog dcl_id)")

(start_dialog)

)

(prompt "\n无法显示对话框FILETEXT! 请检查对话框内容!")

)

)

(prompt "\n无法加载对话框文件#TXT.DCL! 请检查文件是否存在及路径是否正确!")

)

)

; 初始化程序, 把第1个分组项中的词组读入表txt_tb中

(defun init( / fname fp txt1)

(setq fname (findfile "$txt1.dat"))

(if (not fname)

(progn (princ "\n文件 $TXT1.DAT 不存在 !") (exit)) ; 文件不存在, 则退出

)

(setq fp (open fname "r"))

(setq txt_tb '())

(while (setq txt1 (read_line fp))

(setq txt_tb (cons txt1 txt_tb))

)

(close fp)

(setq txt_tb (reverse txt_tb))

(setq old_nn 1);记录索引号

)

; 更换列表框内词组显示内容

(defun wr_txt ( / fname fname1 fp txt1 i)

(setq i 1)

(while (<= i nn); 判别哪个词组项被点中

(if (= (get_tile (strcat "c" (itoa i))) "1")

(setq fname1 (strcat "$txt" (itoa i) ".dat")

i nn

)

)

(setq i (1+ i))

)

(if (setq fname (findfile fname1)); 查找文件是否存在

(progn

(setq old_nn (atoi (substr fname1 5)));记录索引号

(setq fp (open fname "r"))

(setq txt_tb '())

(while (setq txt1 (read_line fp));依次读出各词组

(setq txt_tb (cons txt1 txt_tb))

)

(close fp)

(setq txt_tb (reverse txt_tb))

(start_list "what");在列表框内显示词组内容

(mapcar 'add_list txt_tb)

(end_list)

) ; progn

(progn

(alert (strcat "文件" fname1 "不存在!"))

(set_tile (strcat "c" (itoa old_nn)) "1");恢复原记录号

)

) ; if

)

; 主程序开始

(setq olderr *error*

*error* txterr

oldcmd (getvar "cmdecho")

)

(setvar "cmdecho" 0) ; 命令不回显

(setq nn 9) ; 词组分类数

(init) ; 初始化

(diag) ; 驱动对话框

(if (and ok txt)

(progn

(if (or(= (setq sty (tblsearch "STYLE" "HZ")) nil); "HZ"字型是否存在

(/= (cdr (assoc 40 sty)) 0) ; 字高是否为定值

(/=(getvar "TEXTSTYLE") "HZ"); 当前字型是否为"HZ"

)

(command "STYLE" "HZ" "txt,hztxt" 0 0.7 0 "n" "n") ; 设置"HZ"字型

)

(initget (+ 2 4));下面的输入值要求大于0

(setq ht (getreal "\n请输入字高<500>:"))

(if (not ht) (setq ht 500))

(setq pt (getpoint "\n请点取文字起点:"))

(command "text" pt ht 0 txt)

)

)

(setq *error* olderr);恢复原设置

(setvar "cmdecho" oldcmd)

(princ)

)

// #txt.dcl

// 供#txt.lsp调用

filetext : dialog { // 对话框名称

label = "常用词组"; // 对话框标识

: row {

: boxed_column {

label = " 索 引 ";

: radio_button {

label = "常用术语"; // 多选一按钮

key = "c1";

value = "1"; // 初始值为"1", 表示选中

}

: radio_button {

label = "图纸名称";

key = "c2";

}

: radio_button {

label = "房间名称";

key = "c3";

}

: radio_button {

label = "卫生器具";

key = "c4";

}

: radio_button {

label = "管材配件";

key = "c5";

}

: radio_button {

label = "器材仪表";

key = "c6";

}

: radio_button {

label = "常用设备";

key = "c7";

}

: radio_button {

label = "构筑物";

key = "c8";

}

: radio_button {

label = "其它";

key = "c9";

}

}

: list_box {

label = "词组内容";

key = "what";

height = 15;

width = 26;

allow_accept = true; // 可双击鼠标选取

}

}

spacer_1;

: edit_box {// 编辑框

label = "所选词组:";

key = "sel_ok";

}

spacer_1;// 增加间距

ok_cancel;

}
模具之家为您提供最全面的塑胶,塑料,模具,模具设计,塑胶模具品牌的装修知识点和各种塑胶模具的导购与在线购买服务,拥有最便宜的塑胶模具价格和最优质的售后服务,敬请登陆模具之家:http://muju.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 塑胶 的产品:
南亚塑胶洛阳总经销 PVC塑料管

南亚塑胶洛阳总经销 PVC塑料管

价格:10.00/米

美国阿姆斯壮塑胶地板PVC地板印象龙地板山西总代理地板

美国阿姆斯壮塑胶地板PVC地板印象龙地板山西总代理地板

价格:到店咨询

美国阿姆斯壮Armstrong塑胶地板威牛pvc地板

美国阿姆斯壮Armstrong塑胶地板威牛pvc地板

价格:1.00/平方米

冠奥通告诉您塑胶跑道维护保养的10大注意事项

冠奥通告诉您塑胶跑道维护保养的10大注意事项

价格:到店咨询

导致塑胶跑道起泡和裂缝的施工环节及不同季节的维护

导致塑胶跑道起泡和裂缝的施工环节及不同季节的维护

价格:到店咨询

冠奥通告诉您PVC塑胶地板的篮球场如何正确的使用

冠奥通告诉您PVC塑胶地板的篮球场如何正确的使用

价格:到店咨询

易博仕铝方通吊顶木纹铝方通厂家直销

易博仕铝方通吊顶木纹铝方通厂家直销

价格:7.50/米

易博仕勾搭式垂帘铝挂片吊顶天花

易博仕勾搭式垂帘铝挂片吊顶天花

价格:8.50/米

供应易博仕氟碳铝单板幕墙铝单板厂家直销

供应易博仕氟碳铝单板幕墙铝单板厂家直销

价格:198.00/平方米

供应易博仕氟碳铝单板幕墙铝单板厂家直销

供应易博仕氟碳铝单板幕墙铝单板厂家直销

价格:198.00/平方米

易博仕铝天花吊顶明架跌级铝扣板600*600厂家直销

易博仕铝天花吊顶明架跌级铝扣板600*600厂家直销

价格:38.00/平方米

供应易博仕c型铝条扣 防风铝条扣天花厂家直销

供应易博仕c型铝条扣 防风铝条扣天花厂家直销

价格:38.00/平方米

  • 头条资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 建材风水 木板之家 电工之家 壁纸之家 净化之家 安防之家 水暖之家 洁具之家 窗帘头条 家饰之窗 老姚之家 灯饰之家 电气之家 全景头条 陶瓷之家 照明之家 防水之家 防盗之家 博一建材 卫浴之家 区快洞察 建材 郑州建材 周口建材 信阳建材 商丘建材 南阳建材 漯河建材 许昌建材 濮阳建材 焦作建材 新乡建材 鹤壁建材 安阳建材 洛阳建材 开封建材 武汉建材 天门建材 企业之家 驻马店建材 三门峡建材 平顶山建材 神农架建材 建材之家 720全景
    (c)2015-2017 BO-YI.COM SYSTEM All Rights Reserved