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

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

スクリプトで印刷ページ設定の既定値を変更する方法
取引先の都合でレイアウト空間が使えないのですが
モデル空間に複数図面を集約しておいて
連続印刷はスクリプトもしくはパブリッシュで行いたいと考えています。
パブリッシュする場合に印刷設定を複数保存しておく必要がありますが
印刷設定をスクリプトで新規作成
もしくは名前をつけたページ設定に保存する方法が分かりません。

1ファイル内のモデル空間に複数並べた図面を
スクリプトを利用して連続窓印刷を実施しています。

それぞれの印刷範囲をページ設定で名前をつけて
スクリプトで保存する方法はありますでしょうか?
-PLOTで実施するとレイアウト(名前:なし)に適用しかできません。

-PAGESETUPでも新規作成はできませんでしたが
仮で複数のページ設定を保存したファイルを用意しておいて
-PSETUPINで複数取り込みはスクリプトでできますが
印刷設定をそれぞれのページ設定に保存する方法が分かりませんでした。。

IJCADを利用していますが、AutoCADでできる方法があればご教示いただきたいです。
  • うーたーん
  • MAIL
  • 2024/09/30 (Mon) 12:40:39
Re: スクリプトで印刷ページ設定の既定値を変更する方法
調べてみましたが、コマンドラインではページ設定に「名前を付けて保存」することはできないようです。
Lispなら可能だと思いますが・・・

>印刷設定をそれぞれのページ設定に保存する方法が分かりませんでした。
ページ設定があらかじめあるのなら、AutoCADでは、-plotコマンドで次のようなコマンドラインで適用できます。
ページ設定名をtestとします。

-------------------------------------------------------
コマンド: -PLOT
詳細な印刷環境設定? [はい(Y)/いいえ(N)] <いいえ>: n

レイアウト名を入力 または [一覧(?)] <モデル>:

ページ設定名を入力 <>: test

出力デバイス名を入力 または [一覧(?)] <[設定したプリンタ名]>:(Enter)
印刷をファイルへ書き出しますか [はい(Y)/いいえ(N)] <N>:N
ページ設定の変更を保存しますか [はい(Y)/いいえ(N)]? <N>N
印刷を続けますか [はい(Y)/いいえ(N)] <Y>:
有効な印刷領域: 幅= 286.77 高さ= 409.79

ビューポート 2 を印刷中。
-------------------------------------------------------

また、過去トピックに以下のようなものがあります。
https://totthi.bbs.fc2.com/?act=reply&tid=16383391

こちらの下の方にある、ヨシさんの書き込みと
https://ryooji-f.hatenadiary.org/entry/20121101/1351780031
上記にあるファイルを使うと、ビューさえ設定すればスクリプトで連続印刷できるようです。
  • LUNE
  • 2024/09/30 (Mon) 13:29:20
Re: スクリプトで印刷ページ設定の既定値を変更する方法
LISPに関しても、印刷設定・ページ設定に関しては、レイアウトと紐づいていて、モデル空間の印刷設定に名前を付けるというのは、ちょっと難しそうです・・・
  • LUNE
  • 2024/09/30 (Mon) 14:24:02
Re: スクリプトで印刷ページ設定の既定値を変更する方法
>取引先の都合でレイアウト空間が使えないのですが
>モデル空間に複数図面を集約しておいて
>連続印刷はスクリプトもしくはパブリッシュで行いたいと考えています。

とのことですが、連続印刷するのは、あくまでうーたーんさんのところでだけですか?

スクリプト、あるいはパブリッシュの連続印刷ができるように設定したもの(そのページ設定を作成したデータ)を、取引先に渡す必要があるのでしょうか?

自分のところだけで連続印刷するためだけなら、レイアウトを作ってしまった方が楽な気がします
  • LUNE
  • 2024/09/30 (Mon) 14:41:09
Re: スクリプトで印刷ページ設定の既定値を変更する方法
レイアウトじゃなくて、モデル空間内にビューを設定するのはいかがでしょう?

印刷するときは、印刷範囲にビューを呼び出すだけ。

ビューの設定も、各図面の配置(座標・図面尺度など)が判っているなら、
スクリプトで自動設定できます。(EXCELでスクリプトを自動生成したりも可能)
  • 通りすがりの人
  • 2024/09/30 (Mon) 15:53:10
Re: スクリプトで印刷ページ設定の既定値を変更する方法
>LUNE様

お返事が遅くなり申し訳ございません。
非常に詳細に調査いただいてありがとうございます。

コマンドライン、LISPでも
モデル空間の印刷設定に名前をつけるのが難しい旨承知いたしました。
物凄く簡単そうに思いますが、機能が提供されてないところを見ると
やはりレイアウト空間がある以上需要がないんでしょうか。。

>ページ設定があらかじめあるのなら、AutoCADでは、-plotコマンドで次のようなコマンドラインで適用できます。

自分の勘違いだったのですが
ページ設定をスクリプトで新規作成できないので
作成済みの別図面から-PSETUPINでページ設定だけ取り込んで
取り込んだ後に既定値にして、-PLOTで詳細印刷で印刷設定を保存すれば
上書きできると思っていたのですが、「なし」に保存されるだけでした。
すでにあるページ設定の印刷設定を再定義するスクリプトもなさそうです。

なので-PLOTで詳細じゃない印刷をすると、既定値にはなりますが
印刷範囲の変更ができませんでした。

>こちらの下の方にある、ヨシさんの書き込みと
>https://ryooji-f.hatenadiary.org/entry/20121101/1351780031
>上記にあるファイルを使うと、ビューさえ設定すればスクリプトで連続印刷できるようです。

上記拝見いたしました。
pscrg.zipは過去ログ同様に私も警告が出てダウンロードはできませんでした。
お伝え漏れ&質問が誤っており申し訳ございません。
現在はExcelマクロを利用してスクリプト出力をしていまして
窓座標を登録して連続印刷は可能となっています。
ですので現状目的はパブリッシュで1ファイルモデル空間内の
複数図面を連続印刷するのが目的となります。
1ファイルに複数の印刷設定を持たせるには
ページ設定を新規作成するかレイアウトを利用するかかと思います。
レイアウトは最終手段と考えており
最悪手動でページ設定は作成するか
ページ設定(印刷範囲などの設定含めて)作成済図面をテンプレとして用意しておき
都度テンプレにデータを移動してから作業するようにするか、、と考えております。

ちなみにパブリッシュを利用したい理由は下記の通りです。
shxフォントを利用した図面が多いがPDFで文字検索を行いたい
→「AutoCAD PDF (General Documentation).pc3」なら
 shxフォントでも文字認識する
→IJCADでは上記ドライバが無いのでDWG True Viewerを利用する
→DWG True Viewerではスクリプトは利用できないのでパブリッシュを利用する
→パブリッシュでモデル空間の複数図面印刷をしたい ※現状ここです。

>スクリプト、あるいはパブリッシュの連続印刷ができるように設定したもの(そのページ設定を作成したデータ)を、取引先に渡す必要があるのでしょうか?
>自分のところだけで連続印刷するためだけなら、レイアウトを作ってしまった方が楽な気がします

取引先でも連続印刷ができるようにする必要があり
現状はExcelも一緒に渡しております。
更に納品時には1ファイル1図面とする必要があり
最終ファイル分割も行っております。(現状手動です。)
分割用スクリプトを渡せば
先方で作業してもらえると思いますが
レイアウトは今までは不可とされており交渉次第と言ったところです。。
長文失礼いたしました。
  • うーたーん
  • MAIL
  • 2024/10/01 (Tue) 02:23:24
Re: スクリプトで印刷ページ設定の既定値を変更する方法
>通りすがりの人様

ご提案ありがとうございます。
お伝え漏れ&質問が誤っており申し訳ございません。
現在はExcelマクロを利用してスクリプト出力をしていまして
窓座標を登録して連続印刷は可能となっています。
ですので現状目的はパブリッシュで1ファイルモデル空間内の
複数図面を連続印刷するのが目的となります。

ビュー指定はやったことなかったのですが
窓座標よりもビューで登録しておく方が
印刷設定が上書きされたりしても
範囲が残っており便利そうですね。
ありがとうございます。
  • うーたーん
  • MAIL
  • 2024/10/01 (Tue) 02:27:37
Re: スクリプトで印刷ページ設定の既定値を変更する方法
ちなみに趣旨が違うかもしれませんがご教示いただけますと幸いです。

dsdファイルは相対パスなどで印刷対象のファイルパスを指定できないと思いますが
自分の環境でdsdファイルを作成・送付し、取引先が先方環境で開いた場合は
図面が見つからないエラーになるかと思います。
メモ帳などで開いて下記のパスを直接修正すれば問題なく印刷できたのですが
これで処理的には問題ないのでしょうか?
6行目:DWG=パス
9行名:OriginalSheetPath=パス

最終分割されてしまいレイアウト空間のメリットも印刷以外享受できないため
ページ設定済テンプレを縮尺別に作って置く方が無難でしょうか。。
AutocadでVBAマクロ使ったこと無いんですが
今調べております。
EXCELやACCESSなどと違いほとんどTIPSみたいなサンプルがヒットしないんですがですがマイナーなんでしょうか、、
こちらでも無理でしょうか。。
聞いてばかりで申し訳ございません。
  • うーたーん
  • MAIL
  • 2024/10/01 (Tue) 02:39:39
Re: スクリプトで印刷ページ設定の既定値を変更する方法
ダウンロードの警告に関しては、exeファイルがあるからだと思います。

→「AutoCAD PDF (General Documentation).pc3」なら
 shxフォントでも文字認識する
これについては、システム変数PDFSHXの値に依るのでは?

モデル空間の名前のついたページ設定はコマンドラインからの設定ができないのは、どうしようもありません。

お書きのような状況ですと、ビューを対象としたページ設定を必要数作成しておいて、それを印刷対象のファイルに読み込み、それを使ってパブリッシュというのが現実的かもしれません。
縮尺別での作成も必要となるので、最初の準備は面倒ですが・・・

dsdファイルの書き換えについては、それでいいと思います。

取引先でも連続印刷、Excelも納品ということですが、納品は分割ファイルなんですよね?
複数図面のファイルも納品されているのですか?

私のところも、元はモデルで印刷することが多かったのですが、レイアウトの使用を徐々に浸透させ、今ではレイアウトオンリーになりました。
パブリッシュを有効に使用するためにも、取引先にレイアウトの使用を分かってもらえるといいですね。
  • LUNE
  • 2024/10/01 (Tue) 09:34:04
Re: スクリプトで印刷ページ設定の既定値を変更する方法
>レイアウトは今までは不可

そんな客先は私のところにも沢山有ります。

しかし、「一括印刷のためだけにレイアウトを作成している」と説明すれば、許可してもらえています。

つまり、図面はモデル空間内だけで完成している。
レイアウトにはビューポート1つのみ。
複数のビューポートを配置したり、ペーパー空間に図枠を置いたり、文字や寸法を書いたりとかはしない。

といった状況なら、客先は拒否する理由が有りません。
  • 通りすがりの人
  • 2024/10/01 (Tue) 09:43:47
Re: スクリプトで印刷ページ設定の既定値を変更する方法
>LUNE様

>これについては、システム変数PDFSHXの値に依るのでは?
IJCADのサポートにも確認しましたが、現状はSHXフォントはAutoCADのように
文字認識するPDF出力はできないようです。
True Typeフォントなら問題ないのですが。

仰る通りテンプレートを用意しておくのが現実的かもしれません。

dsdファイルのご確認ありがとうございます。

希望としては複数図面ファイルでやり取りをしたいのですが
コンサルなどの最終納品先は1ファイル1図面とされているらしく
最終的には分割する必要があります。
その分割作業をこちらでやるか先方でやるかという話で
現状は途中のやり取りは複数図面ファイルで行い
最終納品は分割ファイルとなっています。
最終納品後に先方で修正されて、更に変更依頼が来たりすると
分割された元ファイルが送られてきます。。
ですのでそれを更にスクリプトなどで結合するという無駄な作業が。。

元々用意されている機能だけで運用できる方が楽ですし
レイアウトを推進していけるように少しずつ打診はしてみようと思います。

この度は誠にありがとうございました!
  • うーたーん
  • MAIL
  • 2024/10/01 (Tue) 23:13:02
Re: スクリプトで印刷ページ設定の既定値を変更する方法
>通りすがりの人様

確かに仰る通りレイアウト空間にビューポート以外の要素は置かず
モデル空間だけで完結するようにしておけば
レイアウトがあってもなくても影響ないですね。
先入観で図枠や表などはレイアウトに置かなければと思ってました。
まずはあっても影響ないですしその方法で
レイアウトの良さを宣伝していこうと思います。

この度は誠にありがとうございました!
  • うーたーん
  • MAIL
  • 2024/10/01 (Tue) 23:17:41
Re: スクリプトで印刷ページ設定の既定値を変更する方法
レイアウトを作っていれば、1ファイル1図面に分割するのも、
EXPORTLAYOUTコマンドで出来ますからね。
  • 通りすがりの人
  • 2024/10/02 (Wed) 08:13:48

返信フォーム






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