APP下载

基于AutoCAD在定位板材预留孔的二次开发

2020-12-16王克虎李晓辉谢少朋朗坤飞

精密制造与自动化 2020年4期
关键词:预埋件连接件二次开发

王克虎 李晓辉 贾 杰 谢少朋 朗坤飞

(河北省地矿局国土资源勘查中心 河北石探机械制造有限责任公司 河北石家庄 050081)

近年来,板式家具在现代家具中占有越来越大的比例,板材连接是制造板式家具关键环节,板式家具[1-2]主要是通过三合一连接件将多个木板连接起来组合而成,三合一连接件是由预埋件、螺杆、偏心轮三部分组成。三合一连接件的使用步骤为:首先需要将膨胀预埋件安装至板材的预留孔内,其次将螺杆安装在预埋件上并拧紧,同时将板二的孔对准螺杆并垂直放于板一上,最后把偏心轮拧紧从而拉紧螺杆,三合一连接件安装完成。如图1所示为三合一连接件安装示意图。

图1 三合一连接件安装工艺图

本文章提出了一种基于板材设计图纸, 在AutoCAD中进行二次开发,实现定位出板材上特定直径的预留孔的坐标信息的功能。对于孔的定位,我国现在主要采用图像视觉定位技术,但是由于在定位板材预留孔的过程中,板材表面上会存在木渣等杂物较多以及在板材表面会有其他的工艺孔,都会对这种技术在图像识别和提取过程中造成干扰。所以图像视觉识别技术不能应用于膨胀预埋件填充工作。本文介绍一种基于 CAD二次开发进行识别不同直径的预埋中心孔方法。

1 二次开发的开发工具

AutoCAD作为一个通用的绘图软件而设计开发的,但是各行各业都有自己的绘图规则,很多单位也有自己的企业标准,因此 AutoCAD不可能满足任意的具体应用要求[3]。值得庆幸的是AutoCAD的开发手段很多,如C++、Java、Vbsic、AutoLisp等。AutoLisp语言是AutoCAD专用的二次开发的工具[4]。AutoLisp语言是嵌于AutoCAD内部的计算机语言,它是 AutoCAD开放式体系结构的具体表现[5],已经被完整地集成到 AutoCAD中,为开发者提供了崭新的、增强的集成开发环境,这样开发者可以直接使用AutoCAD中的对象和反应器,进行更底层的开发[6]。本文就使用了AutoLisp语言调用了AutoCAD中筛选指定半径的圆图元功能、指定误差范围和自动计算圆图元的圆心坐标指令,进行功能扩展。AutoLisp 的程序文件代码的储存方式是通过ASCII文本文件的格式进行储存的,它的文件扩展名为“*.MNL”或 “*.LSP”,所以,AutoLisp 的编写适应性很强,可以对任何一种文本进行编写和导出,例如,Excel等文本[7]。

2 实现安装膨胀预埋件的主要步骤

本次基于 AutoCAD二次开发的定位板材预留孔筛选、识别过程主要步骤包括:前期准备、设置Excel表格属性、设置筛选条件、将数据以 Excel格式输出。如图2所示为二次开发步骤框图。

图2 该功能二次开发步骤框图

2.1 前期准备

前期准备包括定义调用二次开发程序的指令,以及加载程序。使操作者更加方便地执行命令。

(1)定义新命令:

(defun c:tyx ( / *doc *th e i l1 lst pt ss x dxf xbgh 3d2d ayOSMode)

(2)加载Visual LISP扩展功能:

(vl-load-com)

(defun xbgh (lst / a appxls hh lh x initexcel endexcel datacell)

2.2 设置Excel表格属性

创建、设置Excel表格属性,包括设置工作簿、单元格格式,并设定使表格格式能适应导出的数据,避免数据存储格式错误。

(1)创建Excel程序对象:

(2)调用 ActiveX方法设定 Excel程序:newbook(vlax-invoke-methodxlsworkbooks "add")

(3)设置Excel程序:

(4)释放Excel程序对象:

(5)设定Excel单元格返回以lisp数据的字符串表示、设定输出的各个元素的运算结果构成表形式、自动调整Excel的行列宽高以适应文字与数字。具体程序如下:

2.3 设置筛选条件

(1)设定AutoCAD系统参数

重新设定AutoCAD系统变量osmode数值,将AutoCAD系统变量osmode设定为16384,这个附加值有助于开发人员编写 AutoCAD 应用程序,并将此模式与“绘图设置”对话框关闭的对象捕捉模式区别开来。设置此位码值将关闭对象捕捉。在该位码值关闭时将OSMODE 设置为其他值可以打开对象捕捉[8-9],并检索和取得当前图形文件。具体程序段如下:

3 AutoCAD二次开发操作过程

(1)进入二次开发程序编程工作环境:如图 3所示为AutoLisp开发工具示意图。本次二次开发是在visual lisp语言编辑器内进行程序的编辑和运行的。如图4所示为visual lisp语言编辑器加载程序后示意图。

(2)加载二次开发程序:在 AutoCAD主界面,在命令栏中输入快捷指令进行二次开发程序的加载。如图5所示为激活并运行二次开发程序示意图。

(3)点取原点:操作者手动选取板材原点。

(4)选择对象:操作者按照提示去框选整个板材二维图即可。

(5)二次核对:在选择对象完成后,在命令栏里将会有指定直径的圆图元数量提示,并且二维图中的圆图元处于虚线状态,方便操作者观察与核对。

(6)操作完成:点击回车即完成整个二次开发程序的运行,最终所需要的圆心坐标的相对位置数据会以Excel形式直接展示出来。如图5所示为二次开发最终生成数据示意图。

图3 AutoLisp开发工具示意图

图4 visual lisp语言编辑器加载程序后示意图

图5 二次开发最终生成数据示意图

5 结语

目前,进行板材预埋孔定位来实现膨胀预埋件的安装工作都是由人工完成,容易造成视觉疲劳,加工效率低,所以自动安装预埋件的瓶颈问题,就是预埋件孔的自动定位问题。本程序弥补了图像识别定位技术的不足,在干扰因素较大的情况下,仍旧能准确地定位预留孔的中心位置,并自动计算出中心孔距原点的坐标信息,得出的结果自动导入至Excel表格中,避免人工测量的误差。该程序除了这些基本功能外,还可以在程序中设置识别孔的误差,使程序可以筛选出直径在误差范围内的预留孔,使本次二次开发的功能更加适应工业现场环境。本程序运行需要的硬件和软件要求较低:在AutoCAD2013下验证运转正常,该程序也可以在AutoCAD2006简体中文版及AutoCAD2013以上版本运行。AutoCAD2006简体中文版运行系统:win7、win8系统;其余每个版本运行环境相同,包括:win8以及win10系统,适合普遍推广,操作简单,识别速度快、识别精度高的优点。

猜你喜欢

预埋件连接件二次开发
制作吸管塔台
锚筋预埋件试验研究与理论分析
施工缺陷对半灌浆套筒连接件性能的影响*
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
CJ/T493—2016给水用高性能硬聚氯乙烯管材及连接件
西门子Easy Screen对倒棱机床界面二次开发
幕墙槽式预埋件现场监理探讨
对工程预埋件施工工艺的探索
对工程预埋件施工工艺的探索