autocad二次开发程序的自动安装处理

上传人:第*** 文档编号:32682671 上传时间:2018-02-12 格式:DOC 页数:22 大小:105KB
返回 下载 相关 举报
autocad二次开发程序的自动安装处理_第1页
第1页 / 共22页
autocad二次开发程序的自动安装处理_第2页
第2页 / 共22页
autocad二次开发程序的自动安装处理_第3页
第3页 / 共22页
autocad二次开发程序的自动安装处理_第4页
第4页 / 共22页
autocad二次开发程序的自动安装处理_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《autocad二次开发程序的自动安装处理》由会员分享,可在线阅读,更多相关《autocad二次开发程序的自动安装处理(22页珍藏版)》请在金锄头文库上搜索。

1、AutoCAD 二次开发程序的自动安装处理AutoCAD 的二次开发主要涉及以下内容:(1)编写各种用户自定义函数并形成若干 LISP、ARX、VLX 或 ADS 文件,以及一些 DCL 文件。(2)建立符合自己要求的菜单文件,一般可在 AutoCAD 原菜单文件内添加自己的内容,对于AutoCAD2000 版本还可增加部分菜单文件,然后经交互方式加入到系统中去。(3)在系统的 ACAD.LSP 或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。(4)通过系统对话框设置某些路径。这些操作在程序开发成功后向其它 AutoCAD 系统上安装应用,特别是需要大批安装时,需

2、要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。为此笔者用 VC+开发了一套自动安装程序,使原本需要五、六分钟的人工操作在十几秒内即可自动完成。 一、 基本思路 整个安装程序遵循以下思路:1 ) 首先获得所在机器 AutoCAD2000 系统的安装路径;2 ) 寻找菜单文件 AutoCAD2000supportacad.mnu,打开文件并将要添加的内容加至末尾;3 ) 寻找 LISP 文件 AutoCAD2000supportacad2000doc.lsp,打开文件并将要添加的

3、内容加至末尾;4 ) 创建一个预先命名的子目录,将所有二次开发形成的各类文件拷入;5 ) 给出信息框,告知安装成功,如有问题则告知安装失败。 需要指出的是,在添入 acad2000doc.lsp 的内容中须有如下语句: (command“_menu”(strcat (getvar menuname) .mnu)),目的是为了强制执行菜单文件装入命令,将改动后的 acad.mnu 文件编译后装入。 另外,在添入 acad2000doc.lsp 的内容中还有一赋值语句,将准备创建的包含所有二次开发生成文件的子目录全路径名赋予一全局变量,以供二次开发程序在需要时调用,从而避免了在 AutoCAD 环

4、境下交互设定路径的麻烦。 二、 实现方式及关键函数 为获得 AutoCAD2000 的安装路径,需要利用 WINDOWS 系统注册表的有关功能。 首先通过 RegOpenKey 函数打开注册表:HKEY hKey;LONGret=RegOpenKey( HKEY_LOCAL_MACHINE, SoftwareAutodeskAutoCADR14.0ACAD-1:804, 其中第一参数 HKEYLOCALMACHINE 为注册表中预定义的主键句柄,第二参数为注册表中 HKEYLOCALMACHINE下的子键内容,第三参数 hKey 将返回一子键句柄,用于接下来的键值查询。若该函数运行成功,将返回

5、一长整型数ERRORSUCCESS。 接下来利用 RegQueryValueEx 函数进行键值查询:DWORD dwType=REG_SZ;BYTE szData100;DWORD dwSize=sizeof(szData);If (ret=ERROR_SUCCESS)ret=RegQueryValueEx(hKey, AcadLocation, 0, 其中第一参数 hKey 为由 RegOpenKey 函数获得的欲查询的子键句柄;第二参数“AcadLocation”为欲查询的键值名;第三参数为保留项,要求添 0;第四参数为键值数据类型;第六参数为键值缓冲器容量;最关键的是第五参数 szDat

6、a,欲查询的键值结果将由其带回,该键值即为所需要的 AutoCAD2000 的安装路径。 以上涉及到的有关注册表中主键、子键、键值名、及键值的关系可通过下列方法由 WINDOWS 系列注册表查出:单击“开始”“运行”添入“regedit”“确定”“HKEY_LOCAL_MACHINE”“Software”“Autodesk”“Autocad”“R15.0”“ACAD-1:804”“AcadLocation”“e:autocad2000”。其中的键值名“AcadLocation”所对应的键值为“e:autocad2000”,就是 AutoCAD2000 的安装路径,在不同的机器上可能内容不同。

7、键值查询函数若运行成功,将返回长整型数 ERRORSUCCESS。 下面可利用 szData 带回的路径名与已知路径名组合成全路径从而打开菜单文件 acad.mnu 添加内容:char szRootName100=supportacad.mnu;if (ret=ERROR_SUCCESS)1strcat(char*) szData, szRootName); 现在 szData 中装有 acad.mnu 的全路径,以下操作将打开该文件并添入内容:HANDLE hfile=CreateFile(char*) szData, GENERIC_READ|GENERIC_WRITE, 0,NULL,

8、OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);If(hfile!=INVALID_HANDLE_VALUE)if (0xFFFFFFFF!=SetFilePointer(hfile, 0, NULL, FILE_END)char szBuf1000=*POP12*CAM&CAM- 基本参数 卡盘原点ccchuck_datam 换刀原点 cctool_datam 刀具管理 创建新刀 cccreate_new_toolCAD 图档管理系统 看 cad 图纸前请先下载并安装 autodesk 公司的 whip.exe 下面是从 DB2 库中查询到的结果%RO

9、W$(rename2)$(V1)看具体图纸%HTML(REPORT)queryData()%- 下一步就是在浏览器上显示 CAD 图纸了,一般我们可以选择很多控件,因为 dwf 文件显示速度越是显示 dwg的七倍,所以在这里假设我们使用 Autodesk 公司的 whip!您可以访问http:/ 下载它,每个浏览器用户只需要安装 whip,就可以直接用浏览器观看任何 dwf 文件了,netdata 在处理大对象时,sql 语句用 db2 中取出 BLOB 对象即 dwf 格式的 cad 图纸,并不给它原来的文件名,而是给它一个临时文件,而且没有后缀名,并省缺的把它保存到你 web server

10、 的根目录的 tmplobs 目录下,如果你用 IIS 的话,一般就在 C:inetpubwwwroot mplobs 下,而在已经安装了 whip 的浏览器端,如果最后返回的文件不是 dwf 后缀的话,就不能正常显示 dwf 文件,所以我们最后要把这些文件改一下文件名,上面脚本中DTW_rDELSTR($(V2), 1, 9)意思是把变量$(V2)从第一个字符到第九个字符全删除,因为$(V2)本身值是类似/tmplobs/?的字符串,当脚本执行 NT 外部命令 rename 时,“/”应该是“”,所以要把“/”全删除,如果您用基于AIX 或 Linux 的 Net.data 的话,就不用担心

11、了,另外,如果您的大对象是 Net.data 认识的 jpg 或 gif 等文件类型的话,就不用改名字了。 - 现在您就可以打开浏览器输入 URL,如果您都按省缺配置的话,应该输入,http:/172.23.160.6/cgi-bin/db2www.exe/pic.d2w/report 就可以看到两张 cad 图片在网页上显示出来了。 - 以上是 Net.data 显示查询 CAD 图纸等大对象的例子,您可以把它利用到电子商务的商品图片显示等等方面,最后,建议大家在使用 BLOB 时多考虑一下系统性能。您可以访问以下网站获取更多有用信息: - http:/ AutoCAD 同一张图上自动实现不

12、同的标注比例 做机械制图时可能经常遇到这样的问题,装配图或者零件图的某一部分经常需要局部放大。出图时也需要出在同一张纸上。如果不涉及标注,可能并没有太大的问题,但常常不得不处理标注的比例。Auto CAD 标注时可以选择自动测尺寸标注,这样当改变标注线位置时标注的尺寸数值自动变化。如果不是自动测尺寸,而是强行输入一个数值字符串,那么如果尺寸线位置变动(比如你改变设计尺寸),标注数值是不变化的,这不符合客观情况。 在同一张图上标注不同比例的实体时,虽然作为 Auto CAD 实体,他们的大小是不一样的,但作为实际设计模型,尺寸是一样的,不过是局部放大显示罢了!假如使用自动测尺寸,照顾了原图就照顾

13、不了放大图,必须有一个图是使用不自动检测尺寸,这对改图又改尺寸标注是很不方便的。如果开不同视窗,又会涉及到文字比例问题,因为图放大了文字也放大,而实际需要的是图放大而文字不放大。 解决这个问题有一个方法可以参考,就是使用 DIMSCALE 系统变量控制,例如,我们需要将原图一部分局部放大10 倍,原图标注尺寸是 150 的地方,在放大图上也是 150,虽然图变大了 10 倍,绝对不会检测成 1500, 我们只要在标注时将 DIMSCALE 系统变量设成 0.1 就可以了。 改变系统变量固然可以解决尺寸自测问题,但是,DIMSCALE 变量是全局的,他将影响以后所有的标注,如果在实际操作时反复切

14、换这个变量,又为绘图添加很多新的麻烦,所以,下一步就是考虑如何自动切换标注比例问题。 以笔者的成功范只要指例,采用下列方式达到自动切换标注比例的功能,定了一个矩形框,确定在此框内的比例,以后凡是在此框内绘图都自动设置 DIMSCALE 变量,在框外绘图标注比例会设回去。 第一 : 截获 Auto CAD 鼠标按键消息;重新编制窗口处理过程,采用 SetWindowLong 将此过程附加到 Auto CAD绘图窗口。 第二 : 在窗口处理过程里面判断鼠标的位置,是否落在规定的矩形框内,如果在则改变系统变量。 第三 : 为了记录特定的矩形框位置,设计了一个新实体,新实体可以显示可以隐藏,可以移动、

15、缩放,但不能随意删除,必须用指定的命令才可删除,如果使用 Auto CAD 命令删除它,在存盘时可以恢复,并设为隐藏状态,新实体的一个重要属性就是标注比例,可以随时改动,并影响框内所有实体。 综上所述,采取这几个简单的技术,就实现了在同一张图上自动实现不同的标注比例AutoCAD 至 PhotoShop 的几种图形传输方法机械工业部第五设计研究院计算中心近年来,随着计算机硬件设备与软件的不断发展,电脑效果图己在建筑行业的 CAD 应用中普及开来。电脑效果图的制作一般可分为以下几个步骤: 建立建筑物的外观模型。由于 AutoCAD 具有精确、易于定位与修改的优点,又可利用前期的设计成果,因此本阶段常使用 AutoCAD 建立模型,并将模型转化为 DXF 格式以备输出。在场景中加入合适的摄象机、灯光,并为建筑物赋予材质,最后渲染为一个图像文件。常用的软件为 3DS4、3DSMAX、3DSV

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号