十五年专注于
液压缸筒生产

全国咨询热线:
400-086-9833

   热门关键词修理 加工 活塞杆 缸筒 不锈钢

无标题文档

天圆液压产品中心

当前位置:主页 > 行业资讯 >

AutoCAD图形中绗磨管标准图纸图栏系统的开发(3)

时间:2016-11-13 09:00来源:天圆网站 作者:admin 点击:
(if (= des_num(read_num(findfile "tyl.ini"))) ;判断是否选择了“其他设计单位” (progn ;如果选择了其他设计单位 (mode_tile "other" 0) ;使“其他设计单位”框有效 (mode_tile "other" 2) ;将光标移动到"其他设

(if (= des_num(read_num(findfile "tyl.ini"))) ;判断是否选择了“其他设计单位”
(progn ;如果选择了其他设计单位
(mode_tile "other" 0) ;使“其他设计单位”框有效
(mode_tile "other" 2) ;将光标移动到"其他设计单位”框上
)
;如果选择的不是其他设计单位
(mode_tile "other" 1) ;使“其他设计单位”框无效
)

由于tyl.ini文件的设计单位的各个不同单位名称的排列有先后之分,在列表框的初始化中,系统总是默认第一个单位名称为设计单位,这样就必须通过程序及其他方法将设计单位定位在自己常用的单位名称上,或者说希望系统能够将前一次所填写的设计单位作为下次填写的默认值。

在AutoCAD r13以后的版本中,用户可将自定义的参数保存于AutoCAD的系统配置文件中的AppData段中,以配置自己的界面的自定义参数。所以可以将前一次设计单位名称列表选择项的位置序号以及其他设计单位编辑框中的内容保存于该段中,以便在下次引用图样栏时对图样栏进行初始化。具体程序如下:

;;取得设计单位前次选择的位置序号。
(if (getcfg "AppData/Tyl/Number")
(setq des_num(atoi(getcfg"AppData/Tyl/Number")))
(setq des_num 0)
)
(set_tile "sign_no" (itoa des_num))

;;取得其他单位的名称
(if (setq zzdw1 (getcfg "AppData/Tyl/Other"))
(setq_tile "other" zzdw1)
)

;;保存设计单位序号及其他单位名称
(setcfg "AppData/Tyl/Number" (itoa des_num))
(if zzdw1
(setcfg "AppData/Tyl/Other" zzdw1)
)

这样就可以不必考虑设计单位列表的排列问题,甚至对于设计单位不在列表中而使用其他框进行填写也不必每一次填写图样栏时都进行输入,系统可以取得上次保存的其他单位名称显示于其他框中。

对于设计单位名称列表的tyl.ini文件,在本系统中是通过在该系统的安装程序中生成。本系统设计完成后使用了InstallShield生成安装程序,所以可以通过安装程序的专用语言生成tyl.ini文件。在InstallShield生成的安装程序中有要求用户输入姓名及工作单位的向导对话框,如图5,这样就可以通过取得用户输入的工作单位并生成tyl.ini文件。该系统在不同的单位使用时,由于在安装时所输入的单位名称为本单位名称,所以在填写图样栏时就能产生本单位名称的图样栏。

其程序如下(程序内容置于ProcessAfterDataMove()过程中):

szFileName = @FILE_TYL; if( FindFile ( TARGETDIR , szFileName , svResult )< 0 ) then
SdShowMsg( @MSG_CREATE_TYL , TRUE);
Delay(2);
if (CreateFile ( nvFileHandle , TARGETDIR , szFileName )<0) then
MessageBox(@MSG_UNCREATE_TYL,INFORMATION);
if(CopyFile(szFileName, szFileName)<0) then
MessageBox(@MSG_UNCOPY_TYL,INFORMATION);
endif;
else
if ( WriteLine ( nvFileHandle , svCompany)<0) then
MessageBox(@MSG_WRITE_COMPANY,INFORMATION);
else
WriteLine(nvFileHandle,@COMPANY_NAME);
endif;
endif;
endif;
return 0;
end;

6. 图栏各命令的调用:

各程序设计完成后,要实现对程序的调用才能方便程序的使用。各图栏的AutoLISP程序保存于同一文件的不同过程中,该文件为ddtl.lsp,而对话框文件为ddtl.dcl,设计单位配置文件tyl.ini,同时还有应用于图栏的多个带属性的图块。

首先为了能够在命令引用时自动装载该程序文件,必须在acadr14.lsp文件中增加下列一行程序:

(autoload "ddtl" ’("ddtyl" "ddbtl" "ddmxl" "ddfjl" "ddqmb" "ddggb"))

这样,就可以随时在命令行中输入图栏命令以运行相应程序过程。

其次,必须将图栏的名命令显示在菜单及工具栏中供用户调用。AutoCAD允许用户加载多个菜单,除主菜单外,还可以加载多个附加菜单,附加的菜单文件可以包含下拉菜单及工具栏,但不能包含屏幕菜单。本系统将产生一附加的菜单文件显示图栏的各命令。

菜单的内容如下:(菜单文件名称为ac_bonus.mnu)

***MENUGROUP=AC_BONUS***POP1 [附加(&B)]
ID_H10TL [->图栏(&T)]
ID_H10TYL [图样栏(&T)] ^C^Cddtyl
ID_H10BTL [标题栏(&A)]^C^Cddbtl
ID_H10FJL [附加栏(&F)]^C^Cddfjl
ID_H10MXL [明细栏(&M)]^C^Cddmxl
ID_H10QMB [签名表(&O)]^C^Cddqmb
ID_H10GGB [<-更改表(&G)]^C^Cddggb
……
***TOOLBARS**TB_H10_TL_TOOLBAR
ID_H10TL [_Toolbar("图栏及流程", _Floating, _show,101,121,1)]
ID_H10TYL [_Button("图样栏", ICON_16_TYL,ICON_24_TYL)]^C^Cddtyl
ID_H10BTL [_Button("标题栏", ICON_16_BTL,ICON_24_BTL)]^C^Cddbtl
ID_H10FJL [_Button("附加栏", ICON_16_FJL,ICON_24_FJL)]^C^Cddfjl
ID_H10MXL [_Button("明细栏", ICON_16_MXL,ICON_24_MXL)]^C^Cddmxl
ID_H10QMB [_Button("签名栏", ICON_16_QMB,ICON_24_QMB)]^C^Cddqmb
ID_H10GGB [_Button("更改栏", ICON_16_GGB,ICON_24_GGB)]^C^Cddggb

工具栏的按钮图标,是通过使用VC++软件产生的资源文件提供,该文件名称为ac_bonus.dll(文件名称与菜单相同,扩展名为.dll),包括菜单文件中所引用的全部图标。

三、使用情况及效果:

整个程序设计完成后在多个单位使用,运行情况良好,对于旧版的图栏都能顺利地转换,采用对话框的方式非常直观,对各图栏的修改非常方便,大大地提高设计的速度。由于采用专门的安装程序安装该系统,所以可以在安装向导的指导下完成系统的安装,安装后系统不必再经调整就可以进行使用,而不必专人的指导,大大地方便了该系统的使用。

该系统已经被多个单位使用及推广,同时由该系统及相应的其他功能所组成的应用程序也已被众多的单位和个人所使用。

(责任编辑:admin)
分享按钮
------分隔线----------------------------