欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 计算机应用 > 关于AutoCAD图形文件中编组的探讨

关于AutoCAD图形文件中编组的探讨

日期:2023-01-24 阅读量:0 所属栏目:计算机应用


摘 要:AutoCAD用户在工作中经常遇到编组丢失和空编组无法清理的问题,本文就这两个问题进行研究,找出编组丢失的原因,提出了3种清理空编组的方法,其中在DXF文件中清理编组是笔者第一个提出,并验证了的方法。

关键词:AutoCAD;编组;空编组;清理;Visual LISP;GROUP; DXF
一、 引言
  AutoCAD有良好的界面,具有广泛的适应性,在工程建设、机械制造等行业有广泛的应用。AutoCAD从14.0版本开始出现编组的概念,所谓编组就是把图形中的几个实体编成一个组,既可以单独编辑其中一个实体,也可以整组一起选择。AutoCAD通过编组给用户提供了一个便捷的方式把相关实体或图形与属性注记关联起来,极大的方便了图形的编辑和属性管理。编组给用户带来便捷的同时,也因为容易丢失编组和低版本CAD不易清理空编组的问题,给用户带来烦恼。通过笔者多年使用AutoCAD的经验,总结出解决编组问题的方法。
二、 编组创建和管理
  AutoCAD中使用“GROUP”命令创建和管理编组,编组中的实体可以是屏幕上任何可以选择的实体,每个实体有自己的图层和属性。编组分为有名称编组和无名称编组两种。AutoCAD的系统变量“PICKSTYLE”控制编组的状态,当“PICKSTYLE”设置为“1”时,启用编组,选择编组中的任何一个实体,则整个编组都被选中。当“PICKSTYLE”设置为“0”时,不启用编组,可以删除编组中的任意一个实体,不应编组中的其它实体,编组信息也不丢失。编组虽然不像其他实体那样看得见,但AutoCAD确实把它当成对象处理,通过程序可以访问到图形文件中的编组。
三、 编组丢失的原因
  AutoCAD中图块和参照的图形只有用特定的命令才能把它炸开,但编组却经常丢失,原因有许多:
  (一) 版本转换时丢失。把数据另存到14.0以下版本DWG或DXF数据时编组被忽略,从而造成编组丢失。
  (二) 插入图块时,启用“分解”选项或在插入的文件名前加上“*”,则插入的图块被打散,编组不随图块一起插入,从而造成插入部分图形编组丢失,但图块被插入以后,再用“Explode”命令打散,编组不丢失。
  (三) 使用“WBLOCK”命令写块保存得到的图形文件不保存编组信息。
  (四) 通过编程方法可以在图形文件中直接删除编组信息。
  在平时的编辑工作中,只有我们注意以上操作,就可以大大减少编组丢失的可能。
四、 空编组的清理
  AutoCAD从14.0版本开始提供创建编组的命令,但直到2006版本都未提供编组的删除命令,编组内的实体被全部删除后,编组还存在图形中,空编组越积越多,导致图形文件越来越大,运行速度降低。经笔者研究,发现可以通过以下三种方法清理空编组。
  (一) 用AutoCAD高版本清理空编组。笔者目前发现AutoCAD 2012版本打开图形文件时会自动清理空编组,图形文件较小时,使用这个方法清理很适合,但目前绝大部分用户并没有升级到AutoCAD 2012版本。
  (二) 通过程序在图形文件内清理空编组。下面笔者用Visual LISP语言为例说明该程序的设计思路:用函数namedobjdict找到非图形类实体的根图元,通过dictsearch函数在根图元中找到所有的编组,逐一检测编组中是否含有实体,如果没有实体,则为空编组,用entdel函数删除。当文件中编组的数量较多,调用函数dictsearch时,因为要查找并返回所有的编组,所以占用大量的内存和耗费大量的时间。
  (三) 通过程序在DXF文件中清理空编组。DXF是通用的图形文件交换格式,其能完整地表达AutoCAD的图形文件,可以通过DXF文件清理图形中的空编组。程序设计的思路如下:把当前图形另存为DXF文件(为不丢失信息,建议保存为相应版本的DXF文件),逐行读取DXF文件,当读到的行内容不为“GROUP”时,写入新文件,当读到的行内容为“GROUP”时,则检测内容为“GROUP”的行与内容为“ 0”的行之间所有的行是否存在内容为“340”的行,如果没有则为空编组,不写入文件,否则要把这几行按顺序写入新文件。Visual LISP程序代码如下:
(defun c:delgroup-dxf ()
  (setq name (getvar ""dwgname"") path (getvar ""dwgprefix""))
  (setq fr1 (strcat path (vl-string-right-trim "".dwg"" name) "".dxf""))
  (setq fw1 (strcat path (vl-string-right-trim "".dwg"" name) ""-""))
  (command ""_.save"" fr1  """")
  (setq fr (open fr1 ""r"") l1 (read-line fr) fw (open fw1 ""w""))
  (while l1
    (if (not (= ""GROUP"" l1))
      (write-line l1 fw)
      (progn
      (setq ll (list l1) l1 (read-line fr) ft340 nil)
      (while (not (= ""  0"" l1))
        (setq ll (cons l1 ll))
        (if (not ft340)
              (if (vl-string-search ""340"" l1)(setq ft340 T))
          )
        (setq l1 (read-line fr))
      )
    (setq ll (cons l1 ll))
    (if ft340 (progn
      (setq i 0 n (length ll) ll (reverse ll))
      (repeat n
        (setq l2 (nth i ll) i (1+ i))
        (write-line l2 fw)
      )
    )) 
      )
    )
    (setq l1 (read-line fr))
  )
  (close fr)
  (close fw)
)
  程序运行结束后生成一个不含空编组的DXF文件。
五、 应用实例
  笔者是测绘工作者,在测绘工作中大比例尺地形图测绘一般采用AutoCAD成图,南方CASS是一款在AutoCAD上进行二次开发的最常用的数字化地形地籍绘图软件。笔者对一个用南方CASS做出来的16.9M图形文件(2004版本,含有43.4万个编组,其中42.2个为空编组),在AutoCAD 2006分别用上述后两种方法进行空编组清理,在图内清理耗时6341秒,在DXF文件中清理耗时仅110秒。前文提到的109M大小的DWG文件,只能在DXF文件中清理空编组。
六、 结束语
  虽然AutoCAD 2012版已经提供了清理编组的方法,但笔者探讨方法也是有用的,特别是低版本用户,或者图形编组较多的情况下,用这些方法清理空编组效率更高。本文所探讨的编组丢失的原因对所有的AutoCAD用户都是有益的参考。
[参考文献]
[1] 陈伯雄 冯伟.Visual LISP for AutoCAD 2000 程序设计—从学会到用好[M].北京:机械工业出版社,2000.
[2] 陈伯雄 冯伟.Visual LISP程序设计—技巧与范例[M].北京:人民邮电出版社,2002.
[3] 郭朝勇等.AutoCAD R14 二次开发技术[M].北京:清华大学出版社,1999.
[4] 张国权等.AutoCAD 2006 应用教程[M].北京:电子工业出版社,2007.
[5] Autodesk,AutoCAD R14联机用户手册
[6] Autodesk,AutoCAD2006联机用户手册
[7] Autodesk,AutoCAD 2012联机用户手册 本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/243043.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学