国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C#的AutoCAD二次開發(fā)在重卡線束圖的簡單應(yīng)用研究

2022-07-28 02:01:54張俊申瑋宋英華張嵐
汽車電器 2022年7期

張俊,申瑋,宋英華,張嵐

(中國重汽集團(tuán)汽車研究總院,山東 濟(jì)南 250002)

1 前言

線束系統(tǒng)作為車輛的“神經(jīng)”,對汽車電氣功能的實(shí)現(xiàn)起著至關(guān)重要且不可替代的作用,隨著汽車電器配置越來越高,線束系統(tǒng)隨之變得越來越復(fù)雜。目前,車輛系統(tǒng)的線束設(shè)計(jì)主要采用AutoCAD等軟件進(jìn)行二維設(shè)計(jì)。隨著制圖要求的不斷提高,在AutoCAD設(shè)計(jì)龐大的線束時,線束圖中的文字顏色與直線的顏色會依據(jù)公司傳統(tǒng)或個人習(xí)慣加以區(qū)分,這樣可以使得線束圖直觀、清晰明了,易于區(qū)分。而在線束圖紙?jiān)O(shè)計(jì)或者更改時,往往拿到的Auto-CAD線束圖紙中文字與直線等內(nèi)容顏色沒有統(tǒng)一,使得圖紙顯著很亂,不易區(qū)分,這樣就得花費(fèi)大量時間去統(tǒng)一線束圖紙中文字、直線的顏色,作者曾在設(shè)計(jì)線束圖紙的過程中,花費(fèi)大量時間去統(tǒng)一顏色,使得設(shè)計(jì)效率很低。借助AutoCAD的二次開發(fā),開發(fā)一個程序集,可以快速地將文字與直線顏色進(jìn)行統(tǒng)一就十分的必要。本文以初學(xué)者的視角,利用C#二次開發(fā)AutoCAD在重卡線束圖做了簡單的應(yīng)用研究,詳細(xì)論述了開發(fā)程序集的過程以及簡單的應(yīng)用過程。通過本文的簡單應(yīng)用研究,理清了C#二次開發(fā)Auto-CAD的原理,為后續(xù)線束設(shè)計(jì)輔助軟件、線束工藝軟件等的開發(fā)奠定了基礎(chǔ)。

2 AutoCAD二次開發(fā)基礎(chǔ)

2.1 AutoCAD二次開發(fā)語言介紹

AutoCAD是一款通用的計(jì)算機(jī)輔助設(shè)計(jì)軟件,具有完善的繪圖功能,提供了多種接口,易于不同行業(yè)的人員采用高級編程語言對其進(jìn)行擴(kuò)充和修改,豐富其附加功能,能最大限度地滿足用戶的特殊需求。AutoCAD第一版于1982年11月推出,其二次開發(fā)語言及工具也在不斷地涌現(xiàn)。開發(fā)環(huán)境對應(yīng)的編程語言有:AutoLISP、ADS、ObjectARX、VisualLISP、VBA、AutoCAD.NET等。本 文 利 用AutoCAD.NET框架,使用C#語言對AutoCAD進(jìn)行二次開發(fā)。

2.2 C#二次開發(fā)AutoCAD基礎(chǔ)簡介

AutoCAD有強(qiáng)大的數(shù)據(jù)庫而沒有數(shù)據(jù)分析能力,借助二次開發(fā)提取其數(shù)據(jù)庫中的數(shù)據(jù),同時利用Windows自帶的函數(shù)庫,可以對大量數(shù)據(jù)進(jìn)行分析,提高AutoCAD的使用效率。

眾所周知,C#是一種面向?qū)ο蟮木幊陶Z言,把一切當(dāng)成對象來處理。在C#二次開發(fā)AutoCAD過程中,AutoCAD圖紙中的直線、圓弧、文字和標(biāo)注等圖形是對象,圖層、組合、塊等都是對象。和其他二次開發(fā)語言相比,C#語言簡單易學(xué),成為二次開發(fā)AutoCAD的首選語言。

AutoCAD.NET API由不同的DLL文件組成,這些DLL文件包含有大量的類、結(jié)構(gòu)、方法及事件,用于訪問圖形文件對象或AutoCAD程序?qū)ο?。常用的AutoCAD.NET API的3個主要DLL文件如下。

1)acdbmgd.dll:當(dāng)處理圖形文件中存儲的對象時引用。

2)acmgd.dll:當(dāng)處理AutoCAD應(yīng)用程序和用戶接口時引用。

3)accui.dll:當(dāng)處理自定義文件時引用。

本文所引用的接口為acdbmgd.dll與acmgd.dll。

3 AutoCAD二次開發(fā)過程

3.1 建立程序集及添加引用

在Visual Studio軟件中新建一個類庫項(xiàng)目,如圖1所示。不同版本的AutoCAD對應(yīng)不同的.net框架,由于本文是在AutoCAD2007版本中進(jìn)行的,故框架選擇.net3.5。

圖1 新建類庫項(xiàng)目

在Visual Studio軟件中添加AutoCAD的程序接口acdbmgd.dll、acmgd.dll,將復(fù) 制 本地改為False,如圖2所示。

圖2 添加引用

在編寫程序集之前,需使用如圖3所示的命名空間。命名空間里包含大量的類、結(jié)構(gòu)、方法及事件,用于訪問圖形文件對象或AutoCAD程序?qū)ο蟆?/p>

圖3 使用命名空間

注冊命令“TH7”如圖4所示。此命令相當(dāng)于程序集的指令,當(dāng)發(fā)送此指令后,程序才開始運(yùn)行。后續(xù)在AutoCAD命令欄輸入“TH7”后,編寫的程序集才開始執(zhí)行。

圖4 注冊命令“TH7”

3.2 二次開發(fā)在重卡線束圖紙的應(yīng)用原理

重卡的線束圖紙中主要包括導(dǎo)線信息(線號、線色、線徑、端子等)、波紋管長度、文字說明、插接器圖例等,如圖5所示。

圖5 重卡線束圖紙

在二次開發(fā)過程中,可以籠統(tǒng)地把線束圖紙分為單行文本與直線等數(shù)據(jù)組成,這些數(shù)據(jù)記錄在AutoCAD數(shù)據(jù)庫中,通過調(diào)用其數(shù)據(jù)庫,然后通過選擇集的操作,可以分別得到單行文本與直線信息,分別對其屬性進(jìn)行更改,將得到我們想要的效果。

3.3 遍歷AutoCAD數(shù)據(jù)庫得到單行文本與直線數(shù)據(jù)

在遍歷AutoCAD數(shù)據(jù)庫之前,需要理解AutoCAD對象層次,如圖6所示。

圖6 AutoCAD對象層次示意圖

Application對 象 是AutoCAD.NET API的 根 對 象,從Application對象,可以訪問AutoCAD主窗口,以及任何打開的圖形,并進(jìn)而訪問圖形里的各個對象。Application對象有一個DocumentManager屬性,用來返回DocumentCollection對象,該對象提供了訪問當(dāng)前打開的AutoCAD圖形的功能,并允許創(chuàng)建、保存、打開圖形文件。

Document對 象,實(shí) 際 上 就 是 一 個AutoCAD圖 形,是DocumentCollection對象的一部分,提供了訪問與Document對象相關(guān)聯(lián)的Database對象的功能。

Database對象包含AutoCAD所有的圖形對象和絕大部分非圖形對象,其中包括實(shí)體(圖元)、符號表、命名字典等。實(shí)體(圖元)表示圖形里的圖形對象,直線、圓、弧線、文字、填充和多義線等都是實(shí)體。

由此可以編程遍歷AutoCAD數(shù)據(jù)庫Database,并通過選擇集的操作可分別得到單行文本與直線的數(shù)據(jù),獲取程序如圖7所示。

圖7 獲取單行文本與直線程序

通過以上代碼,程序?qū)⒈闅v線束圖紙的數(shù)據(jù)庫,通過選擇集的設(shè)置,分別得到單行文本對象與直線對象。

3.4 更改單行文本對象與直線對象顏色

通過遍歷AutoCAD數(shù)據(jù)庫得到的單行文本對象與直線對象,對其顏色的屬性值ColorIndex進(jìn)行賦值,即可改變其顏色。ColorIndex值可在AutoCAD圖紙中,通過命令欄鍵入LI,即可得到。本文因公司傳統(tǒng)習(xí)慣,將文字顏色更改為青色,直線更改為綠色,這樣可以使圖紙較為整齊,清晰明了。青色與綠色的ColorIndex賦值通過鍵入LI得到,如圖8~圖9所示。

圖8 綠色的ColorIndex值

圖9 青色的ColorIndex值

由圖8~圖9可以看出,綠色的ColorIndex值為3,青色的ColorIndex值為4,通過編寫函數(shù)分別對其ColorIndex進(jìn)行相應(yīng)的賦值,編寫更改顏色的函數(shù)代碼如圖10所示。

圖10 編寫更改顏色的函數(shù)

將改變顏色的函數(shù)寫入主函數(shù),便可以實(shí)現(xiàn)線束圖紙顏色的改變。主程序如圖11所示。

圖11 主程序

4 程序集的使用

在程序集的屬性里將名稱更改為“更改線色和文字顏色”,如圖12所示,然后生成解決方案,在默認(rèn)文件夾下,就會生成“更改線色和文字顏色.dll”的程序集。

圖12 更改程序集名稱

打開已完成或者正在設(shè)計(jì)的AutoCAD線束圖紙,在AutoCAD命令欄鍵入“netload”命令,加載“更改線色和文字顏色.dll”程序集,如圖13所示。最后鍵入之前的注冊命令“TH7”,就會發(fā)現(xiàn)線束圖紙中的文字顏色與直線顏色迅速改變成設(shè)定的顏色。

圖13 加載編輯好的程序集

5 結(jié)論

本文以初學(xué)者的視角,利用C#二次開發(fā)AutoCAD在重卡線束圖的應(yīng)用做了簡單的研究,詳細(xì)論述了開發(fā)程序集的過程以及簡單的應(yīng)用過程。通過對AutoCAD二次開發(fā)在重卡線束圖的簡單應(yīng)用研究,收獲與優(yōu)勢有以下幾點(diǎn)。

1)利用C#二次開發(fā)AutoCAD,可以節(jié)省設(shè)計(jì)員的時間,極大地提高設(shè)計(jì)員設(shè)計(jì)效率,相對比人工更改圖紙而言,速度快且準(zhǔn)確度高。

2)AutoCAD具有強(qiáng)大的數(shù)據(jù)庫而沒有數(shù)據(jù)分析能力,借助二次開發(fā)可以對其數(shù)據(jù)庫中的大量數(shù)據(jù)進(jìn)行操作,得到想要的結(jié)果。

3)摸清了C#二次開發(fā)AutoCAD的原理,為后續(xù)開發(fā)線束圖紙?jiān)O(shè)計(jì)輔助軟件的開發(fā)、線束圖紙工藝軟件的開發(fā)奠定了扎實(shí)的基礎(chǔ)。

本文介紹了C#二次開發(fā)AutoCAD在重卡線束圖紙的開發(fā)過程,對線束圖紙中更改文字顏色與直線顏色的簡單應(yīng)用做了研究。在此次開發(fā)過程中,作者查閱了大量資料,學(xué)到二次開發(fā)很多知識與方法,為后續(xù)開發(fā)輔助軟件開發(fā)打下扎實(shí)的基礎(chǔ)。本文所闡述的程序集,已經(jīng)集成于后續(xù)線束輔助軟件里,得到普遍的應(yīng)用。

奉节县| 大英县| 永兴县| 克山县| 淄博市| 宝丰县| 河西区| 清涧县| 和龙市| 旺苍县| 枣强县| 商水县| 合江县| 定西市| 海盐县| 婺源县| 肇庆市| 安陆市| 石首市| 乐平市| 南安市| 武乡县| 清水县| 景谷| 迁安市| 通州区| 林周县| 清新县| 淮南市| 平遥县| 雅江县| 永修县| 安岳县| 安平县| 永丰县| 永德县| 临江市| 木兰县| 辉南县| 丰台区| 酉阳|