この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

ファイルオープンクローズ
いつも拝見させていただいております。

lisp または マクロ、スクリプト どちらでもいいので作成お願いしたいです。

使用cad --- autocad 2014

やりたいこと
図面ファイル aaa.dwg(ファイル名はその都度変わります) を立ち上げます。

マクロなどはここから↓

aaa.dwgを dxfoutコマンド で ファイル名 aaa.dxfで保存(aaa.dwgと同じフォルダでもok)
保存された aaa.dxf を open または dxfin コマンドで 開く。

(最初に立ち上げたaaa.dwgは最終的には保存しないでcloseしたい。)

ファイル名の取得やディレクトリの取得など全くわからず open dxfin コマンドの使い方も私には難しいです。
お忙しいとは思いますが、時間があるときにお願いします。
  • チョウ
  • 2021/07/15 (Thu) 09:07:01
Re: ファイルオープンクローズ
名前を付けて保存『SAVEAS』コマンドでファイルの種類を『DXF』に指定するでは駄目なんでしょうか?

>(最初に立ち上げたaaa.dwgは最終的には保存しないでcloseしたい。)
名前を付けて保存しているので元のファイルそのものを書き換えているのでご希望の動作かと思うのですが
  • chibi-tom
  • 2021/07/15 (Thu) 10:09:47
Re: ファイルオープンクローズ
>aaa.dwgを dxfoutコマンド で ファイル名 aaa.dxfで保存(aaa.dwgと同じフォルダでもok)
>保存された aaa.dxf を open または dxfin コマンドで 開く。
>(最初に立ち上げたaaa.dwgは最終的には保存しないでcloseしたい。)

上記の仕様でよければ、dxfoutを使わずに「名前を付けて保存」でdxfを指定して保存するのがいいと思います。
そうすれば、開いたファイルがそのままdxfファイルとなり、dxfファイルを新たに開く必要がなく、元のdwgは保存されることもありません。

マクロは
^C^Cfiledia;0;saveas;dxf;16;;filedia;1;

です。
保存場所は元のファイルと同じ場所になります。
  • LUNE
  • 2021/07/15 (Thu) 10:14:18
Re: ファイルオープンクローズ
早速の返信ありがとうございます。

名前を付けて保存がありましたか...

説明不足でも申し訳ありません。一番やりたいことはデータ上に消せないオブジェクトがたくさんあり
それの対応です。AUTODESKのヘルプで AUTOCAD2014 のやり方が乗っていましたがそれを
コマンド化できないか悩んでいました。

名前を付けて保存だとPUREできるのに限界?があるみたいで、一度DXFデータをクローズして再度立ち上げると
PURGEできるオブジェクトが新しく追加されます。

名前を付けて保存してから立ち上がっているDXFデータをクローズして再度立ち上げることは可能でしょうか?

説明不足でご迷惑かけて申し訳ありません。
  • チョウ
  • 2021/07/15 (Thu) 11:23:25
Re: ファイルオープンクローズ
早速の返信ありがとうございます。
私の返信内容が重複してしまうので省略させていただきます。
申し訳ありません。
  • チョウ
  • 2021/07/15 (Thu) 11:25:37
Re: ファイルオープンクローズ
事前に保存する名前を決めておけば、スクリプトを使っdxfout→dwg閉じる→dxfオープンはできそうです。

スクリプトの例(該当の図面を開いておく)
----------------------------------------------------------------------------
filedia
0
dxfout
(保存するdxfフルパス)
16
close
open
(上記と同じフルパス)
filedia
1
----------------------------------------------------------------------------
これで開くことができます。

開いたファイルで、次にファイルを開くや名前を付けて保存しようとすると、ダイアログが出ない場合があるかもしれません。
(私の環境ではそうなりました・・・)
一度名前を付けて保存(saveas)を実行しキャンセルすると、開くようになります。
  • LUNE
  • 2021/07/15 (Thu) 14:07:45
Re: ファイルオープンクローズ
返信ありがとうございます。

なぜだかわからりませんが以下のスクリプトでできるようになりました。

--------------------------------------------
saveas
dxf
v
2013
16

fileopen

saveas
2013

y

--------------------------------------------
なぜでしょう?fileopenコマンドがなにも記入しないでそのままで理想の形になりました。???

filediaも指示なしで問題ないのが不思議です???


このスクリプトで問題なのは一度実行するとdxfファイルがつくられるため2回目に実行するときは
上書きしていいかのコメントがでてきてそこでとまってしまします。
なにか回避方法はあるのでしょうか?
  • チョウ
  • 2021/07/15 (Thu) 15:21:22
Re: ファイルオープンクローズ
お書きのスクリプトでは、fileopenコマンドはスキップされています。
実行後にコマンドの流れをテキストウインドウで確認すると、分かると思います。

なので、実際には、開いた図面を2013・dxfで保存(このとき、図面はdxfとなり、開かれたまま)→開かれている図面を2013・dwgで上書き保存という流れです。

2回目以降dxfが存在するために、上書きアラートが出るのを回避するのは、スクリプトだけでは難しいです。
最初からダミーのdxfを作っておいて、常に上書きが出るようにするとかですかね・・・
  • LUNE
  • 2021/07/15 (Thu) 16:29:01
Re: ファイルオープンクローズ
>なにか回避方法
参考までに


^C^Cfiledia;0;saveas;dxf;v;2013;16;;;$M=$(if,$(getvar,cmdactive),dxf;v;2013;16;;n,saveas;dxf;v;2013;16;;y);script;『スクリプトファイル名』;^Z

上記マクロでスクリプトはfileopen以降
下記は参考のスクリプトです
勝手に名前削除ですべて削除してみました

=====================
;スクリプトファイル名.scr
;
fileopen

-purge
a
*
n
saveas
2013

y
filedia
1

;
;スクリプトの終わり
=====================

名前削除の必要が無ければ
下記は削除してください

-purge
a
*
n
  • chibi-tom
  • 2021/07/15 (Thu) 17:01:19
Re: ファイルオープンクローズ
協力してくださった方々ありがとうございました。
解決しました。助かりました。

またお世話になると思いますがよろしくお願いします。

  • チョウ
  • 2021/07/15 (Thu) 18:05:21

返信フォーム






プレビュー (投稿前に内容を確認)