您是否嘗試過使用AcGiWorldGeometry
和AcGiWorldDraw
?我沒有使用ObjectArx,但是我已經使用了DwgDirect(現在稱爲Teigha for DWG - 可從http://www.opendesign.com/獲得),其中的一部分應該是ObjectArx的一個克隆。通過簡單閱讀ObjectArx文檔,我可以看出,您似乎可以實現自己的AcGiWorldGeometry
對象,並將其傳遞給文本的worldDraw
方法。
AcGiGeometry
指定許多東西量回調函數。當幾何體「繪製」到「世界繪製」對象中時,將調用各種回調函數。
以我使用DwgDirect的方式,您可以重寫某些回調,具體取決於您希望如何接收結果。實質上,您將實現一個對象來捕獲幾何圖形的「向量化」或「爆炸」(您的案例中的文本)。在DwgDirect中,在最簡單的情況下,我只能實現「折線」功能。任何元素,「渲染」時最終會分解爲一條或多條折線。在我的項目中,如果我不想得到一個「圈子」的例子,我的「圈子」回調的實現將是簡單地調用基礎實現(或者我根本不會覆蓋該回調 - 我不記得了)。這將導致下一級的「簡化」發生,我的「多邊形」回調會被調用。然後,我可以將該圓圈捕捉爲「撫摸」多邊形。
也有AcGiTextEngine類可能的幫助。請注意,其方法標記爲「僅供內部使用」。話雖如此,似乎提供撫摸/爆炸/鑲嵌能力的tesellate方法(超載)。從簽名看來,它看起來像是給它一個文本樣式,一些文本(字符串)和一個「PolylineCallback」,我想它會根據參數調用回調。
對不起,我沒有一個好的代碼示例給你,但我使用DwgDirect的項目很久以前,我現在沒有簡單的代碼訪問。我沒有直接使用ObjectArx,所以我也沒有任何代碼的例子。
回顧了我的回答,仔細查看了文檔(我在這裏找到:http://docs.autodesk.com/ACDMAC/2011/ENU/ObjectARX%20Reference/index.html),看起來我一直在看C++文檔。我不知道.NET接口中是否存在等效的功能。
[編輯]
根據幫助文件,我發現這裏(http://www.codeproject.com/KB/dotnet/arxref.aspx),它看起來有相似的類中。 NET版本,可能會允許您嘗試執行上述操作。從WorldGeometry和WorldDraw開始,你可能會得到你想要的結果。
祝你好運!
是的,我不能使用TxtExp命令,主要是因爲我正在離屏。儘管TxtExp是Express Tools插件的一部分,但它給了我希望它可以完成的工作。我只需要源代碼! – Kratz 2011-01-07 18:47:32