2024年5月26日发(作者:)
ELECTRONICS WORLD·探索与观察
基于Androidg- ̄DXF文件解析以及数控代玛的生成
厦门盈趣科技股份有限公司 周春林张燕鹏黄智全李立锋蔡权权
【摘要】解析AutoCAD中的DxF格式文件,将文件中的坐标信息转换为实体类,利用这些实体类信息,在Android J ̄.统中绘制出与之对应的
图形。通过手指的触摸选择所需要转换为G代码的实体类,将这些实体类结合自定义的辅助代码,生成G代码文件。可将生成的G代码文件
通过WIFI下栽到数控机床。
【关键词】DXF解析;DXF转换;数控代码生成
1引言
就目前而且AutoCAD仍然是国际市场上广为流行的绘图软件,
而市场上也有很多将AutoCAD中的图形轮廓转换为数据加工所需要
使用到的G代码的方法。但是这些方法基本使用场景都是局限于台
式电脑以及数控机台配套的显示屏。如果可以使用Android平板电
脑,直接生成下位机所需要的数控加工代码,将提高编程操作的便
捷性以及编程的可视性,提高了编程的效率。
2 DXF解析与转换
DXF是AutoCAD中的一种文件格式,其中DXF的ASCII数据格
式具有良好的可读性。DxF可以使用文本编辑器打开,会发现DXF
是由多个单行的数据组成。DXF文件主要包含了六个文件段,而
我们主要关心的是实体段(ENTITIES SECTION),里面包含了图
形信息,DXF的解析过程即将这些图形信息转换为我们所需要的
JAVA实体类。由于DXF是多行的数据组成,可以直接将整个DXF
文件作为输入流,一行一行的去读取DXF文件。实体段中我们所需
要的实体段主要有直线、圆、圆弧、椭圆、多线段。可以通过表1
的组码信息去解析DXF文件,并且新建对应 ̄Java实体类保存这些
信息。而在DXFq ̄的实体中有多线段,多线段的组码42为凸度,
凸度为0表示两点之间没有弧度,两点形成直线。凸度绝对值小于
1表示圆弧包角小于180。,凸度绝对值大于1表示圆弧包角大于
180。。而凸度小于0表示圆弧包角为逆时针,凸度大于0表示圆弧
包角为顺时针。
凸度为四分之一圆角的正切值,由此可以计算出凸度的圆角。
由此可以计算出该圆角的圆弧以及半径。从而计算出该圆弧的起始
角度以及终止角度。
最后可将多线段转换为圆弧以及直线。
表1 DXF组码信息
3 DXF在Android系统中的绘制
将DXFq ̄的图形信息解析为对应的实体类以后,想要利用这些
信息在Android应用中绘制出CAD图,还需要将各个实体的坐标信息
进行转换,  ̄'Java坐标系和CAD坐标系是Y轴的正方向不同的,并
且DxF的图形区域和Java,[]形区域是不同的,所以还需要将DxF的
坐标系转换为Java坐标系。首先利用如下公式计算DXF转换为Java
坐标系所需要放大或者缩小的倍数。其dxfMaxX、dxfMinX、dxf-
MaxY以及dxfMinY为解析出的DxF图形信息中的最大值和最小值。
screenWidth ̄screenHeight为Android图形区域的分辨率。
lfoat autoXSpace=dxfMaxX-dxfMinX;
lfoat autoYSpace=dxfMaxY-dxfMinY
lfoatNx autoXSpace/screenWidth
lfoat Ny=autoYSpace/screenHeight;
lfoat multiple=Math.max(Nx,Ny);
计算出两者之间转换的倍数以后,在通过如下公式计算出各个
实体的Java坐标系。
lfoatjavaX=rdxf)(一dxfMinX)/multiple;
电-子世界 ·35·
ELECTRONICS WORLD·探索与观察
直线2_0,J的 离计 算,点剑整 的 Itf ̄j"uJ‘jI』1过^剑圆心的 离减去
~一 一 ~一 ~一 ~一 一~ 一 ~一 一~ ~ 一。 一 ~一 一~ 一 一一一, ~一 ~一
半径计算
类到列农-
拾取
J_到恻弧的距离- 九f弹 l。 j刈刚弧的起 -I终点的
lff点距离。通过计算 哪个实体炎离点击^鳅近。取…’ 的吱体
心的 体炎以后,『Jj flJ川 佛炎 I,lYJDXt { h、,衍这
。
一 ~ 一 一 一 一 一 一 ~
图1 DXF在And roid平板中的绘制
4数控代码的生成
将DXF 彤(EAndroid系统Ill绘圳…j{:吱现 形区域的放人、
缩小以及平移 jfJ迎过 lJ[Androidl划形 域的 .}r事什,拱墩
、 Iji『_^t 的 .· 。迎过 的6I^ t 干l1 丈体 中fl ̄JJava*fff,J、系,
汁算fl{点 点j刈 个 休类 形l×域的 I 离..埘j 直线可迎过^刽
·3f1· 屯子世界
些 体类信息,转换为G代码。
直线轨迹的G代粥为:
G00 X1 Y1 Zl
GO1 X2Y2Z:
其-I】X1.Yl币lIZI1℃ 的直线DxF t1的起点一}^杯。X2.Y2 ̄llZ2
代表的是r DXFI ̄J终点坐标。
一 一
整刚以及I刈弧的轨迹G代码 :
G02XYZl
J
一
K
GO3XYZI JK
其q ̄O02 ,J 顺时针,G03 逆时针 jLt”X、Y卡IJZ 删弧
的终点 标,需喽汁意的是嘲弧的终点 I^ 就足起点坐标。I、J和lK
表示的赴起^ I^ 剑圆心 标的映 以【 足 础的 彤轨迹G代
,
可 ¨定义的辅助代码,1 成G代 之件。并“迎过wIFI化送
列卜位机,他卜化机运行特定的轨迹以^乏执,r十lI戍的动作
5总结
使HJAndroid 板去导入(’ADl 肜,ji:lf_l,J 、r舨,},绘圳…
DXF图形。¨J选择所需要枷1:的轨迹,^童 线以^乏 弧的G
代码轨迹, l-成埘J、 n勺G代码文仆,将所 成『『JG代fll5_迁什,迎过
WIFI 载剑数 机味,呵以实现移动小敦, 『 J 示教的 以
及使捷 。
参考文献
【11曾斌,李光耀等基于DXI:文件格式的二维复杂图形教控代码
自动生成法【M【.机械设计与制造 20O32
』! 予J、戍才,孙喜梅等AutoCA1)的1)XF文件格式及其转换接口研
究fMIl微型电脑应用 2o(H,8.
【31陈}对敏等DXF% ̄实体解析及其lJII、r l最小包络矩形的 ̄&IMI
广东省高性能计算重点实验室建设0…f),f} _
左大利DXF ̄¥实体解析及其
1n 最小包络矩形的实现IM J
机电工程技术,2oI【).39(H):1 一137
发布者:admin,转转请注明出处:http://www.yc00.com/web/1716694446a2730299.html
评论列表(0条)