亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android的DXF文件解析以及數(shù)控代碼的生成

        2018-06-19 03:19:16廈門盈趣科技股份有限公司周春林張燕鵬黃智全李立鋒蔡權權
        電子世界 2018年11期
        關鍵詞:凸度圓弧代碼

        廈門盈趣科技股份有限公司 周春林 張燕鵬 黃智全 李立鋒 蔡權權

        1 引言

        就目前而且AutoCAD仍然是國際市場上廣為流行的繪圖軟件,而市場上也有很多將AutoCAD中的圖形輪廓轉(zhuǎn)換為數(shù)據(jù)加工所需要使用到的G代碼的方法。但是這些方法基本使用場景都是局限于臺式電腦以及數(shù)控機臺配套的顯示屏。如果可以使用Android平板電腦,直接生成下位機所需要的數(shù)控加工代碼,將提高編程操作的便捷性以及編程的可視性,提高了編程的效率。

        2 DXF解析與轉(zhuǎn)換

        DXF是AutoCAD中的一種文件格式,其中DXF的ASCII數(shù)據(jù)格式具有良好的可讀性。DXF可以使用文本編輯器打開,會發(fā)現(xiàn)DXF是由多個單行的數(shù)據(jù)組成。DXF文件主要包含了六個文件段,而我們主要關心的是實體段(ENTITIES SECTION),里面包含了圖形信息,DXF的解析過程即將這些圖形信息轉(zhuǎn)換為我們所需要的JAVA實體類。由于DXF是多行的數(shù)據(jù)組成,可以直接將整個DXF文件作為輸入流,一行一行的去讀取DXF文件。實體段中我們所需要的實體段主要有直線、圓、圓弧、橢圓、多線段??梢酝ㄟ^表1的組碼信息去解析DXF文件,并且新建對應的Java實體類保存這些信息。而在DXF中的實體中有多線段,多線段的組碼42為凸度,凸度為0表示兩點之間沒有弧度,兩點形成直線。凸度絕對值小于1表示圓弧包角小于180°,凸度絕對值大于1表示圓弧包角大于180°。而凸度小于0表示圓弧包角為逆時針,凸度大于0表示圓弧包角為順時針。

        凸度為四分之一圓角的正切值,由此可以計算出凸度的圓角。由此可以計算出該圓角的圓弧以及半徑。從而計算出該圓弧的起始角度以及終止角度。

        最后可將多線段轉(zhuǎn)換為圓弧以及直線。

        表1 DXF組碼信息

        3 DXF在Android系統(tǒng)中的繪制

        將DXF中的圖形信息解析為對應的實體類以后,想要利用這些信息在Android應用中繪制出CAD圖,還需要將各個實體的坐標信息進行轉(zhuǎn)換,由于Java坐標系和CAD坐標系是Y軸的正方向不同的,并且DXF的圖形區(qū)域和Java的圖形區(qū)域是不同的,所以還需要將DXF的坐標系轉(zhuǎn)換為Java坐標系。首先利用如下公式計算出DXF轉(zhuǎn)換為Java坐標系所需要放大或者縮小的倍數(shù)。其中dxfMaxX、dxfMinX、dxf-MaxY以及dxfMinY為解析出的DXF圖形信息中的最大值和最小值。screenWidth和screenHeight為Android圖形區(qū)域的分辨率。

        float autoXSpace = dxfMaxX - dxfMinX;

        float autoYSpace = dxfMaxY - dxfMinY;

        float Nx = autoXSpace / screenWidth;

        float Ny = autoYSpace / screenHeight;

        float multiple = Math.max(Nx, Ny);

        計算出兩者之間轉(zhuǎn)換的倍數(shù)以后,在通過如下公式計算出各個實體的Java坐標系。

        float javaX = (dxfX - dxfMinX) / multiple;

        float javaY = (dxfMaxY - dxfY) / multiple;

        至于圓弧以及整圓的半徑直接除以倍數(shù)即可。

        利用Android自定義View以及Canvas即畫板在視圖中繪制DXF圖形,利用paint(畫筆)以及Android的繪圖API,drawLine、draw-Circle以及drawArc去繪制對應的CAD圖形,使用的坐標是轉(zhuǎn)換后的Java坐標。

        需要注意的是在DXF的坐標系中圓弧的角度是順時針方向,而drawArc繪制的圓弧時逆時針的,所以要繪制出和DXF圖形中的圓弧信息一樣,需要使用360-圓弧的終止角度作為起始角度,然后計算出圓弧掃過的區(qū)域,最后利用drawArc在Java坐標系中繪制出圓弧的圖形。

        經(jīng)過如上的步驟即可在Android應用中繪制出DXF圖形,經(jīng)過如下公式的可實現(xiàn)圖形的放大、縮小以及平移。

        縮放時兩指的中點坐標 - (縮放時兩指的中點坐標– 圖形Java坐標) * 當前縮放的倍數(shù) / 上一次縮放的倍數(shù) + 當前坐標的偏移量– 上一次的偏移量;

        經(jīng)過上述公式的運算可重新計算出Java的坐標,再利用當前的坐標重新繪制CAD圖形。即可實現(xiàn)DXF圖形的放大、縮小以及平移。如圖1所示 。

        圖1 DXF在Android平板中的繪制

        4 數(shù)控代碼的生成

        將DXF圖形在Android系統(tǒng)中繪制出并實現(xiàn)圖形區(qū)域的放大、縮小以及平移后??赏ㄟ^監(jiān)聽Android圖形區(qū)域的點擊事件,獲取當前點擊的坐標點。通過當前的坐標點和實體類中的Java坐標系,計算出點擊點到各個實體類圖形區(qū)域的距離。對于直線可通過點到直線之間的距離計算,點到整圓的距離可通過點到圓心的距離減去半徑計算。而點到圓弧的距離可計算點擊點到圓弧的起點與終點的中點距離。通過計算出哪個實體類離點擊點最近。取出當前的實體類到列表中。

        拾取完相應的實體類以后,可利用實體類中的DXF坐標,將這些實體類信息,轉(zhuǎn)換為G代碼。

        直線軌跡的G代碼為:

        G00 X1 Y1 Z1

        G01 X2 Y2 Z2

        其中X1,Y1和Z1代表的直線DXF中的起點坐標。X2,Y2和Z2代表的是直線DXF的終點坐標。

        整圓以及圓弧的軌跡G代碼為:

        G02 X Y Z I J K

        G03 X Y Z I J K

        其中G02表示順時針,G03表示逆時針。其中X、Y和Z表示圓弧的終點坐標,需要注意的是圓弧的終點坐標就是起點坐標。I、J和K表示的是起點坐標到圓心坐標的映射。以上是基礎的圖形軌跡G代碼,可結(jié)合自定義的輔助代碼,生成G代碼文件。并且通過WIFI傳送到下位機,使下位機運行特定的軌跡以及執(zhí)行相應的動作。

        5 總結(jié)

        使用Android平板去導入CAD圖形,并且可在平板中繪制出DXF圖形??蛇x擇所需要加工的軌跡,最后根據(jù)直線以及圓弧的G代碼軌跡,生成對應的G代碼文件,將所生成的G代碼文件,通過WIFI下載到數(shù)控機床,可以實現(xiàn)移動示教,提高了示教的靈活性以及便捷性。

        [1]曹斌,李光耀等.基于DXF文件格式的二維復雜圖形數(shù)控代碼自動生成法[M].機械設計與制造,2003,2.

        [2]孫成才,孫喜梅等.AutoCAD的DXF文件格式及其轉(zhuǎn)換接口研究[M].微型電腦應用,2001,8.

        [3]陳樹敏等.DXF文件實體解析及其Java最小包絡矩形的實現(xiàn)[M].廣東省高性能計算重點實驗室建設,2010,6.

        [4]左大利.DXF文件實體解析及其Java最小包絡矩形的實現(xiàn)[M].機電工程技術,2010,39(8):136-137.

        猜你喜歡
        凸度圓弧代碼
        利用軸線交錯修整砂輪凸度曲線的方法探討
        哈爾濱軸承(2022年1期)2022-05-23 13:12:58
        淺析圓弧段高大模板支撐體系設計與應用
        3800mm中板軋機變凸度工作輥輥形研究①
        冶金設備(2021年4期)2021-10-29 03:00:40
        基于精軋平坦度優(yōu)先的凸度分配策略
        異步凸度軋制對AZ31鎂合金板坯損傷抑制分析
        重型機械(2020年3期)2020-08-24 08:31:40
        外圓弧面銑削刀具
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        色偷偷亚洲第一成人综合网址| 亚洲不卡av不卡一区二区| 国产精品欧美久久久久老妞| 91热久久免费精品99| 日本人妖一区二区三区| 国产精品专区第一页天堂2019| 日韩久久无码免费毛片软件| 亚洲春色在线视频| 日韩毛片基地一区二区三区| 大白屁股流白浆一区二区三区| 按摩师玩弄少妇到高潮av| 18禁止进入1000部高潮网站| 免费观看激色视频网站| 国产内射XXXXX在线| 色婷婷一区二区三区77| 亚洲不卡免费观看av一区二区| 丰满少妇a级毛片| 18禁男女爽爽爽午夜网站免费| 国产日韩一区二区精品| 人妻制服丝袜中文字幕| 朝鲜女人大白屁股ass| 91手机视频在线| 一道本中文字幕在线播放| 偷拍一区二区视频播放器| 欧美色欧美亚洲另类二区| 日韩毛片在线看| 国产一区二区高清不卡在线| 日韩女优av一区二区| 日本丰满熟妇hd| 日韩欧美区| 日本精品熟妇一区二区三区| 天天做天天爱夜夜夜爽毛片| 丰满少妇大力进入av亚洲| 亚洲高清国产品国语在线观看| 青青草免费手机直播视频| 色综合久久精品亚洲国产 | 日本在线观看一区二区视频| 亚洲2022国产成人精品无码区| 亚洲欧美日韩精品久久亚洲区| 麻豆国产成人AV网| 亚洲综合国产精品一区二区|