您是否尝试过使用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