- 締切済み
AUTOCAD2007について
見えづらい不必要な点をコマンドラインのみで削除したいです。 何か良い方法はないでしょうか。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- grazie
- ベストアンサー率56% (200/355)
普通のAutoLispはそのままでは複数ファイル間で実行できませんが、 関数化してコマンドとして定義してあげればスクリプトで実行できます。 (defun C:eraseAllPoints ( / ss) (if (setq ss (ssget "X" '((0 . "POINT")))) (progn (command "_.ERASE" ss "") ) ) ) たとえば上記コードをテキストエディタにコピペして、拡張子.lspでパスの通った場所に保存します。 APPLOADするなりして読み込んでおけば、ERASEALLPOINTS というコマンドが使えるようになります。
- kuro804
- ベストアンサー率29% (523/1762)
No1です。再回答 コマンドラインでダイアログを抑制する方策が以下に記述されています。 役に立つといいですが? http://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2015/JPN/AutoCAD-Core/files/GUID-A02E1B47-AED7-4308-A6A3-94368852C2D8-htm.html
お礼
申し訳ありません。 URLのリンク先を確認しましたが、こちらのシステム変数の変更を試していました。 また、FILTER、QSELECTのダイアログボックスを制御するコマンドはなさそうでした。 返信ありがとうございます。
- grazie
- ベストアンサー率56% (200/355)
Autolispで削除するのはどうでしょうか。 (if (setq ss (ssget "X" '((0 . "POINT")))) (progn (command "_.ERASE" ss "") (setq ss_len (sslength ss)) (alert (strcat (itoa ss_len) " points deleted.")) ) (progn (alert "There is no points.") ) )
お礼
コマンドラインにこだわらず、マクロ等も調べてみました。 Autolispはマクロよりも難しいと書いてありました。 マクロ事態もあまりよく分かりませんでした。 上記のコードで複数のファイルに同じ処理を行えるのでしょうか? もし行えるのならもう少し調べてみようと思います。 ただ自分には難しいです・・・
- kuro804
- ベストアンサー率29% (523/1762)
こんばんは ごめんなさいね! 回答にはほど遠いですが 暇なもので... むかし、マウスで空白を選択してデリートキーを押して、必死で不要なゴミを消していたことを思い出しました。そこには線分の短いクズや点などが散らばっていました。 さて、消したくない点はあるのでしょうか? 全ての点を消すならDXFファイルにしてエディターで点の属性を検索して消せば終わりになるのですが、 多分、選択的に点を消されるのだろうと思いますので、コマンドラインでは位置指定が難しいように思えますが、最近のオートキャドは知りませんが、もしかして抽出機能で点を順次選択出来る機能などがあるのではないでしょうか? 良い回答が着ますように願っています。
お礼
返信ありがとうございます。 消したくない点はありません。全ての点を削除したいです。 何故、コマンドラインのみで行いたいのかというと、Scrmakerというフリーソフトを 使用してコマンドラインを複数のファイル、図面に対して連続処理を行っているからです。 QSELECTやFILTERコマンドを入れて動作させてみたのですが当然、ダイアログボックスが 出てきて連続処理が中断されてしまいます。 それを避けたく何か別の方法で出来ないか質問させて頂きました。 回答を待っています。 どうもありがとうございました。
お礼
他の作業に追われていました。 返事が遅くなり申し訳ありません。回答ありがとうございます。 回答の内容を改めて勉強してみます。