久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團論壇DSP專區DSP6000系統開發 → 基于ObjectARX的焊接符號標注系統開發


  共有9086人關注過本帖樹形打印

主題:基于ObjectARX的焊接符號標注系統開發

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
基于ObjectARX的焊接符號標注系統開發  發帖心情 Post By:2010-11-22 13:45:54

摘要:對在AutoCAD2000中實現焊接符號快速標注的原理和方法進行了研究,提出了以人機交互方式實現焊接符號標注的系統運行模式,設計了具有良好人機學特性的系統界面,極大地提高了焊接符號標注的效率。以VisualC  6.0和ObjectARX3.0為開發工具,運用自定義實體類技術,通過對一系列ObjectARX類函數的重載,開發了基于AutoCAD2000的焊接符號快速標注系統。詳細討論了從AcDbEntity類派生自定義焊接符號類所涉及的相關應用技術。

關鍵詞:焊接符號;ObjectARX;AcDbEntity類;AcEdJig類;AcDbObject類

 

AutoCAD是目前微機系統中廣泛使用的CAD繪圖軟件,利用它可以大大提高繪圖的效率和自動化程度。但AutoCAD本身是一個通用的CAD支撐軟件,隨著CAD應用的不斷深入,應用范圍的不斷拓寬,越來越多的用戶需要借助二次開發來使該系統更好地適應本地使用需求。很多行業有自己的專用符號體系,各自的標注規則,這時AutoCAD自帶的標注系統很難滿足用戶的需求。好在AutoCAD提供了很強的二次開發手段,借助這些開發手段,可以把這種使用率很高的繪圖過程用簡單的命令加以實現。

 

ObjectARX(AutoCADRuntimeeXtension)工具是Autodesk公司推出的一種新的AutoCAD二次開發工具,采用并支持面向對象技術,是新一代AutoCAD二次開發的首選工具[1]。利用它的類庫,可解決許多AutoLisp、ADS、VBA難以解決或不能解決的問題[2],提高開發效率。ARX應用程序利用AutoCAD核心數據庫結構、圖形系統、幾何造型核心及代碼,建立和AutoCAD本身固有命令有同樣操作方式的新命令。利用ObjectARX開發工具進行CAD應用系統開發已有一些成功的案例,如用ObjectARX開發滑動軸承結構CAD設計系統。[3]

 

本文對在AutoCAD中實現機械設計中常用的焊接符號的標注進行了深入研究。本系統以Auto CAD2000為平臺,以VisualC  6.0和ObjectARX3.0為二次開發工具[4],成功地實現了常用焊接符號的標注。本系統以選擇坡口的形式來決定焊接符號,符合設計人員的設計習慣,把用戶從繁雜的焊接符號選擇和組合中解放出來。本標注系統生成的焊接符號是從AcDbEntity類派生的自定義類的對象,因此它具有AutoCAD實體的各種屬性和操作方式。焊接符號生成后用戶可以很方便地修改它的層、字體,對它進行平移、縮放、拉伸等操作,極大地滿足了后期對設計圖進行編輯和修改的需要。

 

1 系統開發、運行環境

 

本系統是在VisualC  6.0和ObjectARX3.0編程環境下開發的,可在AutoCAD2000下動態加載運行,操作系統為Windows98或Windows2000。

 

2 系統結構及實現

 

本系統主要由三大部分組成,包括實現焊接符號的選擇及焊接參數輸入的對話框類、實現焊接標注的自定義實體類、實現以拖動方式創建焊接標注的自定義類。

 

2.1 實現焊接符號的選擇及焊接參數輸入的對話框類

 

這是系統的用戶界面。通過此用戶界面,用戶可進行焊接符號的選擇和焊接參數的輸入,如圖1所示。用戶通過選擇焊接類型、焊縫類型、焊接的坡口形式,并輸入所選坡口參數進行焊接符號的標注,操作過程直觀、簡便[5,6]。

 

圖1 用戶界面  2.2 實現焊接標注的自定義實體類

 

實現焊接標注的自定義實體類是由AcDbEntity類派生而來的,因此在程序中必須重載AcDbEntity類及其父類AcDbObject的虛函數。實現焊接標注的自定義實體類是本系統開發的關鍵部分。

 

2.2.1 重載函數worldDraw()

AutoCAD調用函數worldDraw()在屏幕上顯示實體,因此從基類AcDbEntity中派生自定義類時必須重載函數worldDraw()。其函數原型為:

virtualAdesk::BooleanworldDraw(AcGiWorldDraw mode)。

函數worldDraw()用于繪制圖形中與指定的模型空間或圖紙空間視口內容無關的部分。World Draw()接受一個指向類AcGiWorldDraw對象的參數。對于AcGi類庫中的幾何對象和特征對象,類AcGi WorldDraw是一個容器類。它包括兩個對象:AcGi WorldGeometry對象和AcGiSubEntityTraits對象。在函數worldDraw()中,可以通過調用函數AcGiWorld Draw::geometry()來訪問AcGiWorldGeometry對象,通過調用函數AcGiWorldDraw::subEntityTraits()來訪問AcGiSubEntityTraits對象。

 

2.2.2 重載函數getGripPoints()和moveGripPointsAt()

為了實現自定義實體的夾點功能,本系統重載了這兩個函數。當用戶使用定點設備選擇實體時,AutoCAD調用函數getGripPoints()返回實體類定義的夾點,并顯示該實體的夾點。此時AutoCAD就可以通過調用函數moveGripPointsAt()實現夾點編輯的移動操作。這兩個函數的原型為:

virtualAcad::ErrorStatusgetGripPoints(AcGe Point3dArraygripPoints,AcDbIntArray&osnapModes,AcDbIntArray&geomIds)const;

virtualAcad::ErrorStatusmoveGripPointsAt(constAcDbIntArrayindices,constAcGeVector3doffset)。

 

2.2.3 重載函數getStretchPoints()和moveStretch PointsAt()

實體的拉伸點集合通常是該實體的夾點集合的一個子集,當用戶執行命令STRETCH時,AutoCAD調用函數getStretchPoints()返回被選擇實體中定義的所有拉伸點。對于大多數實體來說,夾點編輯模式和拉伸點編輯模式是一致的。在本系統中函數getStretchPoints()和moveStretchPointsAt()只是調用了重載過后的getGripPoints()和moveGripPointsAt()函數。getStretchPoints()和moveStretchPointsAt()函數的原型為:

virtualAcad::ErrorStatusgetStretchPoints(AcGe Point3dArray)const;

virtualAcad::ErrorStatusmoveStretchPointsAt(constAcDbIntArrayindices,constAcGeVector3d&offset)。

 

2.2.4 重載函數transformBy()和getTransformedCopy()

 

類AcDbEntity提供了兩個轉換函數:一個是函數transformBy(),它對實體進行指定的矩陣變換操作;另一個是函數getTransformedCopy(),它首先復制自身,然后再對復制實體進行指定的矩陣變換,并返回變換后的復制實體。當用戶使用編輯中的移動、旋轉、比例縮放和鏡像模式時,AutoCAD就調用這兩個函數之一來實現相應的操作。這兩個函數的原型為:

virtualAcad::ErrorStatustransformBy(constAcGe Matrix3dxform);

virtualAcad::ErrorStatusgetTransformedCopy(constAcGeMatrix3dxform,AcDbEntity &ent)const。

 

2.2.5 重載函數explode()

本系統中為了使AutoCAD的EXPLODE和BHATCH命令能正常運行,在應用程序的自定義類中重載了函數explode(),重載后的explode()函數將自定義實體分解為簡單的本地實體。如果分解后的實體不是本地實體,BHATCH命令會再次調用函數explode()進行分解,直至它們被分解為本地實體為止。BHATCH命令能直接操作的本地實體有:AcDb2dPolyline、AcDb3dPolyline、AcDbPolyline、AcDb Text、AcDbMText、AcDbShape、AcDbTrace、AcDbSolid、AcDbFace、AcDbViewport、AcDbFcf、AcDbDimension、AcDbRegion、AcDbBlockReference、AcDbHatch等。此函數的原型為:virtualAcad::ErrorStatusexplode(AcDbVoidPtrArrayentitySet)const。

 

2.2.6 重載文件操作函數

當從類AcDbEntity派生自定義類時,需要重載AcDbEntity類的父類AcDbObject的4個用于從DWG和DXF文件中讀寫數據的函數。函數原型為:

virtualAcad::ErrorStatusdwgInFields(AcDbDwg Filer filer);

virtualAcad::ErrorStatusdwgOutFields(AcDbDwg Filer filer)const;

virtualAcad::ErrorStatusdxfInfields(AcDbDxfFiler filer);

virtualAcad::ErrorStatusdxfOutFields(AcDbDxf Filer filer)const。

 

以上每個函數的主要參數都是一個文件操作類(AcDbDwgFiler或AcDbDxfFiler)的指針,使用這個參數,可以完成對DWG或DXF文件數據的讀寫操作。自定義類中重載了這4個函數后,就可以持久的保存對象,實現復制和撤銷操作。

 

派生AcDbEntity自定義類時需要注意2個問題:

 

1)定義了自定義類的應用程序在運行初始化時必須調用函數rxInit(),它由任意一個ACRXxxxDEFINEMEMBERS()宏自動定義,并完成下面的任務:注冊自定義類;創建類的描述符對象;將類描述符對象添加到類詞典中。然后調用函數acrxBuild ClassHierarchy()把該類添加到ACRX運行類層次中,最后在應用程序的卸載函數中通過調用函數deleteAcRxClass()將該類從ACRX運行類層次中刪除。

 

2)當自定義類中定義一個新的成員函數或重載基類的虛函數時,首先應該調用函數assertReadEn abled()或assertWriteEnabled()或assertNotifyEnabled來校驗對象是否處于正確的打開狀態。

 

2.3 實現以拖動方式創建焊接標注的自定義類

 

為了在創建焊接標注的過程中實現拖動的效果,本系統從基類AcEdJig派生了一個自定義類用來實現此功能。類AcEdJig用于完成拖動效果,通常用于查詢、創建、編輯和添加一個新的實體到數據庫中。從基類AcEdJig派生新類必須重載成員函數:AcEdJig::sampler()、AcEdJig::update()和AcEd Jig::entity()。這3個函數分別用于獲得一個幾何值,如角度、距離、輸入點等;分析并保存獲得的幾何值或者更新實體;返回重構后的實體指針[7]。

 

本系統在自定義類中定義了一個重要的成員函數doIt(),它用來實現拖動循環過程。函數doIt()首先調用函數setDispPrompt()來顯示提示字符串,然后調用drag()函數來控制拖動循環。在拖動循環過程中,函數drag()依次調用sampler()、update()和en tity()函數,直至循環結束。

 

拖動循環過程如圖2所示。圖中的代表用戶從AcEdJig基類派生的自定義類。

 

圖2 程序流程圖    由本系統生成的焊接標注實例如圖3所示。

 

圖3 標注實例  3 結束語

 

對基于AutoCAD平臺的應用程序開發進行了有益的嘗試,采用ObjectARX與VisualC  結合編程的方法可方便地在AutoCAD2000中實現焊接符號的自動標注。利用ObjectARX提供的類和函數可深入到AutoCAD系統內核;利用VisualC  進行Win dows風格的編程,可以大大提高開發效率,能更迅速、更準確地實現二次開發目的。利用本文提出的開發原理和實現方法開發的焊接符號標注系統在運行效率、對象管理、用戶界面和智能化程度等方面都有了突破性的進步,為基于AutoCAD平臺的應用程序開發提供了一種可行方案。

 


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

基于ObjectARX的焊接符號標注系統開發








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
99视频精品全部免费在线| 亚洲成av人片一区二区三区| 欧美三级电影一区| 欧美日韩精品高清| 精品国产免费人成在线观看| 国产精品蜜臀av| 亚洲国产中文字幕在线视频综合| 视频精品一区二区| 国产成人在线电影| 成人性色av| 亚洲一区二三| 88在线观看91蜜桃国自产| 久久久www成人免费毛片麻豆| 国产精品成人免费| 天天免费综合色| 成人一级片网址| 蜜桃日韩视频| 欧美三级中文字幕| 欧美经典一区二区三区| 亚洲国产成人tv| 成人一区二区三区在线观看| 久久久精品动漫| 精品视频在线免费看| 国产日韩视频一区二区三区| 天天操天天色综合| 99精品国产一区二区三区不卡| 精品欧美日韩在线| 在线电影欧美成精品| 国产精品传媒视频| 久久成人免费日本黄色| 国产精品国产精品国产专区蜜臀ah| 亚洲午夜精品国产| 久久久噜噜噜久久中文字幕色伊伊 | 国产精品一区免费观看| 色偷偷久久一区二区三区| 亚洲精品一线二线三线| 亚洲成人一区在线| 3d蒂法精品啪啪一区二区免费| 亚洲一区bb| 欧美高清在线精品一区| 韩国一区二区三区| 三区精品视频| 久久精品亚洲精品国产欧美| 久久99精品久久久久久动态图| 国产欧美日韩一区二区三区| 91麻豆精品国产| 视频一区欧美日韩| 久久涩涩网站| www精品美女久久久tv| 久久精品国产秦先生| 欧美高清视频一区| 2欧美一区二区三区在线观看视频| 日韩电影免费在线看| 国产一区二区高清视频| 欧美白人最猛性xxxxx69交| 日韩av成人高清| 欧美日韩亚洲一区二区三区在线观看 | 国产精品视频yy9299一区| 国产专区欧美精品| 亚洲欧美日韩精品在线| 国产精品家庭影院| 97久久超碰精品国产| 欧美日韩dvd在线观看| 日本aⅴ精品一区二区三区| 欧美日韩最好看的视频| 国产三级精品视频| 不卡的电影网站| 欧美一级一区二区| 国产一区不卡在线| 欧美日韩免费视频| 裸体一区二区三区| 91国产成人在线| 肉丝袜脚交视频一区二区| 欧洲成人一区二区| 亚洲免费观看高清| 免费观看国产成人| 亚洲欧美另类久久久精品 | 欧美日韩精品系列| 秋霞av亚洲一区二区三| 日韩免费av电影| 亚洲一卡二卡三卡四卡无卡久久| 久久久久天天天天| 亚洲品质自拍视频| 欧美一区2区三区4区公司二百| 亚洲欧美日韩精品久久久久| 精品国产乱码久久久久久久软件| 久久久久9999亚洲精品| 本田岬高潮一区二区三区| 精品日产卡一卡二卡麻豆| eeuss鲁一区二区三区| 精品伦理精品一区| 91色视频在线| 国产精品入口麻豆九色| 精品一区二区国产| 亚洲精品成a人| 一本一道久久久a久久久精品91| 亚洲成a人在线观看| 色偷偷久久一区二区三区| 久久er99热精品一区二区| 欧美日韩精品专区| 成人午夜精品一区二区三区| xnxx国产精品| 久久超碰亚洲| 婷婷国产v国产偷v亚洲高清| 欧美亚洲一区三区| 国产suv精品一区二区三区| 欧美精品一区二区在线播放 | 欧美激情论坛| 丝袜诱惑制服诱惑色一区在线观看| 一区二区高清视频| 国产伦精品一区二区三区免费迷 | 99国产视频在线| 国产精品电影一区二区三区| 日本视频一区在线观看| 日韩二区三区四区| 日韩欧美国产系列| 国产一区二区高清不卡| 亚洲一区二区三区小说| 欧美三级在线播放| av在线这里只有精品| 自拍偷拍国产精品| 在线视频一区二区三区| 成人av免费在线| 亚洲免费电影在线| 精品视频在线看| 97久久精品人人做人人爽50路| 1000精品久久久久久久久| 一本色道综合亚洲| 91在线porny国产在线看| 一区二区不卡在线视频 午夜欧美不卡在 | 精品免费99久久| 久久精品国产综合精品| 久久99国产精品久久99| 久久精品夜色噜噜亚洲aⅴ| 日韩视频专区| 风间由美一区二区av101| 亚洲欧美日韩精品久久久久| 欧美日韩精品一区二区三区四区| 97人人模人人爽人人喊38tv| 亚洲成a人片在线不卡一二三区| 欧美一级高清片在线观看| 激情伦成人综合小说| 精品一区在线看| 亚洲四区在线观看| 欧美一区在线视频| 少妇特黄a一区二区三区| 国产 日韩 欧美大片| 亚洲在线一区二区三区| 欧美成人精品二区三区99精品| 欧美日韩在线精品| 国产黄色精品视频| 亚洲一区二区三区视频在线| 欧美变态tickling挠脚心| 亚洲一区二区不卡视频| 91亚洲男人天堂| 精品在线播放免费| 一区二区三区四区激情| 精品国产乱码久久久久久夜甘婷婷| 日韩欧美电影一区二区| 91久久精品国产91久久性色tv | 国产91在线观看| 天天影视色香欲综合网老头| 日本一区二区三区在线观看| 欧美日韩成人一区二区| 日韩欧美视频一区二区| 成人h视频在线观看| 国产69精品久久久久毛片| 亚洲超碰97人人做人人爱| 欧美—级在线免费片| 欧美一级午夜免费电影| 中文字幕中文字幕一区三区| 国产精品久久久久久久久婷婷| 国产乱码精品一区二区三区五月婷| 亚洲一区二区在线免费观看视频| 国产亚洲女人久久久久毛片| 7777精品伊人久久久大香线蕉 | 欧美浪妇xxxx高跟鞋交| 亚洲欧美精品在线观看| 国内视频一区| 91在线porny国产在线看| 国产一区二区成人久久免费影院 | 欧美日韩国产一级片| 亚洲a∨一区二区三区| 精品欧美国产| 91高跟黑色丝袜呻吟在线观看| 国产九九视频一区二区三区| 蜜桃在线一区二区三区| 亚洲电影视频在线| 亚洲另类中文字| 国产精品美女一区二区三区 | 久久 天天综合| 日韩高清在线电影| 亚洲国产成人va在线观看天堂| 中文字幕av在线一区二区三区| 欧美一级一级性生活免费录像| 欧美人妇做爰xxxⅹ性高电影| 一本到三区不卡视频| 亚洲成人av动漫| 亚洲视频sss| 亚洲国产一区在线|