GoogleスプレッドシートからJw-cadへ貼付けする外部変形もどき

Jw-cadで表を描くのが結構大変、、、

Jw-cadの練習をしていて感じたのですが、エクセルなんかの表をそのままjw-cadにコピペできたら便利そうだなぁ、そんな思いがよぎり調べたところExcel To Jw_Winという良さそうなエクセルのアドインが。ただ最近エクセルよりスプレッドシートを利用することも多くスプシからどうにかできないか、、、そんな訳でGoogleスプレッドシートからJw-cadへ表の貼付けができる外部変形もどきを作成してみました。

Jw-cad外部変形とは?

CADの練習を進めていくうちに外部変形という機能が気になり始めました。

座標コマンドから座標を読み込み、外部変形にデフォルトで入っている座標面積計算(ZAHYOU.BAT)を実行するとなんと簡単に求積表ができるではないですか。すごい。

外部変形を実行すると何が起きてる?

とりあえず調べてみると色々と丁寧にみなさん解説してくれていました。ざっくり自分的な理解では

バッチファイルを実行 > バッチファイルからオプション渡してなんらかのプログラムを起動 > jwc-temp.txtにいろいろ書き込む > JWWでそのjwc-temp.txtを見込んで描画する。

こんな感じでしょうか。なのでプログラムを多少書ければある程度自分でカスタマイズしたコマンドみたいなのを作成できたりするのかなと。

外部変形の実行プログラムについて色々調べる。

結構古めな情報が多く多少不安になりつつ、とりあえずググってみたりしたんですが、Rubyで書かれているプログラムが多いように感じました。

昔インストールしてみたけど結局触ることなく終わった程度でRubyの知識はほぼゼロ。

とりあえずバッチから起動できればなんでもいけんじゃないか?PowerShellならインストール不要だしなんか動かせそう。と思ってPowerShwellの外部変形を色々調べてみるもあまりヒットしませんでした。悩む。

表を作成するプログラムを考察

JWWに入っているJWW_SMPL.BATを開くと色々と外部変形についての説明が記載されています。基本的にはx,y座標を入力して、文字入れる場合は後ろに文字入れて、みたいな以外と分かりやすい感じ。となればスプレッドシートの表から書き出せるのでは?

とりあえず簡単な描画を直接jwc-temp.txtに書き込んで試してみると意外と想定通りの動き。

てか、そもそもわざわざプログラム起動しないでJWW用コードをスプレッドシートのセルに書き出してそれをコピーしてjwc-temp.txtに直接貼り付ければ楽じゃないか?

ということで作ってみました

ということでjwc-temp.txtを直で編集するという外部変形もどきとなりましたがとりあえず完成!簡単な説明を載せておきますのでよかったら使ってみてください!

※機能修正しました

2025/5/19 バグ修正
2025/4/28 セル内の文字位置左右中央揃え指定を可能にしました

  • 設定
    • 基準X > 書き出す位置のX座標
    • 基準Y > 書き出す位置のY座標
    • 文字サイズ > 文字種といきたいとこでしたがサイズ指定にしました。文字幅+間隔/2文字幅+間隔の値を入力
    • 縮尺 > 縮尺です
    • 行間 > 上下のスキマです
    • 列間 > 左右のスキマです
    • 文字配置 > セル内文字の左右・中央揃えの指定が可能です
    • 見出し中央揃え > 文字配置とは別に見出し行列(A列/5行目)のみ別途中央揃え指定が可能です。無チェックの場合は文字配置の指定位置になります
  • 注意
    • 最終行はA列、最終列は5行目で判定しています。この行列以外に最終セルがあると反映されません。
    • 簡単に変更できますが最大行は55行、列はO列までに設定しています。

とりあえずこんな感じで適当に入力してみます。グレーの部分だけ数式が入っている為消さないようご注意ください。タイトルは入れても入れなくても大丈夫です。

一通り入力したら上部の追加メニューから表データ作成をクリック
jw-cad用表作成 表データ作成ボタンに変更しました

※GoogleAppsScriptを利用している為初回実行時に認証画面が表示されます。

  • 認証の流れ
    • 認証が必要です > OK
    • アカウントの選択 > ご自身のアカウントを選択
    • このアプリは Google で確認されていません > 左下「詳細」をクリック
    • 無題のプロジェクト(安全ではないページ)に移動 > クリック
    • 無題のプロジェクト が Google アカウントへのアクセスをリクエストしています > 許可

普段GASを利用しない方はこの工程で折れると思いますが、このGASはこのスプレッドシートのみ参照しているだけなので安心してご利用頂ければと思います。

↓このGAS承認の流れはこちらのサイト様で分かりやすく説明されていましたので!
GAS実行時に「このアプリはGoogleで確認されていません」と出る原因と対処法

右側にJWW用のデータが書き出されます。一番下の#endまで全て選択(Q1セルでCtrl+A)してコピーします。

ここからJWWへ移動して外部変形をクリック、SUPUSI.batをクリック。

※SUPUSI.batの中身は↓これだけです。

@rem スプレッドシート表貼付け
REM #jww
REM #cd
notepad jwc_temp.txt
pause
  • SUPUSI.batに記載された内容
    • @rem スプレッドシート表貼付け > 外部変形選択時のタイトルみたいなやつ
    • REM #jww > 外部変形バッチファイルとして認識させる
    • REM #cd > JWWディレクトリへ移動
    • notepad jwc_temp.txt > メモ帳でjwc_temp.txtを開く
    • pause > バッチを一時停止する

上記バッチファイルをJWWフォルダへ置くだけです。
↓一応DLファイルおいときます。

jwc-temp.txtがメモ帳にて開かれます。

全て選択して上書きペースト(元の内容は削除)し、上書き保存して閉じます。

「続行するには何かキーを押してください・・・」と表示されたコマンドの画面が表示されるので何かキーを押します。

先ほどスプレッドシートで作成した表が書き出せます!

本当は移動又は複写の状態で好きな位置に書き出したかったのですがやり方がちょっとわからず。中心のX0、Y0位置以外に書き出したい場合は、面倒ですが中心点取ってそこから設置したい位置を測定>座標測定(【mm】/m)にて調べ、

測定結果をスプレッドシートの基準X、基準Yに記入。

これで一応指定位置に書き出しが可能です。

まとめ

公開リンクおいておくので、良かったらコピーしてご利用いただければと思います。Jw-cadはまだ本二冊ほど読みながら練習した程度の初心ですので是非ご意見、コメントいただけると嬉しいです。

カテゴリーCAD

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です