-
AutoCAD命令提示"未知命令**……"的原因:在Initialize方法內報出異常就會導致這種情況。O__O"…(或是少加了dll引用)還有一種情況就是CommandClass特性位置寫錯了,它必須放在命名空間上面,否則在CAD 2010中就會出現"未知命令"的情況,CAD 2014沒有這種情況
-
Civil 3D 工具空間(Toolspace)不見了怎么辦?在命令行上輸入ShowTS。
-
3、使用netload命令加載程序集拋出"System.BadImageFormatException"異常解決方案。http://www.cnblogs.com/sly-tongtong/p/3569321.html
-
ObjectARX的SDK里的acdbmgd.dll、acmgd.dll與安裝目錄下的acdbmgd.dll、acmgd.dll這兩組對應的dll是有區別的,一般調試時候用第一組,開發時候用第二組
-
.net framework版本號AutoCAD版本號是有對應關系的。比如,.net framework 3.5對應AutoCAD 2010做二次開發,如果對應錯了就會出現1中描述的情況。還有調試時有可能和Visual Studio版本號有關,我就遇到過這種情況,用VS 2012+AutoCAD 2010開發時加入斷點沒有反應,但VS換成2010的話就有反應了。╮(╯_╰)╭
-
關於VS 2012+AutoCAD 2010開發時加入斷點沒有反應的問題已經解決了,原來從VS 2010開始默認的調試器類型為托管4.0,而AutoCAD是用.net framework 3.5開發的。它默認的調試器類型為托管2.0。這就造成了加入斷點沒有反應的情況。解決方法:http://www.cnblogs.com/junqilian/archive/2011/03/18/1988327.htmlhttp://www.cnblogs.com/junqilian/archive/2011/03/18/1988327.html
-
自定義實體(C++)-關於彈出"未能找到***.dll或…………"提示框的問題引起這個問題有許多原因,我遇到的是生成選項造成的,我用的是win7 64位系統,所以安裝Civil3D版本也是64位,但自定義實體項目的生成方式默認是32位,我也沒改所以在netload的時候就會報出那個提示框,只要把自定義實體項目的生成方式改成64位即可。
-
在使用netload加載dll時,命令行輸出一行異常的信息-"在………………"而且還沒完整輸出O__O"…。造成這個原因有可能是命令的名稱重復
-
用Editor捕獲到的東東不一定是你想要的,再操作之前一定要進行判斷。比如Armadillo項目的CheckConnectivity命令
-
不要太過於相信CAD事件,開發文檔上說它不靠譜。
-
自定義AutoCAD實體出現下面錯誤的原因是ObjectArx安裝目錄改變或者不存在導致的。
解決方案:找到自定實體項目的目錄下的Autodesk.arx-2014.props文件,打開並編輯ArxSdkDir節點的值,改為安裝ObjectArx的路徑。就OK了。
-
操蛋的弧線點 Polyline線用Explode方法打散后,子項弧線的起點和終點不一定和畫線時的起終點一樣,以下是測試數據:
–左到右
arc.StartPoint
{(7151.11257350689,2494.76600079297,200)}
X: 7151.1125735068927
Y: 2494.7660007929662
Z: 200.0
arc.EndPoint
{(5218.90934925515,2527.31643705483,200)}
X: 5218.9093492551474
Y: 2527.3164370548329
Z: 200.0
--下到上
arc.StartPoint
{(10482.6189523043,1834.73690787365,200)}
X: 10482.6189523043
Y: 1834.7369078736517
Z: 200.0
arc.EndPoint
{(10482.6189523043,4351.74259295576,200)}
X: 10482.6189523043
Y: 4351.7425929557648
Z: 200.0
--右到左
arc.StartPoint
{(16300.4106147591,1435.48772301059,600)}
X: 16300.410614759079
Y: 1435.4877230105917
Z: 600.0
arc.EndPoint
{(14285.8917180871,1435.48772301059,600)}
X: 14285.891718087136
Y: 1435.4877230105913
Z: 600.0
--上到下
arc.StartPoint
{(11770.9503677832,-1525.82060923224,400)}
X: 11770.950367783196
Y: -1525.8206092322357
Z: 400.0
arc.EndPoint
{(11794.1975746998,681.662180525194,400)}
X: 11794.197574699823
Y: 681.662180525194
Z: 400.0
可以看到有時候一致,有時候相反,這是非常操蛋的地方,用時謹記。
更新:貌似是起始角和終止角的問題,轉的圈圈太多。
-
外部程序啟動AutoCAD程序各種異常的錯誤
錯誤1-http://www.cnblogs.com/junqilian/archive/2011/08/21/2148630.html
如果按上面改正后還有錯誤那么原因有兩個:1是ProgID值與當前CAD系統版本號不一樣,2是打開多個CAD導致的
-
坑爹的SendCommand方法
用.net訪問com的SendCommand並用它發送命令,如果命令行中已經有文字的話,cad會一直等待直到命令行中的文字清空或命令執行,完成前面操作后才執行我們的SendCommand方法。坑爹啊,尤其是在外部啟動cad的時候,如果已經打開cad並且命令行有文字,那啟動程序會一直等待造成假死現象
-
安裝多款Autodesk產品注冊碼失敗的問題
平常我們都是用AutoCAD注冊機來激活Autodesk產品,但是如果操作不當就會出現激活不成功的顯現。出現這種現象的原因有:1、序列號重復,即兩款產品用的是同一個序列號。2、沒有斷網。
以上只是簡單的列舉了注冊失敗的原因。我們真正要解決的是激活失敗了怎么辦?有許多人卸載了再安裝試了好多次都不行最后重裝系統再安裝才好,這樣的話代價太大還浪費時間。本人親身經歷過這種情況,最后在網上找解決方法再結合實際操作找到了解決方案。下面就詳細道來:
-
打開"我的電腦"進入C盤找到\ProgramData\FLEXnet文件夾,把它刪除
-
卸載之前安裝過的Autodesk產品(這個比較費時間,但木辦法╮(╯_╰)╭)
-
清理注冊表(可以用360)
-
最好重啟電腦
-
開始重新安裝Autodesk產品(注意序列號不能再重復了),再用注冊機激活就可以了
-
有些功能.NET API還沒有/完全實現,這時就需要用到COM API了
需要添加的引用
找到Civil 3D安裝目錄找到下面的dll。
Autodesk.AEC.Interop.Base
Autodesk.AEC.Interop.UiBase
Autodesk.AutoCAD.Interop
Autodesk.AutoCAD.Interop.Common
Autodesk.AECC.Interop.<Civil方面的對象>
Autodesk.AECC.Interop.Ui< Civil方面的對象>
選擇上面的引用后,將引用的"復制本地(Copy Local)"屬性設為true
最后在項目中使用using語句引用就可以了。
注:為什么要把"復制本地"屬性設為true?因為引用的這些dll在運行的時候不需要的。還有Com的dll默認情況下"復制本地"屬性是不可選的。要讓它可選的話,修改"嵌入互操作類型"屬性為False就可以了(默認為true)。如果默認"嵌入互操作類型"的值,有可能會引發-無法嵌入互操作類型"……"的異常。解決方法就是"嵌入互操作類型"屬性設為False。