AutoCadのスクリプト作成で困っています。結論か

Writer: admin Type: booksonline Date: 2019-03-08 00:00
AutoCadのスクリプト作成で困っています。結論から申しますと、図面上の任意の文字の内容を、スクリプト(Excel)を使って編集したいのです。現在、ExcelマクロVBAを使用してCad図面上の文字の「内容・X座標・Y座標」の値を取得することに成功しました。その後、Excel上で取得した文字の内容を編集し、Cad図面に反映できるようにスクリプトを作成できないかと試行錯誤しているところです。考えた方法として、クイック検索(QSELECT)もしくはフィルター(FILTER)コマンドを使用して、取得したX座標とY座標の値を利用し、Cad上の任意の文字を選択して内容を変更できないかと試していました。しかし、Filediaの値を0にしても、QSELECTやFILTERのファイルダイアログが表示されてしまい、各コマンドをスクリプト(コマンドライン)で操作することはできませんでした。解決したい問題点はいくつかございます。①スクリプトを用いたAutoCad上の任意の文字の選択・編集方法②QSELECTもしくはFILTERコマンドをスクリプト(コマンドライン)で操作する方法③Excelを用いたCad図面上の文字の編集方法どれか一つでも解決できれば良いのですが・・・・よろしくお願いいたします。補足皆様ご回答誠にありがとうございます。現在、ご回答していただいた内容を勉強しながら確認している状況です。色々と目から鱗の事柄が多く、助かっております。後出しで申し訳ありませんが補足です。AutoCadの環境は「Autodesk AutoCAD LT 2017」です。(作図は平面図のみ)共感した0###①スクリプトだと、その座標をタップ又は窓選択することになると思いますが、極めて精度が悪いと思われます。 何も選択してくれなかったり、別の物を選択したり。ZOOM倍率にも気を使う必要が出てきます。うまく選択する事ができるなら、文字編集はCHANGEコマンドを使えば、スクリプトでも可能。②できません。③選択したオブジェクト(又は図面全体)をDXF出力し、そのDXFファイルをExcelVBAで読み込む。(Excelシートに表示させる訳ではない。メモリ上に読み込むだけで良い)その中から、文字情報だけを抜き出して、Excelシート上に表示させる。その文字列を書き換える。(又は、変換後の文字列を変換前と対比できる場所に書き込む)変換後の文字列を、DXFファイルに書き戻す。AUTOCADに戻って、DXFで書き出したオブジェクトを削除する。EXCELで書き換えたDXFファイルを元のデータ上に分解挿入する。これを実際にやってみたら、こんな感じです。https://streamable.com/j0v76※私は自作した物を使っていますが、自作しなくてもネットで探せばどこかに転がってるかもしれません。ExcelVBAでなければ、フリーウェアでこんな物もあります。https://www.vector.co.jp/soft/winnt/business/se480956.htmlナイス0
###ご回答誠にありがとうございます。>(Excelシートに表示させる訳ではない。メモリ上に読み込むだけで良い)この一文、本当に目から鱗でした。(なにぶん最近VBAを学び始めたもので・・・)動的配列の応用でしょうかね?(Open関数を使わない?)高速化につきましては、今後の課題としたいと思います。>変換後の文字列を、DXFファイルに書き戻す。AUTOCADに戻って、DXFで書き出したオブジェクトを削除する。この2文の方法がわからない状況です・・・・ヒントと言いますか、使用する関数やコマンド等だけでも教えていただくことはできないでしょうか。
###文字というのはマルチテキストのことですか?レイアウトタブの文字を編集とかですか?すでに利用されていると思いますが、座標をエクセルに書き出すのはデータ書き出しで簡単に取得で来ます。ブロック参照の属性文字だったらATTOUT とATTIN (コマンド)便利です。書き出しと読み込みで編集できます。表でしたらエクセルの関数を使って自動作図できたりします。作る作業が面倒ですが、完成したら楽です。文字の順番置換ができるフリーソフトも便利なものがありました。ナイス0

 

TAG