2011-01-06 4 views
1

私はObjectARX .Net APIを使用してAutoCADで作業しています。 lines/curves/polylinesを使ってテキストを作成する方法、または既存のtextオブジェクトをlines/ectに分解する方法はありますか? Prefereable私は、元々のAutoCADのテキストスタイルに基づいて線画を生成できるようにしたいと考えています。AutoCADでテキストスタイルを使用してラインワーク/ジオメトリを作成

編集:TxtExpコマンドhereのソースを見つけることができました。しかし、AutoCADのそれはLisp言語を所有しており、私はそれを頭や尾にすることはできません。

編集:TxtExpのソースを見ると、テキストがWMFファイルとしてエクスポートされ、インポートされます。 Unfourtunatlyでは、WMFファイルのインポートとエクスポートを行うための.NET APIは公開されていないため、そのメソッドを使用することはできません。

答えて

0

テキストを爆発させる可能性があるかどうかわからないので、Autodesk Discussionページで簡単に検索しました。私はthisの投稿を見つけ、AutoCad 2010でそれを試しました。それは、2Dポリラインのブッチにテキストを爆発させました。

私は、.Netディスカッションでhereアドワーズ広告を検索して何も見つかりませんでした。たぶんActiveDocument.SendCommand()を使って実行することができます。

私はこれがあなたの質問に答えないことを知っていますが、おそらくそれはあなたを動かすでしょう。楽しむ!

+0

ええ、私はTxtExpコマンドを使用できません。ほとんどの場合、私はオフスクリーンをしています。 TxtExpはExpress Toolsアドインの一部ですが、それは私にそれができることを望みます。私はソースが必要です! – Kratz

2

AcGiWorldGeometryAcGiWorldDrawを試しましたか?私はObjectArxを使用していませんが、DwgDirect(現在はTeigha for DWGと呼ばれています - http://www.opendesign.com/から入手可能)を使用しています。その一部はObjectArxのクローンのようなものです。 ObjectArxドキュメントを簡単に読んでわかるように、自分のAcGiWorldGeometryオブジェクトを実装し、テキストのworldDrawメソッドに渡すことができるようです。

AcGiGeometryは、コールバック関数の量を多く指定します。ジオメトリが「ワールドドロー」オブジェクトに「描画」されると、さまざまなコールバック関数が呼び出されます。

私はDwgDirectを使用した方法で、結果を受け取る方法に応じて、コールバックのいくつかを上書きできます。本質的には、ジオメトリの「ベクトル化」または「爆発」(ケースのテキスト)をキャプチャするオブジェクトを実装することになります。 DwgDirectでは、最も単純なケースでは、 "ポリライン"機能しか実装できませんでした。 「レンダリング」された要素は、最終的に1つ以上のポリラインに分解されます。私のプロジェクトでは、たとえば「円」を取得したくない場合、「サークル」コールバックの実装は単純に基本実装を呼び出すことです(または、そのコールバックをオーバーライドしないでください - 私は覚えがたいです)。そうすると、次のレベルの「単純化」が起こり、私の「ポリゴン」コールバックが呼び出されます。私は円を「ストローク」ポリゴンとしてキャプチャすることができました。

また、役に立つかもしれないAcGiTextEngineクラスもあります。そのメソッドは「内部使用のみ」とマークされています。それを言って、ストローク/エクスポージャー/テッセレーション機能を提供するように見えるテッセレートメソッド(オーバーロード)があります。このシグネチャから、テキストスタイル、テキスト(文字列)、および "PolylineCallback"を与えるように見え、パラメータに応じてコールバックを呼び出します。

良いコード例はありませんが、私がDwgDirectを使用したプロジェクトはずっと前ですが、今はそのコードに簡単にアクセスできません。私はObjectArxを直接使用していないので、そのコードの例もありません。

私の答えを振り返り、ドキュメント(私がここに見つけた:http://docs.autodesk.com/ACDMAC/2011/ENU/ObjectARX%20Reference/index.html)を見てみると、私はC++のドキュメントを見ているようです。同等の機能が.NETインターフェイスに存在するかどうかはわかりません。

[EDIT]

私はここで見つけるヘルプファイル(http://www.codeproject.com/KB/dotnet/arxref.aspx)によると、それはで同様のクラスがあるに見えるん。 NETバージョンでは、上記のことをやろうとする可能性があります。 WorldGeometryとWorldDrawを使い始めると、必要な結果を得ることができます。

幸運を祈る!

+0

これはうまくいくと思います。 .NETインターフェイスがこの作業を行うために必要なクラスと機能を十分に公開しているようには見えません。私はC + +でそれをやろうとしているショットを与える必要がありますし、それを.Netから呼び出すことがあります。 – Kratz

関連する問題