Visual Basic与AutoLisp在工程图表批量打印中的应用

来源 :科学与财富 | 被引量 : 0次 | 上传用户:Mijieer
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:一個公路工程项目设计成果往往包含百上千张图纸,图纸打印是一项既繁琐有费时的工作,为提高设计人员大批量打印设计图纸的工作效率,本文采用Visual Basic及AutoCAD软件提供的AutoLISP二次开发语言编写了不开图自动批量打印AutoCAD及Excel图纸的程序。程序需要用多种语言进行混合编程,如何充分发挥各种开发语言的优点,并在在各种语言之间进行信息传递、分工合作,使开发的程序成为一个有机的整体是一个难点。
  关键词:Visual Basic;AutoLisp;批量打印
  1 引言
  AutoCAD软件是目前世界上主要的计算机辅助设计软件,以其强大的通用图形功能而被广泛地应用于各个领域,但由于其通用性强,从而造成针对某一具体应用的特殊功能较弱。一个公路项目的设计成果往往包含百上千张图纸,使用其自带的打印功能打印图纸存在操作繁琐、工作效率较低等诸多问题,需要花费设计人员大量的时间和精力。为了弥补这一缺陷,可采用ActiveX Automation技术,利用其他高级语言二次开发AutoCAD软件,构成用户自己的专业软件。经过认真研究,本文采用Visual Basic及AutoCAD软件提供的AutoLISP二次开发语言编写了不开图自动批量打印AutoCAD及Excel图纸的程序,实现了对工程图表自动化批量打印,大大提高了工作效率。
  2 Visual Basic及AutoLISP语言简介
  Visual Basic 是一种由 Microsoft 公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言,DDE是Visual Basic应用程序和AutoCAD通信的唯一方法。如果要在Visual Basic编制的界面中(该界面的窗体名为AdsFuncFrm)访问AutoCAD,那么需要在Visual Basic界面中形成一个文本框,名字为AcadText,作为特定的通道,用来完成Visual Basic和AutoCAD之间的连接。它可以通过一个公用函数LinkApp()来实现。
  AutoLISP是嵌于AutoCAD内部的计算机语言,可直接调用几乎全部的AutoCAD命令,既具备一般高级语言的基本结构和功能,又具有一般高级语言所没有的强大的图形处理功能,是当今CAD软件中被广泛采用的语言之一。Autodesk公司在AutoCAD内部嵌入AutoLISP的目的是让用户充分利用AutoCAD进行二次开发,实现直接增加和修改AutoCAD命令,扩大图形编辑功能,建立图形库和数据库,并对当前图形进行直接访问和修改,开发CAD软件包等,非常适合具有一定专业知识的设计人员结合实际工作需要来编写相应程序来简化繁琐又费时的工作以提高工作效率。
  3 不开图自动批量打印AutoCAD及Excel图纸的实现
  3.1 程序编制总体思路分析
  程序的主界面编制、主要参数输入及设置在Visual Basic完成,主要思路如下:
  启动程序,读取默认参数设置文件,设置打印机、打印份数、打印样式、打印空间、打印图块等参数初始值,初始化程序。
  通过添加文件或读取列表命令按钮添加cad或excel文件并实时显示在主界面列表框中,同时可通过删除按钮删除文件、保存列表按钮保存文件、移动按钮改变文件顺序等。
  根据实际需要读取参数设置文件或对手动对默认参数进行修改、保存等。
  打印文件列表及打印参数准备完毕后点击批量打印按钮,自此程序开始全自动操作,依次按顺序自动打开文件,并判断文件类型,根据设置对不同类型的文件执行不同的操作。
  若勾选打印dwg文件则由CreateObject("AutoCAD.Application")函数创建与AutoCAD的链接并自动打开第一个dwg图形文件,然后通过TEXT.LinkExecute()函数向cad发送指令,加载批量打印lisp程序,全图搜索是否有预设的图框图块或多段线,若有则自动计算图框角点坐标,确定图框大小及打印比例和打印方向,按照一定顺序依次打印,打印完毕后自动关闭并打开下一个cad图形文件;若没有则直接关闭后打开下一个cad图形文件。
  若勾选打印xls文件则由CreateObject("excel.application")函数创建与Excel的链接并自动打开第一个xls文件,根据设置情况只打印当前工作表或打印整个工作薄,打印完成后自动关闭并打开下一个xls文件。
  3.2 程序界面设计及主要控件功能介绍
  程序界面主要分为文件输入及编辑区域、AutoCAD及Excel文件打印设置区域,界面内各主要控件功能介绍如下表:
  3.3 程序代码设计
  本程序代码主要包括557行vb代码和183行lisp代码,由于代码较长,本文重点介绍接口程序代码。在利用VB编写程序之前,要在VB环境中引用AutoCAD及Excel对象库。根据安装的软件版本不同,引用的库也是不同的,这里以cad2008和excel 2010为例,具体实施步骤是在VB语言编程环境中选择菜单栏“工程”中的“引用”,在弹出的列表框中分别选择“AutoCAD2008 Type Library”和Microsoft Excel 14.0 Object Library的复选框,并按“确定”键,这样就可以开始使用cad和excel了。其接口程序如下:
  Public Sub ConnectToAcad() ‘vb连接cad接口程序
  On Error Resume Next
  Set acadApp = GetObject(, "AutoCAD.Application")
  If Err Then   Err.Clear
  Set acadApp = CreateObject("AutoCAD.Application")
  If Err Then
  MsgBoxErr.Description
  Exit Sub
  End If
  End If
  acadApp.Visible = True
  End Sub
  Public Sub ConnectToExcel()‘vb连接excel接口程序
  Dim xobject As Excel.Application
  Set xobject = CreateObject("excel.application")
  xobject.Visible = True
  End Sub
  3.4 程序运行实例
  恩施某二级公路绕镇工程,路线全长约7公里,施工图设计文件共有图纸701页,绝大多数为AutoCAD及Excel文件,其中第三篇(路基路面)包含32个文件共计125张图纸。以打印AutoCAD文件为例,分别采用软件自带命令及本程序進行测试,若采用软件自带命令打印,需计算打印比例、点选打印窗口、设置纸张大小及打印样式,打印一张图纸平均耗时约30秒钟,完成上述125张图纸的打印工作耗时约60分钟,同时需点击鼠标上千次。而采用本程序选择文件及设置参数只需点击鼠标10余次,耗时约30秒钟,之后程序不再需要人工操作,开始全自动批量打印,耗时约2分钟。二者对比即可发现,本程序优势非常明显。
  4 结语
  目前,AutoCAD与Excel软件已经被广泛地应用到了工程设计的各个领域,成为广大工程技术设计人员的一个重要绘图及制表工具,面对成百上千的图纸,采用软件自带功能打印时,每次均需要设置相关打印参数,对dwg文件还需要点选打印范围及设置打印比例,操作过程较为繁琐,更是费时费力。因此开发出AutoCAD与Excel文件不开图自动批量打印程序具有很高的实用价值,本程序在使用时只需结合实际需要对参数进行一些简单的设置,具有操作简便、自动化和智能化程度较高,输出图纸便捷等优点,实现了对以往许多繁琐复杂的手工工作的自动化、批量化处理,大幅提高了工作效率。
  参考文献
  [1] 郭秀娟, 等. AutoLISP语言程序设计[M]. 北京:化学工业出版社, 2008
  [2] 陈伯雄, 冯伟. VisualLISP程序设计--技巧与范例[M]. 北京:人民邮电出版社, 2002
  [3] 吴永进, 林美樱. AutoCAD完全应用指南.AutoLISP+DCL+Visual LISP程序设计篇[M]. 北京:科学出版社, 2009
其他文献
一、目前母本去雄的做法及存在问题 1.分户去雄。即家家制种,户户去雄。玉米制种田母本去雄具有极强的时间性和技术性,鉴于各制种农户间劳力强弱、去雄技术熟疏、质量意识浓
摘 要:预应力技术已经成为道路桥梁施工中常见技术,随着经济的发展,对外联系的紧密,公路、铁路、桥梁四通八达,在水泥路、沥青石子路面、混凝土桥梁加固、道路维修等方面预应力技术都获得广泛的应用。而此技术的快速发展,也推动了道路桥梁的发展。本文在这里主要分析本技术的应用范围以及此技术在施工中的应用,并对应用此技术对保证施工质量的常用措施,供施工人员和技术人员参考。  关键词:预应力 施工技术 道路桥梁
绿色化学是设计研究没有或只有尽可能小的环境负作用,并在技术上、经济上可行的化学品和化学过程.
摘 要:对于初中学生来讲,数学学科的学习难度较大。减轻学生的负担,是教学改革的重要目标。让学生不再感受到数学学习压力,就是数学教学中为学生减轻负担的重要表现。分层教学法,从学生的实际水平出发为学生设置学习目标以及学习内容,有利于学生高质量地完成数学学习任务,促进其数学学习兴趣与效率的提高。本文以初中数学分层教学分析为题,对分层教学法的应用方法进行分析。  关键词:初中数学;分层教学;心得  在传统
Abstract:It is widely accepted that e-banking leaves great impact on individuals and bank themselves in the past few years.E-banking not only enables banks to gain more flexibility and more services,b
期刊
目前,全国有不少企业报。这些小报,在企业党委的领导下,立足本企业,宣传党的路线、方针、政策,传播爱国主义和共产主义思想,反映舆论,传递信息,为办好社会主义企业起了一定
本文主要介绍了“5.12”汶川大地震中,北川羌族自治县气象记录档案损毁情况,以及挖掘、修复等抢救过程和方法,最后从组织保障、气象记录档案保管体制改革等多方面总结了经验
摘 要:作为小学英语教师,如何结合所学文本来确定教学目标,如何设计有效性复习课,从而更好地达成教学目标。本文从教学目标的确定,复习课应遵循的原则、复习课有效性设计,让学生通过复习,对所学知识进行全面巩固,形成知识结构和有效学习策略,培养学生自主学习能力,促进其心智与个性发展,是笔者所在地区近几年来一直在研究探索的问题。  关键词:教学目标;复习课应遵循的原则;复习课有效性设计;有效学习策略  一、
摘 要:电梯是现代社会十分常用而又非常重要的运输设备。在电梯的各主要部件中,轿厢是受井道结构形式影响最大的部分,经常需要进行重新设计。本文从电梯轿厢参数化设计系统的特点入手,提出了基于参数化设计的机械产品CAD方法,将有效提高电梯轿厢模块研发的效率,以供参考。  关键词:电梯轿厢;参数化设计;模块化;CAD  随着国民经济的快速发展,电梯应用越来越广泛,给人们的工作和生活带来了极大的便利。同时,也
摘 要:航道是内陆的通航水域的总称。航道是我国重要的内陆航运基础设施,是沟通内陆河道周边经济发展的重要媒介。但是今年来,我国航道的运营出现了很多问题,其中包括自然原因和人为因素。这些问题影响了航道的正常通航能力,因此对航道的修护和建设施工问题尤为重要,本文阐述了航道施工的一些措施,以及对于维护航道运营的一些思考  关键词:航道;工程施工  航道的质量关乎着内陆航运得能力,在航道工程施工重要采用良好