洪長豹
在頭文件上面添加#include "resource.h"就可以了。在CAD里面彈出一個對話框很簡單的,不要想復雜了。
孔孝德
先學會用CAD ,再學會C,最后學會用C開發(fā)CAD。
元象圈
在CAD里面,判斷圖層打開與關閉有以下程序給你參考:
;;恢復圖層狀態(tài);;(defun unall ( / lay) (if (null vlax-dump-object) (vl-load-com) ) (vlax-for lay (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))) (if (= (vla-get-lock lay) :vlax-true);如果圖層鎖定(【:vlax-false】未鎖定) (vla-put-lock lay :vlax-false) ;解鎖 ) (if (= (vlax-get-property lay "Freeze") :vlax-true);凍結(【:vlax-False】未凍結) (vla-put-Freeze lay :vlax-False);解凍 ) (if (= (vlax-get-property lay "LayerOn") :vlax-false);關閉(【:vlax-true】打開) (vla-put-LayerOn lay :vlax-true);打開 ) ))
你的程序或許可以利用判斷來動作:
(defun unall ( / lay) (if (null vlax-dump-object) (vl-load-com) ) (vlax-for lay (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))) (if (and (= (vla-get-lock lay) :vlax-false) (= (vlax-get-property lay "Freeze") :vlax-false) (= (vlax-get-property lay "LayerOn") :vlax-true) ) (progn ;(princ (setq lay1 (vla-get-name lay))) ;lay1是(圖層的名稱) ;在這個里面加你的動作 ) ) ))
不懂C#只會CAD,這個是,利用VBA獲得圖層情況。
五岳行者
第一個程序:畫一百個同心圓第一步:復制下面的紅色代碼第二步:在模型空間按快捷鍵Alt+F8,出現(xiàn)宏窗口第三步:在宏名稱中填寫C100,點“創(chuàng)建”、“確定”第四步:在Sub c100()和End Sub之間粘貼代碼第五步:回到模型空間,再次按Alt+F8,點擊“運行”Sub c100()Dim cc(0 To 2) As Double '聲明坐標變量cc(0) = 1000 '定義圓心座標cc(1) = 1000cc(2) = 0For i = 1 To 1000 Step 10 '開始循環(huán) Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '畫圓Next iEnd Sub也許您還看不懂上面的代碼,這沒有關系,只要能把同心畫出來就可以了,祝您成功。第二課 編程基礎本課主要任務是對上一課的例程進行詳細分析下面是源碼:Sub c100()Dim cc(0 To 2) As Double '聲明坐標變量cc(0) = 1000 '定義圓心座標cc(1) = 1000cc(2) = 0For i = 1 To 1000 Step 10 '開始循環(huán) Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '畫圓Next iEnd Sub先看第一行和最后一行:Sub C100()……End SubC100是宏的名稱,也叫過程名稱,當用戶執(zhí)行C100時程序?qū)⑦\行sub 和end sub之間的所有指令。第二行:Dim cc(0 To 2) As Double '聲明坐標變量后半段“'聲明坐標變量”自動變?yōu)榫G色字體,它是代碼語句的注釋,它不會影響程序運行,它的作用是告訴閱讀者程序員的想法。對于簡單的程序,一般不需要寫注釋,如果要編寫非常復雜的程序,最好要多加注釋,越詳細越好,對于程序員來說,這是一個好習慣。電腦真正編譯執(zhí)行的是這條語句:Dim cc(0 To 2) As Double它的作用就是聲明變量。Dim是一條語句,可以理解為計算機指令。它的語法:Dim變量名 As 數(shù)據(jù)類型本例中變量名為CC,而括號中的0 to 2聲明這個CC是一個數(shù)組,這個數(shù)組有三個元素:CC(0)、CC(1)、CC(2),如果改為CC(1 to 3),則三個元素是CC(1)、CC(2)、CC(3),有了這個數(shù)組,就可以把坐標數(shù)值放到這個變量之中。Double是數(shù)據(jù)類型中的一種。ACAD中一般需要定義坐標時就用這個數(shù)據(jù)類型。在ACAD中數(shù)據(jù)類型的有很多,下面兩個是比較常用的數(shù)據(jù)類型,初學者要有所理解。Long(長整型),其范圍從 -2,147,483,648 到 2,147,483,647。Variant 它是那些沒被顯式聲明為其他類型變量的數(shù)據(jù)類型,可以理解為一種通用的數(shù)據(jù)類型,這是最常用的。下面三條語句cc(0) = 1000 '定義圓心座標cc(1) = 1000cc(2) = 0它們的作用是給CC變量的每一個元素賦,值其順序是X、Y、Z坐標。For i = 1 To 1000 Step 10 '開始循環(huán)……Next i '結束循環(huán)這兩條語句的作用是循環(huán)運行指令,每循環(huán)一次,i值要增加10,當i加到 1000時,結束循環(huán)。i也是一個變量,雖然沒有聲明i變量,程序還是認可的,VB不是C語言,每用一個變量都要聲明,不聲明就會報錯。簡單是簡單了,這樣做也有壞處,如果不小心打錯了一個字母,程序不會報錯,如果程序很長,那就會出現(xiàn)一些意想不到的錯誤。step后面的數(shù)值就是每次循環(huán)時增加的數(shù)值,step后也可以用負值。例如:For i =1000 To 1 Step -10 很多情況下,后面可以不加step 10如:For i=1 to 100,它的作用是每循環(huán)一次i值就增加1Next i語句必須出現(xiàn)在需要結束循環(huán)的位置,不然程序沒法運行。下面看畫圓命令:Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10)Call語句的作用是調(diào)用其他過程或者方法。ThisDrawing.ModelSpace是指當前CAD文檔的模型空間AddCircle是畫圓方法Addcicle方法需要兩個參數(shù):圓心和半徑CC就是圓心坐標,i*10就是圓的半徑,本例中,這些圓的半徑分別是10、110、210、310……本課到此結束,下面請完成一道思考題:1.以(4,2)為圓心,畫5個同心圓,其半徑為1-5第三課 編程基礎二繪制三維多段線時X、Y值在屏幕上用鼠標選取,Z值用鍵盤輸入本課將講解這個問題。為了簡化程序,這里用多條直線來代替多段線。以下是源碼:Sub myl()Dim p1 As Variant '申明端點坐標Dim p2 As Variantp1 = ThisDrawing.Utility.GetPoint(, "輸入點:") '獲取點坐標z = ThisDrawing.Utility.GetReal("Z坐標:") '用戶輸入Z坐標值p1(2) = z '將Z坐標值賦予點坐標中On Error GoTo Err_Control '出錯陷井Do '開始循環(huán) p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "輸入下一點:") '獲取下一個點的坐標 z = ThisDrawing.Utility.GetReal("Z坐標:") '用戶輸入Z坐標值 p2(2) = z '將Z坐標值賦予點坐標中 Call ThisDrawing.ModelSpace.AddLine(p1, p2) '畫直線 p1 = p2 '將第二點的端點保存為下一條直線的第一個端點坐標LoopErr_Control:End Sub先談一下本程序的設計思路:1、獲取第一點坐標2、輸入第一點Z坐標3、獲取第二點坐標4、輸入第二點Z坐標5、以第一、二點為端點,畫直線6、下一條線的第一點=這條線的第二點7、回到第3步進行循環(huán)如果用戶沒有輸入坐標或Z值,則程序結束。首先看以下兩條語句:p1 = ThisDrawing.Utility.GetPoint(, "輸入點:") ‘獲取點坐標……p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "輸入下一點:") '獲取下一個點的坐標這兩條語句的作用是由用戶輸入點用鼠標選取點坐標,并把坐標值賦給p1、p2兩個變量。ThisDrawing.Utility.GetPoint()在ACAD中這是最常用的方法之一,它需要兩個參數(shù),在逗號前面的參數(shù)應該是一個點坐標,它的作用是在屏幕上畫一條線,前一個端點位于點坐標位置,后一個端點跟隨鼠標移動,逗號之前可以什么都不填,這時沒有線條會跟隨鼠標移動,但逗號必須保留。逗號后面使用一串字符,程序在命令行顯示這串字符,這不難理解。VbCr通常代表一個回車符,而在這個語句中,它的作用是在命令行不顯示“命令:”&的作用是連接字符。舉例:“愛我中華 ”&”抵制日貨 ”&”從我做起”z = ThisDrawing.Utility.GetReal("Z坐標:") '用戶輸入Z坐標值由用戶輸入一個實數(shù)On Error GoTo Err_Control '出錯陷井……Err_Control:On Error是出錯陷井語句,在程序出錯時將執(zhí)行On Error 后面的語句GoTo Err_contorl 是程序跳轉(zhuǎn)語句,它的作用是在程序中尋找Err_control:,并執(zhí)行這一行后面的語句,本例中Err_Control:后就是結束宏,所以只要出現(xiàn)錯誤,程序中止。Do '開始循環(huán)……Loop ‘結束循環(huán)這個循環(huán)就歷害了,它會無休止地進行循環(huán),好在本例中已經(jīng)有了一個出錯陷井,當用戶輸入回車時,由于程序沒有得到點或坐標,程序出錯,跳出循環(huán),中止程序。如果要人為控制跳出循環(huán),可以在代碼中用Exit Do語句跳出循環(huán)。在For 變量 和Next 變量之間如果要跳出循環(huán),那么只要在循環(huán)體內(nèi)加一個Exit for 就可以跳出循環(huán),關于這方面的例程以后會講到。Call ThisDrawing.ModelSpace.AddLine(p1, p2) '畫直線畫直線方法也是很常用的,它的兩個參數(shù)是點坐標變量本課到此結束,請做思考題:連續(xù)畫圓,每次要求用戶輸入圓心、半徑,當用戶不再輸入圓心或半徑時程序才退出第四課 程序的調(diào)試和保存人非圣賢,孰能無過,初學者在編寫復雜程序時往往會出現(xiàn)一些意想不到的錯誤,所以程序的調(diào)試顯得尤為重要,隨著學習的深入,以后我們需要經(jīng)常進行程序調(diào)試。事實上,對于那些資深程序員來說,調(diào)試程序也是一項不可或缺的重要工作。首先,在程序輸入階段,應該充分利用VBA編輯器的智能功能。當你在寫代碼時,輸入一些字母后,編輯器可以自動列出合適的語句、對象、函數(shù)供你選擇,可以用上下鍵選擇,然后按TAB鍵(它位于“Q”鍵左邊)確認。當輸入一個回車符后程序會自動對這條語句進行分析,如果出現(xiàn)錯誤就會提示。我們經(jīng)常碰到的麻煩是程序的運行結果和預計的不一樣,一般我會這樣做:首先要想一想可能是哪一個變量有問題,然后去監(jiān)視這個變量(或表達式),在程序合適的位置設置斷點,這樣可以使程序停下來看一看這個變量有沒有按照我的設想在變化。下面我舉一個簡單的例子,先看源代碼:sub test()for i=2 to 4 step 0.6next iend sub這是一個非常簡單的循環(huán),每一次循環(huán)i便會增加0.6,當循環(huán)3次后i值就變?yōu)?.4,但問題是每一次循環(huán)時i值變?yōu)槎嗌??第一步:在菜單中選“調(diào)試”—“添加監(jiān)視”,在表達試中填“i”,點擊確定,這時你會看到臨視窗口中會多一行。第二步:把光標移到代碼窗口中的“next i”行,按一下“F9”,于是每當程序運行到這里時就會暫停了。好,一切就緒,請按F5執(zhí)行程序,在監(jiān)視窗口中C值立刻變?yōu)?,再按F5繼續(xù),C值為2.6,再按幾次F5,直到程序結束,這樣我們就成功監(jiān)視了C值的變化。第三步:在next i行再按一次F9,清除斷點。監(jiān)視的表達式的右鍵菜單選擇“刪除監(jiān)視”。另外,還可以用“逐語句”、“逐過程”、“運行到光標處”等方法進行調(diào)試,這些都在調(diào)試菜單中,操作比較簡單,請讀者自行領悟。到目前為止,我們所做的工程都是“嵌入式工程”,它只是嵌入在當前的Autocad圖形文件中, 以后打開這個文件時代碼才會加載,如果別的dwg文件也要使用,那就需要把代碼導出為.bas文件,供其他dwg文件導入。在VBA編輯器的“文件”菜單中有這兩個功能,一試便知。ACAD VBA還有一種工程叫“通用式工程”,只要進入ACAD就可以運行,程序可以在不同用戶、不同的圖形文件中共享,但是由于VBA功能太強,有時候會出現(xiàn)一些意想不到的事情,所以在學習階段請暫時不要這樣做。本課結束,請做思考題;監(jiān)視下列代碼中的i和j的值,注意,此題雖然要監(jiān)視2個變量,但是在代窗口中只要設置1個斷點就足夠了。sub test()for i=2 to 4 step 0.6 for j=-5 to 2 step 5.5 next jnext iend sub第五課 畫函數(shù)曲線先畫一組下圖拋物線。下面是源碼:Sub myl()Dim p(0 To 49) As Double '定義點坐標Dim myl As Object '定義引用曲線對象變量co = 15 '定義顏色For a = 0.01 To 1 Step 0.02 '開始循環(huán)畫拋物線 For i = -24 To 24 Step 2 '開始畫多段線 j = i + 24 '確定數(shù)組元素 p(j) = i '橫坐標 p(j + 1) = a * p(j) * p(j) / 10 '縱坐標 Next i '至此p(0)-p(40)所有元素已定義,結束循環(huán) Set myl = ThisDrawing.ModelSpace.AddLightWeightPolyline(p) '畫多段線 myl.Color = co '設置顏色屬性 co = co + 1 '改變顏色,供下次定義曲線顏色Next aEnd sub為了鼓勵大家積極思考,從本課開始,我不再解釋每一條語句的作用,只對以前沒有提過的語句進行一些解釋,也許你一時很難明白,建議用上一課提到的跟蹤變量、添加斷點的辦法領悟每一條語句的作用。在跟蹤變量p時請在跟蹤窗口中單擊變量p前的+號,這樣可以看清數(shù)組p中每一個元素的變化。ACAD沒有現(xiàn)成的畫拋物線命令,我們只能用程序編寫多段線畫近似拋物線。理論上,拋物線的X值可以是無限小、無限大,這里取值范圍在正負24之間。程序第二行:Dim myl As Object '定義引用曲線對象變量Object也是一種變量類型,它可以把變量定義為對象,本例中myl變量將引用多段線,所以要定義為Objet類型??串嫸喽尉€命令:Set myl = ThisDrawing.ModelSpace.AddLightWeightPolyline(p) '畫多段線其中括號中的p是一個數(shù)組,這個數(shù)組的元素數(shù)必須是偶數(shù),每兩個元數(shù)作為一個點坐標。等號前面部分“Set myl”的作用就將myl變量去引用畫好的多段線。myl.Color = co '設置顏色屬性。在ACAD中,顏色可以用數(shù)字表示,本例中co會增值,這樣就會有五彩繽紛的效果。本課第二張圖:正弦曲線,下面是源碼:Sub sinl()Dim p(0 To 719) As Double '定義點坐標For i = 0 To 718 Step 2 '開始畫多段線 p(i) = i * 2 * 3.1415926535897 / 360 '橫坐標 p(i + 1) = 2 * Sin(p(i)) '縱坐標Next iThisDrawing.ModelSpace.AddLightWeightPolyline (p) '畫多段線ZoomExtents '顯示整個圖形End Subp(i) = i * 2 * 3.1415926535897 / 360 '橫坐標橫坐標表示角度,后面表達式的作用是把角度轉(zhuǎn)化弧度ZoomExtents語句是縮放命令,它的作用是顯示整個圖形,消除圖形以外的區(qū)域本課思考題:畫一條拋物線:y=0.5*x*x+3,其中X取值范圍在正負50之間第六課 數(shù)據(jù)類型的轉(zhuǎn)換上一節(jié)課我們用一個簡單的公式把角度轉(zhuǎn)化為弧度,這樣做便于大家理解。不過VBA中有現(xiàn)成的方法可以轉(zhuǎn)換數(shù)據(jù)類型。我們舉例說明:jd = ThisDrawing.Utility.AngleToReal(30, 0)這個表達式把角度30度轉(zhuǎn)化為弧度,結果是.523598775598299。AngleToReal需要兩個參數(shù),前面是表示要轉(zhuǎn)換角度的數(shù)字,而后面一個參數(shù)可以取值為0-4之間的整數(shù),有如下意義:0:十進制角度;1:度分秒格式;2:梯度;3:弧度;4:測地單位例:id= ThisDrawing.Utility.AngleToReal("62d30' 10""", 1)這個表達式計算62度30分10秒的弧度再看將字符串轉(zhuǎn)換為實數(shù)的方法:DistanceToReal需要兩個參數(shù),前一個參數(shù)是表示數(shù)值的字符串,后面可以取值1-5,表示數(shù)據(jù)格式,有如下意義:1:科學計數(shù);2:十進制;3:工程計數(shù)——英尺加英寸;4:建筑計數(shù)——英尺加分數(shù)英寸;5:分數(shù)格式。例:以下表達式得到一個12.5的實數(shù)temp1 = ThisDrawing.Utility.DistanceToReal("1.25E+01", 1)temp2 = ThisDrawing.Utility.DistanceToReal("12.5", 2)temp3 = ThisDrawing.Utility.DistanceToReal("12 1/2", 5)而realtostring方法正好相反,它把一個實數(shù)轉(zhuǎn)換為字符串。它需要3個參數(shù)第一個參數(shù)是一個實數(shù),第二個參數(shù)表示數(shù)據(jù)格式,含義同上,最后一個參數(shù)表示精確到幾位小數(shù)。temp1= ThisDrawing.Utility.RealToString(12.5, 1, 3)得到這個字符串:“1.250E+01”,下面介紹一些數(shù)型轉(zhuǎn)換函數(shù):Cint,獲得一個整數(shù),例:Cint(3.14159) ,得到3Cvar,獲得一個Variant類型的數(shù)值,例:Cvar("123" & "00"),得到”12300”Cdate,轉(zhuǎn)換為date數(shù)據(jù)類型,例:MyShortTime = CDate("11:13:14 AM")下面的代碼可以寫出一串數(shù)字,從000-099。Sub test()Dim add0 As StringDim text As StringDim p(0 To 2) As Doublep(1) = 0 'Y坐標為0p(2) = 0 'Z坐標為0For i = 0 To 99 '開始循環(huán) If i < 10 Then '如果小于10 add0 = "00" '需要加00 Else '否則 add0 = "0" '需要加0 End If text = add0 & CStr(i) '加零,并轉(zhuǎn)換數(shù)據(jù) p(0) = i * 100 'X坐標 Call ThisDrawing.ModelSpace.AddText(text, p, 4) '寫字 Next i End Sub重點解釋條件判斷語句:If 條件表達式 Then ……Else……End if如果滿足條件那么程序往下執(zhí)行,到else時不再往下執(zhí)行,直接跳到End if后面如果不滿足條件,程序跳到else后往下運行。 Call ThisDrawing.ModelSpace.AddText(text, p, 4) '寫字這是寫單行文本,需要三個參數(shù),分別是:寫的內(nèi)容、位置、字高第七課 寫文字客觀地說,ACAD寫字功能不夠歷害,而用VBA可以使寫字效率更高。比較正規(guī)的做法是把定義文字樣式,用樣式來控制文字的特性。我們還是用實例來學習,先看下面一段代碼,它的作用是先創(chuàng)建一個文字樣式,然后用這個文字樣式寫一段多行文本。Sub txt()Dim mytxt As AcadTextStyle '定義mytxt變量為文本樣式Dim p(0 To 2) As Double '定義坐標變量p(0) = 100: p(1) = 100: p(2) = 0 '坐標賦值Set mytxt = ThisDrawing.TextStyles.Add("mytxt") '添加mytxt樣式mytxt.fontFile = "c:\windows\fonts\simfang.ttf" '設置字體文件為仿宋體mytxt.Height = 100 '字高mytxt.Width = 0.8 '寬高比mytxt.ObliqueAngle = ThisDrawing.Utility.AngleToReal(3, 0) '傾斜角度(需轉(zhuǎn)為弧度)ThisDrawing.ActiveTextStyle = mytxt '將當前文字樣式設置為mytxtSet txtobj = ThisDrawing.ModelSpace.AddMText(p, 1400, "\P" & "此心自光明正大,過人遠矣")txtobj.LineSpacingFactor = 2 '指定行間距txtobj.AttachmentPoint = 3 '右對齊(1為左對齊,2為居中)End Sub我們看這條語句Set mytxt = ThisDrawing.TextStyles.Add("mytxt") 添加文本樣式并賦值給mytxt變量,只需要一個參數(shù):文本樣式名fontfile、height、width、ObliqueAngle是文本樣式最常用的屬性Call ThisDrawing.ModelSpace.AddMText(p, 1400, "\P" & "此心自光明正大,過人遠矣")這條語句是寫文本,需要三個參數(shù)。第一個參數(shù)p是坐標,1400是寬度,最后一個參數(shù)是文本內(nèi)容,其中\p是一個回車符擴大字符間距用\T數(shù)字,例:\T3abc,使文字abc的間距擴大3 部,n取值范圍是0.75-3在論壇中有一個經(jīng)常被同好提及的問題:如何使用文字疊加。舉例說明:123\S+0.12^-0.34\S是格式字符,^是分隔符,前面的數(shù)字在上,后面的數(shù)字在下。\C是顏色格式字符,C后面跟一個數(shù)字表示顏色\A是對齊方式,\A0,\A1,\A2分別表示底部對齊、中間對齊和頂部對齊夠不夠,不夠的話給個郵箱,我再發(fā)給你一個pdf文件!
九烈神君
您好,這樣的:VB,VBA或其它工具如c#,C++等都是利用AutoCAD提供的ARX接口進行開發(fā)VB開發(fā)的程序相對獨立,不能查看源碼;運行速度一般;可能會因為CAD正在運行的命令或其它沖突!VBA必需集成于CAD之下,源代碼可以被看到,運行速度快;運行錯誤率更低!AutoCAD 64版本,在安裝使用VBA后(CAD2010及以后版本需單獨安裝);保存低版本會很慢;需要等上約30秒左右!如果你是初學開發(fā),個人建議學習VBA(就是學習CAD的ARX接口用法),不用引用,調(diào)試很快;在CAD開發(fā)人員幫助文件中有很詳細的幫助說明!學會VBA后,可以很輕松的轉(zhuǎn)到VB,c#等其它工具進行開發(fā)!
小愛
;;Z坐標歸零程序(defun C:Z=0 ( / SS1) (setvar "cmdecho" 0)(if (setq SS1 (ssget))(progn(command ".undo" "be")(princ "\n正在處理圖形數(shù)據(jù),請稍候...")(terpri)(command ".ucs" "w")(command ".move" SS1 "" '(0 0 1e99) "" ".move" "p" "" '(0 0 -1e99) "")(princ "\nOK,已將所選圖元Z坐標值全部歸零。")(command ".undo" "e"));end progn);end (if (/= SS1 nil)(princ));end (defun C:Z=0 ( / SS1)
亦歌亦舞
1、啟動AutoCAD 2006,選擇“工具”→“Auto LISP”→“Visual LISP編輯器”選項。
2、進入“Visual LISP編輯器”窗口,如圖所示:
3、“文件”—“新建”打開“程序編輯窗口”,編寫程序代碼。
4、在以上“程序代碼編輯”窗口輸入所需代碼。
5、加載和調(diào)試Auto LISP程序,單擊“加載活動編輯窗口”按鈕,對剛剛編制的代碼進行運行。如圖所示,表示代碼書寫正確沒有語法錯誤,加載成功。
6、返回AutoCAD2006界面,在命令行輸入Lisp,接著自動運行程序Lisp,打印輸出“Hello World!”并在窗口中繪制一個圓,與預期效果一樣,說明程序編制沒有邏輯錯誤。如果存在邏輯錯誤還需返回進行調(diào)試。
7、至此就完成了簡單的CAD二次開發(fā),并可以將程序保存,下次加載使用。
譚小芹
二次開發(fā)一般有兩種方式:①、Visual Basic VBA②、還有就是lisp語言開發(fā)這些是CAD里面自帶的! 國內(nèi)開發(fā)的二次軟件有:中望CAD,天正CAD、浩辰CAD就是用上面的開發(fā)的!
伍子衿
小程序用Lisp,大程序用ObjectArx的.net版本。 前者靈活,短小精悍。但是數(shù)據(jù)的組織不容易,運行效率差。 后者是個大家伙,不容易掌握,但是全部程序采用面向?qū)ο蠓椒ńM織,概念先講,掌握后可以開發(fā)出相對高級的應用程序。 現(xiàn)在微軟主推.net,你如果有相關的編程經(jīng)驗(如VC++,C#,VB.net,等,掌握起后者來應該沒什么大問題。如果你想今后在AutoCAD軟件開發(fā)方面有所成就,必選后者。但是,問題是,如果想使用后者,首先需要有較好的.net編程基礎。這里非常不推薦使用C++接口的Arx,C++遲早被微軟淘汰,警惕??!學習之可以,但是不可作為將來軟件開發(fā)的工具。切記!