• 图纸下载
  • 专业文献
  • 行业资料
  • 教育专区
  • 应用文书
  • 生活休闲
  • 杂文文章
  • 范文大全
  • 作文大全
  • 达达文库
  • 文档下载
  • 音乐视听
  • 创业致富
  • 体裁范文
  • 当前位置: 达达文档网 > 生活休闲 > 正文

    基于AutoCAD二次开发批量绘制设备铭牌

    时间:2020-10-31 10:44:48 来源:达达文档网 本文已影响 达达文档网手机站

    张培媛 秦少东

    摘要:针对工作实际中批量制作设备铭牌的需要,采用Excel与AutoCAD相结合的方法,利用Visual Basic将两个软件建立连接。Excel表格中列出需要制作铭牌的各项信息,AutoCAD利Visual Basic编写的程序将用Excel中内容放在指定的位置,从而实现批量制作铭牌。

    关键词:批量制作铭牌;AutoCAD;Visual Basic;二次开发

    中图分类号:TP391.7 文献标识码:A 文章编号:1007-9416(2020)02-0122-02

    0 引言

    AutoCAD是现在使用人数最多的CAD软件,其交互菜单和命令行的设计使得很多非计算机专业人员也能很快入门这个软件,从而提高工作效率。在我们平时的工作中,每个行业都有其特殊的一些重复工作,这时就可以利用AutoCAD的二次开发,快速而准确的完成这些重复工作。

    1 准备数据与图形模板

    先按照Excel表格中的字段名称A列序号,B列为设备名称,C列为规格型号,D列为制造厂家,E列为出厂日期,F列为出厂编号。在CAD中绘制一个示例模板,以为之后的批量制作提供参考[1-3]。表格中共有5个制作铭牌使用的相关信息,即设备名称,规格型号,制造厂家,出厂日期和出厂编号,据此画出图1所示的模板。绘制此模板需要注意,模板边框是多段线,方便之后复制时设置选择条件。

    2 编写程序

    2.1 編写Excel与AutoCAD连接程序,获取铭牌内容

    激活要与之通信的Excel应用程序,通过定位获取表格的最后行数,将表中数据放入数组中。主要程序如下:

    Set ExcelApp = CreateObject("excel.application")

    lj = ExcelApp.Application.GetOpenFileName _

    (FileFilter:="制作铭牌的数据 ,*.xlsx; *.xlsm; *.xlsb;*.xls")

    ExcelApp.Workbooks.Open (lj)

    ExcelApp.Visible = 1

    ExcelApp.ScreenUpdating = False

    Set excelsheet = ExcelApp.ActiveWorkbook.sheets("数据表格")

    endA = excelsheet.usedrange.Rows.Count

    arrex = ExcelApp.ActiveWorkbook.sheets("数据表格").range("A2:F" & endA)

    2.2 过滤目标多段线

    由于一个图纸中可能会出现多种规格的铭牌,所以针对目标铭牌模板,可以建立一个选择集,由用户在屏幕框选,目标是获取其选择内容中多段线,同时获取到该多段线的外边框最大最小坐标。主要程序如下:

    Set SSetbh = ThisDrawing.SelectionSets.Add("K_SSET")

    fType1(0) = 0:
    fData1(0) = "LWPOLYLINE"

    SSetbh.SelectOnScreen fType1, fData1

    Set Ent = SSetbh.Item(0)

    Ent.GetBoundingBox minExt, maxExt

    2.3 批量绘制铭牌

    利用获取到数组中的数据,结合步骤1中提供的铭牌模板,由用户指定排图的起点坐标从而确定排图位置,实现将获取的数据批量绘制到图形文件中。在本例中设置的参数为图纸间隔是20,插入文件距离底边是10,每行间距都是10,文字高度是3,写文字的框宽度是55。需要注意的是Y向是间距加文字高度。主要程序如下:

    For i = 1 To UBound(arrex)

    Sbmc = arrex(i, 2) "设备名称

    Ggxh = arrex(i, 3) "规格型号

    Zzcj = arrex(i, 4) "制造厂家

    Ccrq = arrex(i, 5) "出厂日期

    Ccbh = arrex(i, 6) "出厂编号

    For Each sset1Entity In SSetyd

    Set CopyEntity = sset1Entity.Copy()

    point1(0) = minExt(0):
    point1(1) = minExt(1)

    If i = 1 Then

    point2(0) = ptget(0):
    point2(1) = ptget(1)

    End If

    CopyEntity.Move point1, point2

    Next

    根据模板的文字高度与间距设置插入点的横向与纵向坐标。需要将其x向,y向,z向的坐标全部写出,其中y向坐标需要根据文字高度和间距进行递减,本例中递减量是10。以设备名称与型号为例,主要程序如下:

    Sbmc_insertPt(0) = point2(0) + 30

    Sbmc_insertPt(1) = point2(1) + 50

    Sbmc_insertPt(2) = 0

    Ggxh_insertPt(0) = point2(0) + 30

    Ggxh_insertPt(1) = point2(1) + 40

    Ggxh_insertPt(2) = 0

    定好坐标后,可以插入文字,以设备名称为例,程序如下:

    Set textObj = ThisDrawing.ModelSpace.AddMText(Sbmc_insertPt, 55, Sbmc)

    3 绘制结果确认

    核对批量绘制的结果,若是第一次运行程序需要仔细核对五种信息对应的位置,字体的大小与间距,每个铭牌之间的间距,排列的总长度是否超出要求的尺寸以及铭牌上内容的书写是否美观等[4]。如果有大批量的铭牌需要绘制,可以在第2.3步设置横坐标的程序部分按需要进行改动,例如每25个位于一行。

    4 结语

    上述代码除了对铭牌的批量绘制,还可用于其他类似用表格数据批量绘制CAD图形的情况。调试程序到符合自己的工作需要后,可以将文件存储为.dvb文件,别的电脑使用時在命令行输入vbaload将此文件加载后,输入vbarun,在出现的界面中选择本程序,然后运行即可。通过对AutoCAD的二次开发,可以高效准确的完成平时工作中的批量重复工作,提高人员的工作效率。

    参考文献

    [1] 张帆,郑立楷,卢择临,等.AutoCAD VBA 二次开发教程[M].北京:清华大学出版社,2006.

    [2] 张帆,郑立楷,王华杰.AutoCAD VBA 开发精彩实例教程[M].北京:清华大学出版社,2004.

    [3] Excel Home.别怕,Excel VBA其实很简单[M].北京:人民邮电出版社,2012.

    [4] 罗刚君.Excel VBA程序开发自学宝典(第2版)[M].北京:电子工业出版社,2011.

    Batch Drawing Equipment Nameplates Based on AutoCAD Secondary Development

    ZHANG Pei-yuan1, QIN Shao-dong2

    (1.Zhongwang(Liaoyang) Aluminum Formwork Manufacturing Co., Ltd., Liaoyang  Liaoning  111000;

    2.Liaoning Zhongwang Group Co., Ltd., Liaoyang  Liaoning  111000)

    Abstract:To meet the needs of batch production of equipment nameplates in practice, the method of combining Excel and AutoCAD is used, and Visual Basic is used to connect the two software. The Excel table lists all the information needed to make nameplates. Programs written in AutoCAD and Visual Basic will use the contents of Excel to be placed in designated locations, so as to make batches of nameplates.

    Key words:nameplate production in batches; AutoCAD; Visual Basic; secondary development

    相关热词搜索: 铭牌 绘制 批量

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网