A. 何謂CAD二次開發AutoCAD都有哪些二次開發工具
朋友您好!
二次開發就是補充Cad軟體本身所不具備的功能。
開發工具介紹:
當前AutoCAD的二次開發工具主要有:VisualLisp、VBA、ObjectARX和.NET API等。其中,VisualLisp與VBA較為簡單,特別是VBA,使用方便且開發速度較快,但其功能相比ObjectARX有所不足,尤其是對面向對象的功能支持不好。而ObjectARX基於VC平台,在C++的支持下,其功能非常強大,可以很好地運用各種面向對象技術,但其缺點是發開速度比較慢,同時對開發人員的能力要求較高。
.NET是微軟新推出的開發平台,具有眾多優點。
基於.NET平台對AutoCAD進行二次開發,可充分利用.NET 的各種優勢,在保證功能強大的前提下大大提高開發速度。
1 AutoLISP
AutoLISP的全名是LIST Processing Language,她出現於1985年推出的AutoCAD R2.18中,是一種嵌入在AutoCAD內部的編程語言,是LISP原版的一個子集,她一直是低版本AutoCAD的首選編程語言。它是一種表處理語言,是被解釋執行的,任何一個語句鍵入後就能馬上執行,它對於互動式的程序開發非常方便。其缺點是繼承了LISP語言的編程規則而導致繁多的括弧。
2 ADS
ADS的全名是AutoCAD Development System,它是AutoCAD的C語言開發系統,ADS本質上是一組可以用C語言編寫AutoCAD應用程序的頭文件和目標庫,它直接利用用戶熟悉的各種流行的C語言編譯器,將應用程序編譯成可執行的文件在AutoCAD環境下運行,這種可以在AutoCAD環境中直接運行的可執行文件叫做ADS應用程序。ADS由於其速度快,又採用結構化的編程體系,因而很適合於高強度的數據處理,如二次開發的機械設計CAD、工程分析CAD、建築結構CAD、土木工程CAD、化學工程CAD、電氣工程CAD等。
3 ObjectARX
ObjectARX是一種嶄新的開發AutoCAD應用程序的工具,她以C++為編程語言,採用先進的面向對象的編程原理,提供可與AutoCAD直接交互的開發環境,能使用戶方便快捷地開發出高效簡潔的Auto CAD應用程序。ObjectARX並沒有包含在AutoCAD中,可在AutoDESK公司網站中去下載,其最新版本是ObjectARX for AutoCAD 2000,它能夠對AutoCAD的所有事務進行完整的、先進的、面向對象的設計與開發,並且開發的應用程序速度更快、集成度更高、穩定性更強。ObjectARX從本質上講,是一種特定的C++編程環境,她包括一組動態鏈接庫(DLL),這些庫與AutoCAD在同一地址空間運行並能直接利用AutoCAD核心數據結構和代碼,庫中包含一組通用工具,使得二次開發者可以充分利用AutoCAD的開放結構,直接訪問AutoCAD資料庫結構、圖形系統以及CAD幾何造型核心,以便能在運行期間實時擴展AutoCAD的功能,創建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是兩組關鍵的API,即AcDb(Auto CAD資料庫)和AcEd(Auto CAD編譯器),另外還有其它的一些重要庫組件,如AcRX(Auto CAD實時擴展)、AcGi(Auto CAD圖形介面)、AcGe(Auto CAD幾何庫)、ADSRX(Auto CAD開發系統實時擴展)。ObjectARX 還可以按需要載入應用程序;使用ObjectARX進行應用開發還可以在同一水平上與Windows系統集成,並與其它Windows應用程序實現交互操作……
B. CAD轉pdf
樓主的目的是不是這樣:
1、窗選目標圖元
2、輸入自定義命令
3、後台自動將所選圖元保存成PDF
我的想法是將定義一個選擇集(LISP裡面的東西)來保存所選圖元,然後調用標准對話框,將你所要求的列印機類型設為默認(估計樓主用的是PDFfactory之類的軟體吧^_^),然後自動保存,整個過程中讓窗口不可見。
PS:大學里學了LISP,但是不知道在VirualLISP里怎麼用AcitveX來調用標准對話框
最近在學VBA,知道怎麼調用標准對話框,但不知道如何弄選擇集
樓主可用VirualLISP+ActiveX和VBA中選一方面來下手
我也是個半桶水,但大方向沒有錯,希望樓主成功
C. autocad的二次開發lisp語言哪裡有教程,書和電子版都行,比較全面經典的
lisp語言開發,是解析型的。一般用vc6.0+ObjecARJ做二次開發的。
lisp語言的書比較少。不過在cad的幫助文件中有lisp語言詳細講解。
以前有過一本lisp書,不過現在找不到了。
D. autocad2010 二次開發 .NET COM 如何導出pdf
DWG轉PDF:
選擇需要轉PDF的圖紙,ctrl+P進如列印界面,列印機/繪圖儀中選擇DWG To PDF,設置好列印效果以後,(具體列印尺寸在列印范圍里選擇窗口然後選出需要列印的區域,再把列印比例設置好)
設置完成後點擊列印,然後選擇您想要的路徑即可,這就能轉成PDF文件且您自定義選擇路徑
E. autocad 二次開發工具都有哪些
autocad有它的獨特計算機語言,但是為了推廣自己的產品,首推出了AuotoL ISP內嵌式高級編程語言,它可以利用autocad的平台,可以非常方便的利用AuotoL ISP對autocad進行二次開發,不過這個過程是非常麻煩和極為繁瑣,使得怨聲載道。所以,autocad公司又推出了Visual LISP(VLISP)專門用來加速的軟體,但是這個軟體是有知識產權的,一般不易得到。
所以autocad 二次開發工具不多。
F. autocad二次開發的為什麼要對AutoCAD進行二次開發
AutoCAD是目前在Windows和MAC系統中應用最為廣泛、使用人數最多的CAD軟體。但它只給我們提供了基礎的CAD功能,如果我們想完成具體項目設計,就必須根據數據一筆筆繪制出圖形,這樣一旦在設計完成之後,要更改局部圖形則需要重復原來的全部內容。造成了大量工作量的浪費。
如果使用AutoCAD的開發系統,我們就可以將以上的過程用程序編制出來,在需要設計時,只需一個命令就可以運行這個程序,自動完成繪圖過程。顯而易見,這不僅大大提高了設計效率,而且,還可以通過定製來完成某些專業化的模塊,甚至大型設計軟體,比如測繪行業的南方CASS軟體、建築行業的天正CAD軟體等均是用AutoCAD開發系統實現的。
因此,要想讓AutoCAD真正使用於某一具體領域,或讓其經常完成一些重復性的工作,則必須利用AutoCAD的開發系統對其進行二次開發.
G. autocad二次開發的AutoCAD二次開發各編程介面的比較及選用
比較各種開發AutoCAD的編程介面,需要從以下幾個方面進行考慮:
1. 速度:直接與AutoCAD通訊的API比利用IPC進行通訊的API在速度方面要快。編譯型的API比解釋型的API速度要快。因此,ObjectARX的速度最快,Com介面開發的外部程序速度最慢。
2. 穩定性:運行穩定性反映出因程序可能出現的嚴重錯誤所導致的危險。採用LISP開發的程序一旦失敗或崩潰,並不危害AutoCAD自身進程;而由於ObjectARX應用程序共享AutoCAD的地址空間,所以其一旦運行失敗,AutoCAD進程隨之崩潰。
3. 性能:ObjectARX的應用程序能在運行期間實時擴展AutoCAD,共享AutoCAD地址空間,甚至為所欲為,因此性能無比強大,以至於AutoCAD自身的許多功能模塊都是由ObjectARX進行製作。相反,解釋型API如AutoLISP僅被限用於使用靜態的AutoCAD命令集提供結構化函數庫
4. 技術難度:AutoLISP和VBA均是解釋型語言,方便易學,開發周期短。許多程序員或一些技術人員都在使用它們。相比之下ObjectARX依賴於C++語言,它必須經過嚴格控制的編譯、鏈接才能生成應用程序。這就需要編程人員需要積累經驗,這樣才能去發現問題從而解決問題。
5. 保密性:編譯型程序要比解釋型保密性要好,保護了開發人員的著作權,解釋型語言往往保密性能不高。導致用戶誤操作源碼造成不應有的錯誤。
另外:雖然.NET開發出來的DLL文件是編譯後的程序,但是由於其程序可以反編譯回源碼造成了代碼的保密性差,也是不容忽視的問題。
相比之下,如果以前已熟悉使用LISP語言的朋友,則可選用VisualLISP。
如果用戶只想利用開發一些簡單的周期性短的應用程序,則可以依個人愛好和經驗選擇Visual Basic和VisualLISP。若用戶有較好的C++基礎和AutoLISP函數基礎,同時又要開發速度和性能要求都很高的應用程序或大型CAD應用軟體,則要使用ObjectARX。
H. 誰有autocad vba & vb.net開發基礎與實例教程pdf版
【AutoCAD VBA視頻教程\cad二次開發\CAD VBA\自動發貨\自學利器】,復·制這段描述€dSze0wA8OIU€後到👉淘♂寳♀👈
I. autocad二次開發的怎樣對AutoCAD進行二次開發
從AutoCAD 2.18開始推出AutoLISP開始到現在,我們所能使用的開發工具主要有:AutoLISP、VisualLISP、VBA、COM外部介面、ObjectARX、ObjectARX.NET等開發方式供用戶選擇。下面開始對上述開發方式進行簡要介紹: AutoLISP是進行對AutoCAD二次開發最早的API,它是人工智慧語言LISP的一個分支.主要用來自動完成重復性任務,進行客戶化開發和編制AutoCAD菜單以及通過簡單機制為AutoCAD擴充命令,能夠有機的和AutoCAD結合在一起,它語法簡單容易上手,到目前仍有很多的活躍開發用戶。但是由於它是解釋型API而不是面向對象的編程語言,使它的效率低下,由於執行的是源代碼文件所以導致保密性能不高很難用它開發大型的應用程序。
在AutoCAD R14.01中,Autodesk公司首次提供了一種新的LISP編程工具:Visual LISP,它是一種面向對象的開發環境,是AutoLISP的擴展和延伸。
在AutoCAD2000中,Visual LISP被集成到了AutoCAD環境之中。Visual LISP是一種半編譯的API。由於可以被編譯所以大大提高了運行效率和安全性。同時它又與AutoLISP完全兼容,又提供了AutoLISP的所有功能,同時它又能夠訪問AutoCAD的多文檔環境,以及對COM/ActiveX技術的支持和反應器等。VisualLISP
IDE同時提供了完整的編輯環境使得用戶可以對代碼進行調試跟蹤、源碼語法檢查、括弧匹配、函數提示等工具,方便創建和調試LISP程序。由於VLISP集成於AutoCAD內部,而且隨AutoCAD升級而升級所以兼容性比較好,這也是LISP深受廣大編程愛好者使用的原因。
但在進行大數據的計算處理方面,Visual LISP不能很好的勝任這項任務,這使得開發大型數據運算的程序仍有一定困難。 ADS(AutoCAD Development System)是Autodesk公司最早在AutoCAD R11中提供的C語言編程環境。ADS除可使用標准C的函數外,又增加了一組專用於對AutoCAD進行操作的函數。由於ADS程序具有C語言的一切優點,因而它曾是開發AutoCAD R11、AutoCAD R12應用程序的主要工具。用C寫就的ADS程序,可在所有支持AutoCAD平台上進行源代碼移植。只需使用普通的C語言編譯器就可以編譯生成ADS模塊,與ADS庫和標准C庫鏈接後生成可執行文件,裝入AutoCAD後即可運行。但是ADS和AutoLISP一樣,內在結構不是面向對象的,用AutoLISP解釋器載入和調用,利用IPC與AutoCAD通訊。
ARX(AutoCAD Runtime eXtension)是在ADS基礎上發展起來的一種面向對象的C語言編程環境。由ADS到ARX的變遷就像C到C++的轉變。ARX與老式的ADS及AutoLISP的最大差異在於ARX應用程序是動態鏈接庫,共享AutoCAD地址空間,可以對AutoCAD進行直接函數調用,避免了IPC的系統開銷和由此引起的性
能下降。因此那些頻繁與AutoCAD通訊的應用程序在ARX環境下的運行效率明顯優於老式ADS或AutoLISP環境。
ARX最早是在AutoCAD R13中提供的,但在AutoCAD R14中,ARX就被ObjectARX所代替。同時原來的ADS庫函數全部被包含在ObjectARX中,將ADS函數合為單一的庫就形成了ADSRX。ADSRX庫已納入到AutoCAD的總體結構中,因此它與其他ObjectARX庫一樣,能共享AutoCAD地址空間。
到了新世紀,傳統意義上的ADS開發環境的概念已經不復存在,且ADSRX已成為了ObjectARX的一個子集,因此,ObjectARX是包含了ADS、ARX和ADSRX的一種綜合的C/C++開發環境。ObjectARX的最大特點是引入了面向對象的編程機制,用戶可以根據規則定製實體也是ObjectARX的一大亮點。 自AutoCAD R14起,提供了ActiveX Automation形式的API。ActiveX技術可將各種二進制應用程序組件集成一體。它可採用多種編程方式例如:VBA構造一種或多種與應用程序獨立的宏編程。提供Automation服務的軟體組件通過標准介面能夠對外開放它的特定功能。
正是由於AutoCAD擁有ActiveX介面,因此,用戶可以容易的用各種AciveX編程語言來定製開發AutoCAD。
AutoCAD包含的VBA能在進程內訪問AutoCAD的對象模型。亦可以通過獨立
的VB進行編程,但是VB與ActiveX的介面需要通過IPC驅動AutoCAD,所以作為ActiveX控制項的VBA比VB具有明顯的性能優勢。
特別要強調的是,ActiveX與AutoCAD交互操作很慢,若需要在外部程序中一邊運算一邊交互操作的重復迭代,將耗費大量時間,如同死機
值得注意的是,從AutoCAD 2010版本開始,VBA不在隨AutoCAD一起安裝。如果想要在機器中運行VBA程序必須登錄下面的網址進行下載方可運行。 在AutoCAD 2005 版本中Autodesk公司推出了用.NET開發AutoCAD的編程介面。它的實質是通過Managed C++/CLR技術對VC++的ObjectARX進行封裝。到目前的AutoCAD 2015十年來Autodesk公司已經完成對大部分ObjectARX編程介面的封裝。這種編程方式難度適中,能夠訪問大部分的編程介面(除了自定義實體);但是,由於AutoCAD的.NET介面是在不斷的完善過程中導致了在低版本上不能夠使用新增的功能。