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

        ?

        曲面快速展開之三角線法

        2018-07-03 05:16:38王雪林
        造船技術 2018年3期
        關鍵詞:主視圖線法二次開發(fā)

        姚 方, 王雪林, 李 迅

        (上海江南長興造船有限責任公司, 上海 201913)

        0 引 言

        空間形體的表面在平面上攤平,這個過程稱為展開。構成形體的表面可以分為2類:球面、圓環(huán)面等表面不能攤平的不可展曲面;平面、柱面、錐面等表面可以攤平的可展曲面。對于不可展曲面,常將它們分割成若干部分,把每個部分看作為可展直紋曲面并將其近似地展開。以下可展直紋曲面簡稱為曲面。

        在船舶生產設計中經(jīng)常會遇到需要得到曲面展開圖的情況,比如錨臺、側推、曲面開孔等放樣下料時,在工裝設計中也會遇到求曲面零件展開圖的情況,雖然在Tribon系統(tǒng)中可對曲面板架自動展開,但需要經(jīng)過一系列的工程配置和曲面建模工作,繁瑣且不適合于工裝設計等非船工程。此時若有一種輕量級的插件直接在AutoCAD中運行能得到所需的結果,無疑會給設計工作帶來極大方便。雖然很多大型成熟軟件如TRIBON、CATIA、UG、PROE、SolidWorks、Rhino等均擁有曲面展開功能,但關于曲面展開的公開算法卻并不多見。Tribon M3中運用的NURBS曲面對于輕量級的曲面展開算法而言并不適用,而一些軟件則不能很好地根據(jù)已有詳細設計圖紙中的曲線建模,只能近似建模,使得建模精度不易控制。若直接在AutoCAD中使用三角線法手動放樣展開曲面,也可得到較為精確的展開圖,但求每條直線實長的過程需要大量的重復計算和繪圖操作,枯燥耗時且容易出錯。為此,根據(jù)放樣展開基本原理對AutoCAD軟件進行二次開發(fā),實現(xiàn)自動批量求直線實長的功能,使用三角線法編程展開曲面而不借用其他圖形庫使得算法輕量簡單,展開精度可控并可達到生產設計要求,可以幫助設計人員較為快速地繪制曲面展開圖。

        1 三角線法概念

        幾乎所有的曲面展開方法都是以近似的方式展開,采用三角線法,將曲面板分成近似于平面并且互相聯(lián)系的三角面(3邊組合成穩(wěn)定的三角形),再把所有的三角面攤平組合后展開得到所需要下料的零件。圖1為待展開曲面圖,將曲面板劃分成近似于平面并且相互聯(lián)系的三角面,得到圖2所示圖形,然后將空間方向的一個三角面旋轉角度放置到一個平面上,從而得出這個三角形真實形狀尺寸,而后逐個將三角形放置在這個平面上就可以得到曲面的近似展開圖。三角面劃分越多,所展開的零件越精細,但工作量也顯著增大,因此,編寫程序將面板劃分為非常細小的三角面,通過計算機高速運算后得到展開零件。

        圖1 待展開曲面

        圖2 三角面劃分

        2 展開基本原理

        在幾何畫法中,可以通過1條直線段(以下將直線段簡稱為直線)的主視圖和俯視圖得到直線的實長。主視圖中直線的高與俯視圖直線作為1個直角三角形的2條直角邊,該直角三角形的斜邊即原直線的實長。

        如圖3所示,同一組配對直線內line 1的首尾端點坐標分別為(x1,yZ1)和(x2,yZ2),line 1'的首尾端點坐標分別為(x1,yF1)和(x2,yF2)。根據(jù)幾何畫法中求直線實長的原理:

        line 1的高為

        a=|yZ1-yZ2|

        line 1的長度為

        所以直線實長為

        圖3 求直線實長方法

        根據(jù)此方法可通過一個三角形的主視圖和俯視圖求出該三角形三條邊的實長,即空間三角形攤平在平面上的形狀。如圖4所示,選這3條邊任意1條作為展開基準(即基準邊),基準邊的端點作為畫圓弧的圓心點,再以其他2條邊的實長作為半徑畫弧求出交點后連接交點和基準邊端點,得到的圖形就是三角面的實際外形尺寸。

        圖4 求三角形實形方法

        如圖5所示,將曲面沿直母線劃分為若干個三角形,三角形頂點位于曲面頂點或邊緣。然后求出所有三角形實形,并在平面上依序組合,就得到了曲面的展開圖。三角形劃分的越多,所得到的展開圖就越精確。

        圖5 沿直母線劃分三角形

        3 原始圖形要求

        如圖6所示,首先要有曲面的主視圖和俯視圖,并且分界明顯,如果為其他視圖關系則旋轉成主視圖和俯視圖。根據(jù)直母線劃分三角形,三角形要求上下對應,所有直線顏色相同。

        圖6 原始圖形要求

        4 主要邏輯及實現(xiàn)

        AutoCAD為二次開發(fā)提供了3種方式,分別是VBA腳本、AutoLisp腳本和ObjectARX庫,其中:VBA腳本逐漸沒落并在高版本中被拋棄;AutoLisp腳本不太適合處理復雜問題;ObjectARX庫最為強大,可以訪問部分VBA腳本和AutoLisp腳本無法訪問的對象,需要C++編程語言支撐。由于曲面展開過程中涉及較復雜的數(shù)據(jù)結構和運算,在此使用C++編程語言基于ObjectARX庫對AutoCAD進行二次開發(fā)較為方便高效,根據(jù)文章第2部分編寫AutoCAD自動批量求直線實長的程序,程序流程圖如圖7所示。

        圖7 程序流程圖

        (1) 拾取用戶所選的直線。

        long nLength;

        ads_name ssLines;

        struct resbuf eb1;

        wchar_t sbuf1[10] = {0};

        eb1.restype=0; //實體名

        lstrcpy(sbuf1,_T("LINE"));

        eb1.resval.rstring=sbuf1;

        eb1.rbnext=NULL;

        acdbHostApplicationServices()->workingDatabase();

        acutPrintf(_T(" Select lines: "));

        int stat = acedSSGet(NULL,NULL,NULL,&eb1,ssLines);

        if ((stat == RTERROR)||(stat == RTCAN))

        {

        acutPrintf(_T(" User select canceled. "));

        return;

        }

        acedSSLength(ssLines, &nLength);

        if (nLength %2 != 0) //判斷所選擇的直線的數(shù)目是否為偶數(shù)

        {

        acutPrintf(_T(" Error! Line Number is not even number. "));

        return;

        }

        (2) 將兩端點x坐標均相等且顏色相同的直線配對存放。

        typedef struct _PAIR_LINE //配對成功的2條線

        {

        AcGePoint3d pt1; //Line1 存放主視圖直線

        AcGePoint3d pt2;

        AcGePoint3d pt3; //Line2 存放俯視圖直線

        AcGePoint3d pt4;

        }PAIR_LINE,*PPAIR_LINE;

        (3) 從配對好的直線組中找出三角形存放于三角形結構體。

        typedef struct _TRANGLE //三組線組成的三角形

        {

        int nId; //nId表示三角形序號

        bool bCenter; //用來指示當前三角形是否曾經(jīng)為中心三角形

        PAIR_LINE pl1; //配對成功的3組線

        PAIR_LINE pl2;

        PAIR_LINE pl3;

        AcGePoint3d pt1; //主視圖中三角形的3個點

        AcGePoint3d pt2;

        AcGePoint3d pt3;

        AcGePoint3d pt4; //俯視圖中三角形的3個點

        AcGePoint3d pt5;

        AcGePoint3d pt6;

        }TRANGLE,*PTRANGLE;

        每次以當前三角形為中心,依據(jù)公共邊構建三角形樹:

        typedef struct _TRANGLE_TREE //構建三角形樹,繪三角形時遍歷

        {

        TRANGLE stTrangleNode; //當前三角形

        struct _TRANGLE_TREE* ptt[3]; //與當前三角形共一條邊的三角形

        _TRANGLE_TREE()

        {

        for ( int i = 0 ; i < 3 ; i ++ )

        {

        ptt[i] = NULL;

        }

        }

        }TRANGLE_TREE,*PTRANGLE_TREE;

        (4) 依據(jù)繪圖基點和三角形樹逐個計算真實三角形頂點坐標。

        typedef struct _REAL_TRANGLE //真實三角形

        {

        int nId; //三角形ID,與相應原三角形的ID相等

        bool bReady; //頂點坐標是否已經(jīng)計算完畢

        bool bDrawed; //是否已經(jīng)繪圖

        bool bCenter; //是否曾經(jīng)作為中心三角形

        double tb1; //3條邊實長

        double tb2;

        double tb3;

        AcGePoint3d pt1; //3個頂點的坐標

        AcGePoint3d pt2;

        AcGePoint3d pt3;

        _REAL_TRANGLE()

        {

        tb1 = 0.0;

        tb2 = 0.0;

        tb3 = 0.0;

        }

        }REAL_TRANGLE,*PREAL_TRANGLE;

        需要注意的是,遍歷三角形樹計算真實三角形時(見圖8),下面的三角形為當前三角形,以當前三角形為中心去遍歷計算具有公共邊的三角形時,若以圖8中水平邊為公共邊,分別以兩端點和兩邊長畫圓求交點,實際上會得到2個交點,這時用AutoCAD自帶的IntersectWith函數(shù)得到圓的2個交點后應該去掉與當前三角形同一側的頂點。

        圖8 遍歷三角形樹

        (5) 調用CAD函數(shù)繪圖,將實體添加到圖形數(shù)據(jù)庫中的模型空間繪制出來。

        5 程序編譯及運行

        將源代碼通過Visual Studio編譯器編譯生成.arx插件,在AutoCAD中使用ap命令加載插件,輸入注冊的CAD命令運行。如圖9所示,選中主視圖和俯視圖中的所有三角形,然后確定繪圖基點,程序自動繪制出展開圖。

        圖9 某船型錨臺半邊圖形展開

        6 結 語

        根據(jù)三角線法展開原理,對AutoCAD進行二次開發(fā),實現(xiàn)批量自動求直線實長的功能,經(jīng)測試,在錨臺、側推、曲面開孔放樣下料中均可行。在實際應用中,對比原完全手動展開曲面的方式,可以節(jié)省約80%的工作量,并且確保了直線實長的準確性。需要注意的是,由于程序將3個頂點x坐標均相等的三角形判定為1組三角形,即同一個真實的三角形在主視圖和俯視圖中的投影, 并輔以直線顏色的判斷,故劃分三角形時不要使得三角形的邊呈鉛垂狀態(tài),對于類似錨臺的環(huán)形曲面,本文示例則根據(jù)對稱性只放樣一半曲面,放樣完成后再根據(jù)對稱性補全。對于復雜的不可展曲面,需要手動分割成幾塊以便近似處理,否則展開圖會出現(xiàn)裂縫。

        在很長一段時間里,設計人員總是依據(jù)放樣原理進行手工放樣,不僅耗時而且設計人員的經(jīng)驗技藝難以傳承下來,設計停留在經(jīng)驗階段而無法邁向更高階段,工作效率難以整體性提升。若將經(jīng)驗技藝升級為程序化、知識庫化、系統(tǒng)化,則無疑有助于整體工作效率的穩(wěn)定提升,三角線法程序化展開曲面正是一種嘗試。

        [1] 宋延杭, 王川, 李永宣. ObjectARX實用指南——AutoCAD二次開發(fā)[M] . 北京:人民郵電出版社, 1999.

        [2] 徐榮璋, 劉曉毅, 陳軍. 曲面展開方法的發(fā)展現(xiàn)狀[J].模具技術, 2002(5):15-18.

        [3] 余勇. 船舶曲面分段外板重構及其展開技術研究[D] . 鎮(zhèn)江: 江蘇科技大學, 2016.

        [4] 潘煒, 吳慧, 李鐵瑞,等. 基于曲面展開的自由曲面網(wǎng)格劃分[J] . 浙江大學學報(工學版), 2016,50(10):1973-1979.

        [5] 羅振華, 蔣芬, 蔣威. 針對不可展曲面的近似展開方法淺析[J] . 科技創(chuàng)新導報, 2014(30):51.

        [6] 蔣威. 不可展曲面的近似展開及其應用[D] . 上海: 復旦大學, 2013.

        [7] 肖雄, 黃朝炎, 胡勇,等. 三維曲面船體外板數(shù)學展開方法研究[J] . 船舶工程, 2013, 42(1):74-77.

        [8] 閻佩佳, 薛卓, 張育丹. 復雜曲面展開[J]. 科技致富向導, 2012(14):366.

        猜你喜歡
        主視圖線法二次開發(fā)
        單位線法在推求洪水中的應用
        基于特征線法的含氣輸水管道水錘特性分析
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        西門子Easy Screen對倒棱機床界面二次開發(fā)
        一階偏微分方程的特征線法及其應用
        考試周刊(2016年90期)2016-12-01 20:14:25
        你會畫左視圖嗎
        基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
        喂線技術在ADI凸輪軸生產中的應用
        機械工程師(2013年6期)2013-03-25 06:35:18
        用“俯視圖法”求正方體個數(shù)
        色欲人妻综合aaaaa网| 人人妻人人澡人人爽欧美一区| 中文乱码字幕精品高清国产| 欧美嫩交一区二区三区| 亚洲国产日韩精品一区二区三区| 国产精品三级在线观看无码| 亚洲精品永久在线观看| 国产最新AV在线播放不卡| a级国产乱理论片在线观看| 亚洲AV色无码乱码在线观看| 老色鬼永久精品网站| 亚洲色图在线视频免费观看| 日韩精品视频中文字幕播放| 中文字幕av熟女中文av| 色综合天天综合欧美综合| 国语对白做受xxxxx在| 野花在线无码视频在线播放| 亚洲日本欧美产综合在线| AV中文码一区二区三区| 久久综合久中文字幕青草| 中文字幕一区二区av| 人人妻人人澡人人爽人人精品av| 精品欧洲av无码一区二区| 国产精品成人99一区无码| 亚洲日本va99在线| 国产香蕉一区二区三区| 性感熟妇被我玩弄到高潮| 色婷婷色丁香久久婷婷| 国产免费爽爽视频在线观看| 丰满多毛少妇做爰视频| 亚洲一区二区高清精品| 人妻av不卡一区二区三区| 国产91精品在线观看| 呦系列视频一区二区三区| 99久久人妻精品免费二区| 国产91成人精品亚洲精品| 熟妇与小伙子露脸对白| 一卡二卡国产av熟女| 九九综合va免费看| 国产又色又爽无遮挡免费| 99久久国语露脸国产精品|