基于Android的DXF文件解析以及数控代码的生成

基于Android的DXF文件解析以及数控代码的生成


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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信