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

        ?

        AutoCAD平臺下多邊形邊長自動標(biāo)注的方法

        2011-03-22 00:13:42解斌朱大勇郝煜
        城市勘測 2011年4期
        關(guān)鍵詞:共線二次開發(fā)邊長

        解斌,朱大勇,郝煜

        (1.武漢市勘測設(shè)計(jì)研究院,湖北武漢 430022;2.天津市勘察院,天津 300191)

        1 引言

        AutoDesk公司的AutoCAD軟件,以其杰出的圖形編輯和處理能力得到了廣泛應(yīng)用。在應(yīng)用中,常常需要結(jié)合專業(yè)情況將圖形繪制功能進(jìn)行擴(kuò)充,僅靠Auto-CAD自身的功能,難以滿足應(yīng)用中對效率的需求。在筆者的工作中,常常需要對房屋分成平面示意圖中的房屋邊長進(jìn)行標(biāo)注。雖然AutoCAD提供了長度的標(biāo)注功能,但是手工對每條邊進(jìn)行標(biāo)注,不僅耗時(shí),而且標(biāo)注位置難以精確控制,也無法形成統(tǒng)一的標(biāo)準(zhǔn)。

        本文對邊長自動標(biāo)注的方法進(jìn)行了闡述。經(jīng)該方法生成的標(biāo)注滿足以下幾個(gè)特點(diǎn):①標(biāo)注垂直于所標(biāo)注邊長;②連續(xù)共線的多線統(tǒng)一標(biāo)注;③所有標(biāo)注到標(biāo)注邊長的垂距相等;④標(biāo)注點(diǎn)位于標(biāo)注邊長的中心;⑤標(biāo)注文字已標(biāo)注點(diǎn)位中心居中對齊。

        2 ObjectARX簡介

        ObjectARX是一種開發(fā)AutoCAD應(yīng)用程序的工具,它以C++為編程語言,采用先進(jìn)的面向?qū)ο蟮木幊淘?,提供可與AutoCAD直接交互的開發(fā)環(huán)境,能使用戶方便快捷地開發(fā)出高效簡潔的AutoCAD應(yīng)用程序。其主要特點(diǎn)如下:

        (1)能對AutoCAD的所有事務(wù)進(jìn)行完整的、先進(jìn)的、面向?qū)ο蟮脑O(shè)計(jì)與開發(fā),相比其他二次開發(fā)工具其速度更快、集成度更高、穩(wěn)定性更強(qiáng)。

        (2)ObjectARX包含的動態(tài)鏈接庫與AutoCAD在同一地址空間運(yùn)行并能直接利用AutoCAD核心數(shù)據(jù)結(jié)構(gòu)和代碼,使二次開發(fā)者可以充分利用AutoCAD的開放結(jié)構(gòu),直接訪問AutoCAD數(shù)據(jù)庫結(jié)構(gòu)、圖形系統(tǒng)以及CAD幾何造型核心,以實(shí)時(shí)擴(kuò)展AutoCAD的功能,創(chuàng)建能全面享受AutoCAD固有命令的新命令。

        (3)ObjectARX可以按需要加載應(yīng)用程序,并可以在同一水平上與Windows系統(tǒng)集成,甚至與其他Windows應(yīng)用程序?qū)崿F(xiàn)交互操作。

        使用ObjectARX開發(fā)技術(shù),可以創(chuàng)建快速、高效、緊湊的AutoCAD程序,使ARX應(yīng)用程序不僅具有交互性、綜合性,而且還具有智能性。應(yīng)用ObjectARX技術(shù)生成的ARX應(yīng)用程序充分體現(xiàn)了ObjectARX技術(shù)的優(yōu)點(diǎn),同時(shí)還可在不同的操作系統(tǒng)中移植。

        3 算法設(shè)計(jì)及實(shí)現(xiàn)

        (1)自動標(biāo)注基本過程

        第一步:手工點(diǎn)選待標(biāo)注的閉合多邊形。

        第二步,計(jì)算標(biāo)注點(diǎn)相對標(biāo)注邊的方向值。標(biāo)注點(diǎn)在直線左邊,則相對方向值為90°,否則取270°。

        第三步:逐個(gè)標(biāo)注邊長。根據(jù)邊的兩個(gè)端點(diǎn)及第二步計(jì)算的標(biāo)注方向值,計(jì)算標(biāo)注點(diǎn),并加入標(biāo)記到AutoCAD的圖形空間。

        (2)計(jì)算標(biāo)注點(diǎn)相對方向

        標(biāo)注點(diǎn)的相對方向,指的是標(biāo)注點(diǎn)相對于所標(biāo)注的線段的旋轉(zhuǎn)角。如圖1所示,閉合多邊形起點(diǎn)為a,止點(diǎn)為b,p1,p2為多邊形中待標(biāo)注的線段。如標(biāo)注在多邊形外部,則相對方向?yàn)?0°,反之如標(biāo)注在內(nèi)部,相對方向則為270°。

        算法過程如下:

        第一步:取閉合多邊形第一點(diǎn)和第二點(diǎn),并以其中點(diǎn)為基點(diǎn)用極坐標(biāo)方法解算出與之相交90°、距離為0.5 m的標(biāo)注點(diǎn)坐標(biāo)。

        第二步:取第一步計(jì)算的坐標(biāo)點(diǎn),判斷其是否在標(biāo)注多邊形的內(nèi)部。如該點(diǎn)坐標(biāo)滿足注記的條件,則相對方向?yàn)?0°,反之取270°。

        圖1 標(biāo)注點(diǎn)相對方向示意圖

        (3)點(diǎn)鏈的旋轉(zhuǎn)與多余點(diǎn)的刪除

        在實(shí)際繪圖過程中,會出現(xiàn)相鄰多點(diǎn)共線的情況,這時(shí)候要求把這些共線的點(diǎn)合并為一條邊來注記。為了簡化操作,必須避免起始點(diǎn)和終止點(diǎn)以及它們的相鄰點(diǎn)產(chǎn)生三點(diǎn)或多點(diǎn)共線的情況。一方面需要對多邊形的點(diǎn)鏈進(jìn)行旋轉(zhuǎn),務(wù)必使起始點(diǎn)處不出現(xiàn)三點(diǎn)及多點(diǎn)共線的情況。另一方面僅需保留多點(diǎn)共線時(shí)的端點(diǎn),刪除中間點(diǎn)。我們把前后兩條邊不共線的點(diǎn)叫做拐點(diǎn)。點(diǎn)鏈的旋轉(zhuǎn)實(shí)際上是從起始點(diǎn)開始,找到第一個(gè)拐點(diǎn),并以其作為點(diǎn)鏈的起始點(diǎn),其操作過程只是改變點(diǎn)在點(diǎn)鏈中的位置。共線冗余點(diǎn)的刪除會改變點(diǎn)鏈的大小,實(shí)現(xiàn)過程中為了不改變原始圖形,對多邊形注記時(shí)首先復(fù)制多邊形點(diǎn)鏈,然后對復(fù)制的點(diǎn)鏈進(jìn)行旋轉(zhuǎn)和刪除操作。

        (4)逐邊計(jì)算標(biāo)注點(diǎn)并注記

        標(biāo)注點(diǎn)的計(jì)算采用極坐標(biāo)方法,利用ObjectARX提供的API函數(shù)acutPolar來實(shí)現(xiàn)。其函數(shù)原型如下:

        第一個(gè)參數(shù)表示基準(zhǔn)點(diǎn),第二個(gè)參數(shù)表示兩點(diǎn)連線的方位角,第三個(gè)參數(shù)表示兩點(diǎn)之間的距離,第四個(gè)參數(shù)表示待求點(diǎn)?;鶞?zhǔn)點(diǎn)一般取線段兩端點(diǎn)的中點(diǎn),方位角取線段的方位角與相對方向之和,距離一般取注記高度的一半。

        標(biāo)注點(diǎn)計(jì)算出來后,便在標(biāo)注點(diǎn)處插入標(biāo)注。下面是具體實(shí)現(xiàn)的代碼:

        acedCommand(RTSTR,"._dimaligned",RTPOINT,pt1,RTPOINT,pt2,RTPOINT,pt3,0);

        參數(shù)pt1,pt2是標(biāo)注線段的兩個(gè)端點(diǎn),pt3是標(biāo)注點(diǎn)坐標(biāo)。acedCommand是一個(gè)API函數(shù),其參數(shù)由一串參數(shù)類型及其值組成,并以0作為結(jié)束。如圖2和圖3是實(shí)際標(biāo)注效果圖。

        圖2 在房屋輪廓外標(biāo)注效果圖

        圖3 在房屋輪廓內(nèi)標(biāo)注效果圖

        4 結(jié)語

        本文詳細(xì)介紹了AutoCAD平臺下多邊形邊長自動標(biāo)注實(shí)現(xiàn)的方法,并利用VC.NET 2002和Object-ARX 2005作為開發(fā)工具,實(shí)現(xiàn)了該方法,給出了應(yīng)用實(shí)例。通過實(shí)踐表明,該方法有較強(qiáng)的針對性和實(shí)用性,提高了房屋分成平面示意圖的生產(chǎn)效率。

        [1] 李長勛.AutoCAD ObjectARX程序開發(fā)技術(shù)[M].北京:國防工業(yè)出版社,2005

        [2] Harvey M.Deitel,Paul J.Deitel著.郭凱,蔡飛譯.VC++.NET高級編程[M].北京:清華大學(xué)出版社,2004

        [3] 張晉西.Visula Basic與AutoCAD二次開發(fā)[M].北京:清華大學(xué)出版社,2002

        [4] 張帆.ObjectARX開發(fā)實(shí)例教程[M].北京智帆高科科技有限公司,2007

        [5] Charles McAuley著.李世國,潘建忠,平雪良譯.Programming AutoCAD 2000 Using ObjectARX[M].北京:機(jī)械工業(yè)出版社,2000

        [6] 李冠億.深居淺出AutoCAD二次開發(fā)開發(fā)基礎(chǔ).2010

        猜你喜歡
        共線二次開發(fā)邊長
        小議共線向量問題
        向量的共線
        大正方形的邊長是多少
        平面幾何中三點(diǎn)共線的常見解法
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        巧比邊長與轉(zhuǎn)化思想——以人教版三年級上冊為例
        西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
        三點(diǎn)共線向量式的巧妙應(yīng)用
        一個(gè)關(guān)于三角形邊長的不等式鏈
        亚洲人成无码www久久久| 视频国产自拍在线观看| 亚洲综合在线观看一区二区三区 | 日本在线一区二区三区四区 | 久久久久久久综合日本| 久久久久久岛国免费网站| 国模一区二区三区白浆| 一区二区三区少妇熟女高潮| 亚洲综合色视频在线免费观看| 水蜜桃男女视频在线观看网站| 一区二区三区激情免费视频| 亚洲av日韩综合一区久热| 全部孕妇毛片丰满孕妇孕交| 五月丁香六月综合激情在线观看| 青青草免费高清视频在线观看| 日韩极品在线观看视频| 久久亚洲av成人无码电影| 五月综合激情婷婷六月色窝| 国产爆乳乱码女大生Av| 99熟妇人妻精品一区五一看片| 亚洲国产人成综合网站| 国产亚洲综合一区二区三区| 熟妇高潮一区二区三区| 国产精品一区2区三区| 午夜一区二区三区在线观看| 森中文字幕一区二区三区免费| 99久久精品午夜一区二区| 欧美成人免费全部| av无码av在线a∨天堂app| 国产一品二品三品精品久久| 一本一道久久综合久久| 又爽又黄又无遮挡网站| 四虎影视永久在线精品| 精品视频在线观看一区二区有| 成人做爰黄片视频蘑菇视频| 成人精品一区二区三区电影| 免费a级毛片无码无遮挡| 中文在线а√天堂官网| 99精品国产av一区二区| 久久精品国产亚洲av性瑜伽| 国产特级毛片aaaaaa视频|