Jw_cad 相談室−その2 New

 Jw_cad についての相談の場としてお使いください
情報の交換には Jw_cad 情報交換室 をご利用ください
なお、情報交換室と相談室の両方に同じ内容を投稿するのはご遠慮ください

2009年9月以前の発言過去ログのページからご覧ください。

それ以降の過去ログは消失しています。
申し訳ありませんが、復活の予定はありません。


新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム
6 / 310 ツリー    ←次へ | 前へ→

外部変形で用紙サイズを変更したいのですが 正廣 21/9/24(金) 10:15

Re:外部変形で用紙サイズを変更したいのですが 正廣 21/9/24(金) 16:41
jwfでも既に開いている図面の用紙は変更できない。 kojima 21/9/24(金) 20:38
Re:jwfでも既に開いている図面の用紙は変更できない。 正廣 21/9/27(月) 10:28
Re:jwfでも既に開いている図面の用紙は変更できない。 kojima 21/9/27(月) 21:59
Re:jwfでも既に開いている図面の用紙は変更できない。 正廣 21/9/28(火) 8:03
マクロで用紙サイズ変更 kojima 21/10/6(水) 20:15
Re:マクロで用紙サイズ変更 kojima 21/10/6(水) 23:09

Re:外部変形で用紙サイズを変更したいので...
 正廣 E-MAIL  - 21/9/24(金) 16:41 -
▼kojimaさん:
>hzs は、書き出し専用のデータです。
>読み込んでも何の変化もありません。
>
>外部変形で用紙サイズを変更をすることは出来ません。
>
>用紙サイズは、ステータスバーの用紙サイズをクリックして簡単に変更
>できますので、時間をかけて、外部変形でというのは実用的ではないでしょう。
>
>
>プログラミングの興味としてなら
>JWWのデータ形式を理解していれば、保存されているデータに
>直接アクセスして用紙サイズを変更できます。
>(バイナリデータを書き換える専用アプリケーション)
>
>以下は、それを外部変形から利用できるようにしたものです。
>図面そのものは書き換えていません。
>temp.jwwにデータをコピーして用紙サイズの変更をします。
>
>
>@REM 用紙サイズを変更した図面を開く
>@echo off
>REM #jww
>REM #cd
>REM #hf
>REM #h0
>REM #e
>copy jwc_temp.txt temp.txt > nul
>ruby -x %~f0 temp.txt
>
>goto end
>#!ruby -Ks
>while ARGF.gets
>if $_=~/^file\=/
>file=$'.chomp
>end
>end
>if file==""
>STDERR.puts "保存されていません。 保存してから再実行してください"
>STDERR.puts "続行するには何かキーを押してください"
>STDIN.gets
>exit
>end
>STDERR.puts "事前に上書き保存しましたか? YES:1 NO:2"
>hozon=STDIN.gets.to_i
>unless hozon==1
>STDERR.puts "上書き保存してから再実行してください"
>STDERR.puts "続行するには何かキーを押してください"
>STDIN.gets
>exit
>end
>STDERR.puts "どの用紙サイズに変更しますか? 数値を入力してください"
>STDERR.puts "0:A0 1:A1 2:A2 3:A3 4:A4 8:2A 9:3A 10:4A 11:5A 12:10m 13:50m 14:100m"
>paper_size=STDIN.gets.to_i
>dir,fi=File.split(file)
>begin
>i=0
>data=""
>open(file,"rb"){|f|data=f.read}
>#◎jwwデータの宣言
>i += 8
>#◎図面のバージョン
>b_n=data[i,4].unpack("L")[0];
>if b_n<420
>STDERR.puts "バージョンNO#{b_n}には未対応です。処理を中止します"
>exit
>end
>i += 4
>
>#◎メモ欄の記載文
>memo_byte=data[i,1].unpack("C")[0];
>i += 1+memo_byte
>#◎図面サイズ
>#0:A0 1:A1 2:A2 3:A3 4:A4 8:2A 9:3A 10:4A 11:5A 12:10m 13:50m 14:100m
>data[i,4]=[paper_size].pack("L")
>
>open("#{dir}/temp.jww","wb"){|f|f.write(data)}
>
>system("start c:/jww/jw_win #{dir}/temp.jww")
>rescue
>STDERR.puts $!
>end
>__END__
>:end

ご指導ありがとうございます。
私はRubyはわかりませんので
環境ファイルでA2の用紙設定してそれを
jw_win.jwfに書き換えようかと思っています。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62@121-80-150-149f1.hyg2.eonet.ne.jp>
・ツリー全体表示

jwfでも既に開いている図面の用紙は変更で...
 kojima  - 21/9/24(金) 20:38 -
▼正廣さん:
>ご指導ありがとうございます。
>私はRubyはわかりませんので
>環境ファイルでA2の用紙設定してそれを
>jw_win.jwfに書き換えようかと思っています。

新規にJWWを起動したときは、用紙サイズはA2ですが。

既に保存済のファイルを開いて、jw_win.jwfを読み込んでも用紙サイズは変更されません。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52@ai126173071073.46.access-internet.ne.jp>
・ツリー全体表示

Re:jwfでも既に開いている図面の用紙は変...
 正廣 E-MAIL  - 21/9/27(月) 10:28 -
▼kojimaさん:
>▼正廣さん:
>>ご指導ありがとうございます。
>>私はRubyはわかりませんので
>>環境ファイルでA2の用紙設定してそれを
>>jw_win.jwfに書き換えようかと思っています。
>
>新規にJWWを起動したときは、用紙サイズはA2ですが。
>
>既に保存済のファイルを開いて、jw_win.jwfを読み込んでも用紙サイズは変更されません。

kojimaさん 
返信ありがとうございます。

私は図面サイズをA3でエクセルで数値を入力して自動でJW_cadで作図を作成させています。
数値によって図面枠からはみ出たり、するので外部変形で常時A3の図面を使用しているのを
数値によってA2の図面枠に変更したいのです。

とりあえずA3図面の時はエクセルの数値入力で印刷用に図面枠を作成しようかと思っています。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62@119-230-95-38f1.hyg2.eonet.ne.jp>
・ツリー全体表示

Re:jwfでも既に開いている図面の用紙は変...
 kojima  - 21/9/27(月) 21:59 -
>私は図面サイズをA3でエクセルで数値を入力して自動でJW_cadで作図を作成させています。
>数値によって図面枠からはみ出たり、するので外部変形で常時A3の図面を使用しているのを
>数値によってA2の図面枠に変更したいのです。
>とりあえずA3図面の時はエクセルの数値入力で印刷用に図面枠を作成しようかと思っています。

違うレイヤにA3とA2の用紙枠を作図して、A2の時は、A3の用紙枠を非表示でいいのでは?

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52@ai126173187007.46.access-internet.ne.jp>
・ツリー全体表示

Re:jwfでも既に開いている図面の用紙は変...
 正廣 E-MAIL  - 21/9/28(火) 8:03 -
▼kojimaさん:
>>私は図面サイズをA3でエクセルで数値を入力して自動でJW_cadで作図を作成させています。
>>数値によって図面枠からはみ出たり、するので外部変形で常時A3の図面を使用しているのを
>>数値によってA2の図面枠に変更したいのです。
>>とりあえずA3図面の時はエクセルの数値入力で印刷用に図面枠を作成しようかと思っています。
>
>違うレイヤにA3とA2の用紙枠を作図して、A2の時は、A3の用紙枠を非表示でいいのでは?

kojimaさんへ
ありがとうございます。kojimaさんのご指導のようにします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62@119-231-140-248f1.hyg2.eonet.ne.jp>
・ツリー全体表示

マクロで用紙サイズ変更
 kojima  - 21/10/6(水) 20:15 -
マクロでできました。
短いコードですみます。
以下はrubyで書いていますが、マクロはVBscript や Jscript VBA のほうが書きやすいと思います。
外部変形コマンドから実行できるようにしています。


@REM 用紙サイズの変更
@echo off
REM #jww
REM #cd
REM #e
start ruby -x %~f0

#!ruby -Ks
STDERR.puts "pape_size 0:A0 1:A1 2:A2 3:A3 4:A4 A:2A B:3A C:4A D:5A E:10m F:50m G:100m"
size=STDIN.gets.chomp
require 'win32ole'
shell=WIN32OLE.new("WScript.Shell")
shell.AppActivate("jw_win")
sleep(1)
shell.Sendkeys("%sy#{size}")
__END__
:end


EXCEL VBAのマクロだと以下のようになるようです?
(用紙サイズをA2にする)

Sub paper_size_change()
AppActivate "Jw_win.exe"
SendKeys "%sy2"
End Sub

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38@ai126160189254.39.access-internet.ne.jp>
・ツリー全体表示

Re:マクロで用紙サイズ変更
 kojima  - 21/10/6(水) 23:09 -
▼kojimaさん:
>EXCEL VBAのマクロだと以下のようになるようです?
>(用紙サイズをA2にする)
>
>Sub paper_size_change()
>AppActivate "Jw_win.exe"
>SendKeys "%sy2"
>End Sub


Sub paper_size_change()
AppActivate "Jw_win"
SendKeys "%sy2"
End Sub

でした。
EXCELからこのマクロを実行すると起動中のJWWの図面サイズがA2になります。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38@ai126173008245.46.access-internet.ne.jp>
・ツリー全体表示

6 / 310 ツリー    ←次へ | 前へ→
新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム
 898260
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b5
Jw_cad Copyright (C)1997-2021 Jiro Shimizu & Yoshifumi Tanaka