亚洲免费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)于三角形邊長的不等式鏈
        二区三区视频在线观看| 人妻在卧室被老板疯狂进入| 免费操逼视频| 97色伦图片97综合影院久久| 国产精品国产三级国产av主| 少妇厨房愉情理伦片免费| 999国产精品999久久久久久| 无码人妻丰满熟妇啪啪网站| 久久综合精品国产一区二区三区无码 | 亚洲精品无amm毛片| 香蕉成人啪国产精品视频综合网| 成人在线免费视频亚洲| 亚洲女同高清精品一区二区99| 国产免费人成视频网站在线18| 亚洲无av在线中文字幕| 成人网站免费大全日韩国产| 国产乱子伦视频一区二区三区| 日本av一区二区在线| 日本一区二区三区免费精品| 国产台湾无码av片在线观看| 综合无码一区二区三区四区五区| 精品日韩av专区一区二区| 人妻久久久一区二区三区蜜臀| 无码人妻精品一区二区三区不卡| 久久精品性无码一区二区爱爱| 国产黄片一区二区三区| 亚洲日韩精品无码专区网址| 99亚洲精品久久久99| 色欧美与xxxxx| 国产一区二区三区四区在线视频 | 青青草免费在线视频久草| 美女不带套日出白浆免费视频| 国产精品99久久免费| av毛片一区二区少妇颜射| 国产高清在线视频一区二区三区| 暖暖视频在线观看免费| 成人在线免费视频亚洲| 久亚洲精品不子伦一区| 曰欧一片内射vα在线影院| 亚洲综合无码一区二区| 免费在线观看亚洲视频|