ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:29KB ,
资源ID:1719996      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1719996.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Autocad二次开发在钢结构深化设计中的应用.doc)为本站会员(99****p)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

Autocad二次开发在钢结构深化设计中的应用.doc

1、Autocad 二次开发在钢结构深化设计中的应用摘要:目前,在厂房等钢结构的细化过程中广泛采用 Autocad进行绘图。本文在 Autocad基础上,利用其自带的扩展模块 Autolisp对其进行二次开发,在 AutoCAD的绘图环境中建立零件的数据库。重点介绍了开发的过程,数据的存储格式,以及与数据相关的操作函数,给出了关键代码等。 关键词: 钢结构深化设计 二次开发链表 DCL 中图分类号:TU291 文献标识码:A 前言 Autocad 是美国欧特克公司开发的大型绘图软件,该软件因其强大的图形绘制及图形编辑功能而广泛的应用于建筑,机械,化工等各个行业。在厂房等钢结构的深化设计过程中,也广

2、泛采用该软件进行放样。但是,该软件属于通用的绘图软件,并非专业为钢结构放样设计。通过对其进行二次开发,可以在 AutoCAD中形成有利于深化设计的环境。如在对钢结构完成深化设计后,经常有生成材料明细表,材料的统计(如统计某种型号钢材的使用量)等工作。以上过程都会涉及零件信息的录入、整理、列表,零件图形的绘图等的内容。由于 AutoCAD中没有相应的模块,人工操作起来费时费力,效率低,并且容易出错。解决办法是,在 AutoCAD中建立统一的零件数据库,当需要时可以直接的调用。 Autolisp 是 Autocad自带的二次开发软件。LISP 语言具有语法简单,编写程序便捷、灵活,数据类型丰富等特

3、点,适用于大多数初学者。利用 Autolisp可对 Autocad的数据库进行修改,也可用于绘制复杂的图形。本文利用 Autolisp对 Autocad进行二次开发,在 Autocad中形成一个零件的数据库。以这个数据库为基础,可以完成零件清单的自动生成,零件图形的自动绘制等工作。 关键技术 Autocad 图元 在 Autocad中,最基本的图形对象叫图元,图元是以图元表的形式存在于进程中。图元表记录着图元的名字、类型、几何数据、图层、颜色等信息。如直线在内存中存储的格式为:(-1 . )(0 . “LINE“) (330 . ) (5 . “4E6F“)(100 . “AcDbEntity

4、“)(67 . 0)(410 . “Model“)(8 . “0“) (100 . “AcDbLine“) (10 -14068.7 18786.4 0.0) (11 -2194.93 21807.6 0.0) (210 0.0 0.0 1.0)。其中,代码 8表示图元位于 0图层,代码 10和 11分别给出了直线的起点及终点信息,代码 100表示图元的类型为直线。关于各个组码所代表的意义,可以在 AutoCAD DXF参考手册查到。通过修改或创建图元表,可以实现编辑或生成图元。 Xrecord 数据 Xrecord 是 Autocad提供给用户的另外一种图元形式,和其他类型的图元相同,该类型

5、的图元在内存中也是以数据表的形式进行存储。但是该类型的数据不依附于任何图形对象,独立的存在于当前 DWG进程中。用户可以根据自己的需要,借助 Xrecord数据,描述自己需要的数据类型。创建这样的 Xrecord需要有两部分:规范部分和用户部分。规范结构部分,必须是 AutoCAD能够接受的内容,一般来说要有对象名和数据子集名。例如:(0 . “XRECORD“)(100 . “AcDbXrecord“) 用户数据部分就比较随意了,可以是任何 VLISP能够处理的数据。为了能够用函数建立这些数据,又能被顺利提取和编辑,应当按照 AutoCAD对象数据表的结构组建,并按照 DXF组码以及配套的数

6、据类型填写。DXF 组码的可用范围是 1-369,原则上一个组码只能出现一次。 AutoCAD 词典对象 AutoCAD 词典对象(AcDbDictionary)是另外一种不依附于任何图形的图元对象,Xrecord 数据必须托付于某个词典对象才能存在于进程中,因此 AutoCAD词典对象可以看作 Xrecord数据的集合。和 Xrecord数据不同,AutoCAD 词典对象没有用户数据部分,用户可以创建或根据名称找到某个 AutoCAD词典对象,但是不能加入任何的用户数据。 数据架构的提出 钢结构的生产主要由下料、组立和拼装等步骤组成,即利用剪板机、切割机等将原料(如钢板、角钢、工字钢等)加工

7、成所需规格后,再到拼装平台上组装成钢构件。根据生产的实际需要,在图纸完成分解后,要将零件的加工图、钢架图(零件的组装图)交由不同的工段。为了便于以后的生产,通常要将零件进行编号。零件的编号主要由零件号码及钢架号码(零件的归属,可以看作零件的集合)组成。根据两种数据的不同特点,零件宜采用 Xrecord数据,钢架宜采用 AutoCAD词典对象。 建立钢架的词典。 本程序将为绘图中的每一榀钢架建立单独的 Autocad词典对象,该词典对象采用钢架的名称进行命名。不同的钢架词典之间采用单向链表形式相联系,通过在上一个词典中记录链表中下一词典对象的句柄建立链表。链表的起始单元为 Frame_list_

8、start,终止单元为Frame_list_end,链表中除了表头及表尾以外的其余元素均按字母的ASCII码进行排列。 由于 Autocad词典对象本身不具备数据扩展的功能,钢架的名称、数量,以及指向下一链表单元的指针(即下一词典对象的句柄)均存在于以“index”为索引的 Xrecord数据中。链表的结构如图一所示。 图 1 建立零件信息的 Xrecord数据 钢结构加工中的零件一般由各种型钢(如钢板、角钢、槽钢,工字钢等)经切割、钻孔等工艺加工而成,因此形状一般比较简单,用原料的规格、零件的长度,零件的厚度等参数即可完成表述。在本程序中,每个 Xrecord数据代表一个零件。通过对 DXF

9、组码设定不同的意义,完成零件信息的表述。关于不同 DXF组码在本程序中代表的意义,可以在图表一中详细的查到。 为了便于零件的查询、删除等操作, 不同的零件在 Autocad词典中采用单向链表相联系。其中表头元素part_list_start,及表尾元素 part_list_end在建立钢架词典的时候同时建立。指向指针存在于组码为 105的表中。 表格 1 数据类型 代表意义 0 字符串 子类标记 1 字符串 零件名称 2 字符串 材料类型 3 字符串 零件规格 5 字符串 图元句柄 40 双精度浮点值 长度 41 双精度浮点值 宽度 42 双精度浮点值 厚度 60 整数值 数量 105 句柄值

10、的字符串 指向指针 关键代码 在本程序中,不同的钢架词典之间以及不同零件(在同一钢架中的)之间采用链表相互联系,因此程序的核心在于链表的操作。本文将重点对如何在链表中插入、删除元素进行说明。 将新建钢架词典加入链表中 (defun insert_frame_to_frame_list(obj_name/ )(setq this_beam “frame_list_start“)(setq next_beam (get_next_frame_name this_beam)(while (not (or (vla-object(handent (cdr (assoc 105 (dictsearch(

11、cdr (assoc -1 (dictsearch (namedobjdict) name_of_this) “index“ ) ) 从链表中删除钢架 (defun delete_frame_from_list( obj_name/)(setq x1 “frame_list_start“)(setq x(get_next_frame_name x1)(while (not (or (= x obj_name) (= x “frame_list_end“)(setq x1 x)(setq x(get_next_frame_name x) ) (if (= x “frame_list_end“)(

12、princ“未在列表中找到要删除的元素!n“)(prong(setq x1_handel_next(get_next_frame_handel x)(change_handel_next x1 x1_handel_next)(dictremove (namedobjdict) x) ) ) ) 建立用户界面 为了方便用户建立和修改数据,本程序采用了对话框的形式。对话框可以采用 DCL语言进行书写。由于篇幅有限,关于对话框的相关代码就不在给出。用户可在对话框中完成钢架、零件等信息的建立和修改,以及表格的绘制等操作。图二,和图三给出了主要的对话框。 图 2 图 3 结束语 本文通过在 AutoCAD中建立零件数据库,提出相关的操作函数,实现了生成零件的明细表等其他功能。通过实践中的应用表明,在使用本程序后,大大提高了数据操作的准确性,提升了工作的效率,并取得良好的经济效益。 参考文献 1 Autolisp 语言程序设计;北京:化学工业出版社,2008 2,AutoCAD Activex 二次开发技术;北京:国防工业出版社,2005

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。