2013-07-05 38 views
4

我目前正致力於將VBA AutoCAD應用程序轉換爲VB.NET,並且我正在處理的當前命令是使用如下代碼創建一個簡單的領導者:更改AutoCad中領導者的顏色

Set leaderObj = ThisDrawing.ModelSpace.AddLeader(points, blockRefObj, leaderType) 
leaderObj.ArrowheadType = acArrowDotSmall 
leaderObj.ArrowheadSize = 2.5 * varDimscale 
leaderObj.DimensionLineColor = acWhite 

我已經能夠創建在.NET中使用

Dim l = New Leader() 
For Each point In jig.LeaderPoints 
    l.AppendVertex(point) 
Next 
l.Dimldrblk = arrId 

arrId我從使用功能中發現了here利達行,但我一直無法弄清楚如何設置領導者的顏色爲白色(默認顯示爲紅色),以及還有如何設置箭頭的大小。如果有人能幫助我,我將非常感激。

回答

2

好吧,經過大量的試驗和錯誤,我發現解決方案相當簡單。我不必重寫任何維度樣式(我實際上甚至不知道什麼是維度樣式,在獲得交付該項目之前,我在AutoCAD中有一個簡短的初學者課程),但我只需在Leader -object上設置一個不起眼的屬性。對於未來的參考,併爲其他人試圖做同樣的,這裏是我最終使用性能:

leader.Dimclrd
領袖線的顏色。代表「維度線顏色」之類的東西。
leader.Dimasz
領導者頭的規模。
1

作爲類型BlockReference,它應該有一個顏色屬性,屬性應該是Autodesk.Autocad.Colors.Color或Integer。此外,你得到的對象閱讀的原因是,在您的交易中,您打開數據庫與

OpenMode.ForRead 

這是正確的。不過編輯在數據庫中的對象,你必須檢索像下面

var obj = Thetransaction.GetObject(theobjectid,OpenMode.ForWrite) as BlockReferance; 

這是

using(var trans = TransactionManager.StartTransaction()){} 

我在一個小區做這裏面完成的對象,因此檢查駱駝情況和語法,因爲我用c#編寫,但它應該非常接近。

您可能想要查看是否存在縮放屬性,以更改大小。

希望這會使你朝着正確的方向前進。

讓我知道你是否有任何問題。 :)

+0

我試着用顏色屬性設置顏色,它沒有任何效果。 「默認閱讀」是我的一個錯字(現在已經修復),它被認爲是「紅色」(如在顏色中)。 – Alxandr

+0

另外,我沒有編輯現有的對象,我正在創建一個新的('New Leader()'),所以在這個範圍內我沒有使用'transaction.GetObject'。我只用交易來追加領導。 – Alxandr