Page 310 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼2.5で作図した状態を復元する方法はないでしょうか? Since Dos 16/6/11(土) 23:31 ┣Re:2.5で作図した状態を復元する方法はないでしょうか? R.N 16/6/12(日) 1:41 ┃ ┗Re:2.5で作図した状態を復元する方法はないでしょうか? Since Dos 16/6/12(日) 11:06 ┃ ┣Re:2.5で作図した状態を復元する方法はないでしょうか? R.N 16/6/12(日) 13:13 ┃ ┃ ┗Re:2.5で作図した状態を復元する方法はないでしょうか? Since Dos 16/6/12(日) 14:54 ┃ ┃ ┗Re:2.5で作図した状態を復元する方法はないでしょうか? kojima 16/6/13(月) 7:38 ┃ ┗外部変形修正版 その1 kojima 16/6/13(月) 7:46 ┃ ┗外部変形修正版 その2 kojima 16/6/13(月) 7:47 ┣[投稿者削除] ┣Re:2.5で作図した状態を復元する方法はないでしょうか? cap 16/6/12(日) 15:48 ┣Re:2.5で作図した状態を復元する方法はないでしょうか? ヒデプロン 16/6/13(月) 7:15 ┃ ┗Re:2.5で作図した状態を復元する方法はないでしょうか? Since Dos 16/6/13(月) 17:10 ┗皆様ありがとうございました。 Since Dos 16/6/13(月) 17:07 ─────────────────────────────────────── ■題名 : 2.5で作図した状態を復元する方法はないでしょうか? ■名前 : Since Dos ■日付 : 16/6/11(土) 23:31 -------------------------------------------------------------------------
2.5で作図した状態を再度復元する方法はないでしょうか。 作図時の測定位置 角度、高さ、奥行きの数値を書き留めておけば できると思うのですが、よろしくお願いします。 利用例 照明器具の配置状態をいろいろなパターンで作図する。 |
▼Since Dosさん: "書き留めておけば"ということは、CADデータがない?ということでしょうか? でしたら、どうしようもないのでは--- 2.5D仕様で書かれた図面があるとするならば、2.5D表示・作図で--- |
▼R.Nさん: >"書き留めておけば"ということは、CADデータがない?ということでしょうか? >でしたら、どうしようもないのでは--- > >2.5D仕様で書かれた図面があるとするならば、2.5D表示・作図で--- レスありがとうございます。 作図した状態を復元とは、「2.5D」→ 「作図」で 2.5D透視図を「あるレイヤーに保存」します。 この保存した状態(角度、高さ、奥行きが全く同じ状態)と全く同じ見えかたの透視図を、後日再現できないかということです。もちろんCADデーターは保存してあります。 説明があまりうまくできなくて申し訳ありません。 |
▼Since Dosさん: こんにちは、 よく理解できませんが、 >作図した状態を復元とは、「2.5D」→ 「作図」で 2.5D透視図を「あるレイヤーに保存」します。 ここで、透視図も同時に保存してるのですよね---- >この保存した状態(角度、高さ、奥行きが全く同じ状態)と全く同じ見えかたの透視図を、後日再現できないかということです。もちろんCADデーターは保存してあります。 保存している透視図があるのに、同じ透視図がなぜ必要なのでしょう? 傾き・方向等を変えたい、と言うことでしたら、再度、2.5D⇒透視図で、右側の[左][右][上][下][前][後]等で変更して、作図・保存してください。 |
▼R.Nさん: たびたびすみません。 > >>作図した状態を復元とは、「2.5D」→ 「作図」で 2.5D透視図を「あるレイヤーに保存」します。 > >ここで、透視図も同時に保存してるのですよね---- > >保存している透視図があるのに、同じ透視図がなぜ必要なのでしょう? 照明器具の種類、配置等を書き換えて見え方の状態をいろいろな パターンで作図して比較検討するためです。 >傾き・方向等を変えたい、と言うことでしたら、再度、2.5D⇒透視図で、右側の[左][右][上][下][前][後]等で変更して、作図・保存してください。 この時1回目に作図した透視図と全く同じ状態(見え方)を復元する 方法があるかということです。 やはり【2.5D】測定位置の数値を書き留めておくしかないようですね。 ありがとうございました。 |
▼Since Dosさん: > >やはり【2.5D】測定位置の数値を書き留めておくしかないようですね。 >ありがとうございました。 たいした省力化にはならないかもですが ステータスバーから文字を抜き出してクリップボードにコピーする 外部変形です。 文字コマンドでコントロールバーの「貼付」をクリックすると図面上に 貼り付けできます。 RubyとAutoItのインストールが必要です。 https://www.autoitscript.com/site/autoit/downloads/ @REM ステータスバーの文字をクリップボードにコピー @echo off REM #jww REM #cd REM #hf REM #h0 REM #e copy jwc_temp.txt temp.txt>nul start ruby -x %~f0 temp.txt echo h#>jwc_temp.txt goto end #!ruby -Ks begin printf("項目の数値を入力してください\n") printf("1:透視図 2:鳥瞰図 3:アイソメ\n") select=STDIN.gets.to_i if select != 1 && select != 2 && select != 3 printf("数値が不適当ですを再入力してください\n") end end while(select != 1 && select != 2 && select != 3) require 'win32ole' itx=WIN32OLE.new("AutoITX3.Control") itx.Opt("WinTitleMatchMode",2) itx.WinActivate("jw_win") itx.WinWaitActive("jw_win") itx.WinMenuSelectItem("jw_win","","[その他","2") itx.WinWaitActive("jw_win") if select==1 itx.ControlFocus("jw_win","透視図","Button1") itx.ControlClick("jw_win","透視図","Button1") elsif select==2 itx.ControlFocus("jw_win","鳥敢図","Button2") itx.ControlClick("jw_win","鳥敢図","Button2") else itx.ControlFocus("jw_win","アイソメ","Button3") itx.ControlClick("jw_win","アイソメ","Button3") end sleep 1 str=itx.ControlGetText("jw_win","","msctls_statusbar321") str_a=str.split if select==1 or select==2 kakudo=$` if str_a[1]=~/\(/ h=$` if str_a[2]=~/\(/ l=$` if str_a[3]=~/\(/ itx.ClipPut("角度:#{kakudo} 高さ:#{h} 離れ:#{l}") else kakudo=$` if str_a[1]=~/\(/ kakudo2=$` if str_a[2]=~/\(/ itx.ClipPut("水平角:#{kakudo} 垂直角:#{kakudo2}") end __END__ :end |
▼Since Dosさん: >この保存した状態(角度、高さ、奥行きが全く同じ状態)と全く同じ見えかたの透視図を、後日再現できないかということです。もちろんCADデーターは保存してあります。 >説明があまりうまくできなくて申し訳ありません。 外部変形で強引に実装してみました。 2.5D情報の文字(角度:○○ 高さ:○○ 離れ:○○)を範囲選択後 図面をいったん閉じて、透視図の情報を書き換えてから開き直します。 書き換えられた情報で2.5D図が表示されます。 ※試す時は、図面のコピーを作成してバックアップファイルとして別に保存しておいて ください。 @REM 2.5D情報の文字を選択してJWWを開き直す @echo off REM #jww REM #cd REM #hf REM #1ch文字を指示してください REM #k|1)透視図|2)鳥瞰図|3)アイソメ|/_/a REM #e copy jwc_temp.txt temp.txt>nul start ruby -x %~f0 temp.txt %1 echo h#>jwc_temp.txt goto end #!ruby -Ks while ARGV.size>1 case argument=ARGV.pop when /\/a/ select=argument[2..-1].to_i end end while ARGF.gets if $_ =~ /^file=/ file=$'.chomp end if $_ =~ /^ch/ str=$'.chomp if $_ =~ /\"/ end end if file=="" STDERR.puts "ファイルが保存されていません" exit end str_a=str.split if str_a.size==3 kakudo=$'.to_f if str_a[0] =~ /角度\:/ h=$'.to_f if str_a[1] =~ /高さ\:/ l=$'.to_f if str_a[2] =~ /離れ\:/ else kakudo=$'.to_f if str_a[0] =~ /水平角\:/ kakudo2=$'.to_f if str_a[1] =~ /垂直角\:/ end if select==1 or select==2 if kakudo==nil or h==nil or l==nil STDERR.puts "2.5D情報が正確ではありません" STDIN.gets exit end else if kakudo==nil or kakudo2==nil STDERR.puts "2.5D情報が正確ではありません" STDIN.gets exit end end require 'win32ole' itx=WIN32OLE.new("AutoITX3.Control") itx.Opt("WinTitleMatchMode",2) itx.WinActivate("jw_win") itx.WinWaitActive("jw_win") itx.WinMenuSelectItem("jw_win","","ファイル","上書き保存") itx.WinMenuSelectItem("jw_win","","ファイル","Jw_cadの終了") i=0 data_o="" open(file,"rb"){|f|data_o=f.read} #jwwデータの宣言 byte=8;byte.times{i += 1} #図面のバージョン b_n=data_o[i,4].unpack("L")[0] byte=4;byte.times{i += 1} #メモ欄の記載文 memo_byte_o=data_o[i,1].unpack("C")[0];i +=1+memo_byte_o #図面サイズ byte=4;byte.times{i += 1} #レイヤグループ・レイヤ状態 byte=4;byte.times{i += 1} 0.upto(15){|i1| byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=8;byte.times{i += 1} byte=4;byte.times{i += 1} 0.upto(15){|i2| byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} } } #ダミー byte=14*4;byte.times{i += 1} #寸法関係の設定 byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} #ダミー byte=4;byte.times{i += 1} #線描画の最大幅 byte=4;byte.times{i += 1} #プリンタ出力範囲の原点 byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} #プリンタ出力倍率 byte=8;byte.times{i += 1} #プリンタ90°回転出力、プリンタ出力基準点位置 byte=4;byte.times{i += 1} #目盛設定モード byte=4;byte.times{i += 1} #目盛表示最小間隔ドット byte=8;byte.times{i += 1} #目盛表示間隔(X,Y) byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} #目盛基準点(X,Y) byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} #レイヤ名・レイヤグループ名 0.upto(15){|i1| 0.upto(15){|i2| memo_byte_o=data_o[i,1].unpack("C")[0] i +=1+memo_byte_o } } 0.upto(15){|i1| memo_byte_o=data_o[i,1].unpack("C")[0] i +=1+memo_byte_o } #日影計算の条件 byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=4;byte.times{i += 1} byte=8;byte.times{i += 1} #天空図の条件 byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} #2.5Dの計算単位(0以外はmm単位で計算) byte=4;byte.times{i += 1} #保存時の画面倍率(読込むと前画面倍率になる) byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} #範囲記憶倍率と基準点(X,Y) byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} #マークジャンプ倍率、基準点(X,Y)およびレイヤグループ if b_n.to_f >=300 1.upto(8){|i1| byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=4;byte.times{i += 1} } else 1.upto(4){|i1| byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} } end #文字の描画状態(Ver.4.05以降) if b_n.to_f >=300 byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=4;byte.times{i += 1} byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=4;byte.times{i += 1} end #複線間隔 0.upto(9){|i1| byte=8;byte.times{i += 1} } #両側複線の留線出の寸法 byte=8;byte.times{i += 1} #色番号ごとの画面表示色、線幅 gamen=%w(背景色 線色1 線色2 線色3 線色4 線色5 線色6 線色7 線色8 グレー) 0.upto(9){|i1| byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} } #色番号ごとのプリンタ出力色、線幅、実点半径 gamen=%w(背景色 線色1 線色2 線色3 線色4 線色5 線色6 線色7 線色8 グレー) 0.upto(9){|i1| byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=8;byte.times{i += 1} } |
#線種番号2から9までのパターン、1ユニットのドット数、、プリンタ出力ピッチ 2.upto(9){|i1| byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} } #ランダム線1から5までのパターン、画面表示振幅・ピッチ、プリンタ出力振幅・ピッチ 1.upto(5){|i1| byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} } #倍長線種番号6から9までのパターン、1ユニットのドット数、ピッチ、プリンタ出力ピッチ 6.upto(9){|i1| byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} } #実点を画面描画時の指定半径で描画 byte=4;byte.times{i += 1} #実点をプリンタ出力時、指定半径で書く byte=4;byte.times{i += 1} #BitMap・ソリッドを最初に描画する byte=4;byte.times{i += 1} #逆描画 byte=4;byte.times{i += 1} #逆サーチ byte=4;byte.times{i += 1} #カラー印刷 byte=4;byte.times{i += 1} #レイヤ順の印刷 byte=4;byte.times{i += 1} #色番号順の印刷 byte=4;byte.times{i += 1} #レイヤグループまたはレイヤごとのプリンタ連続出力指定 byte=4;byte.times{i += 1} #プリンタ共通レイヤ(表示のみレイヤ)のグレー出力指定 byte=4;byte.times{i += 1} #印刷時における既定線色の線幅の基準値の「dpi」 byte=4;byte.times{i += 1} #作図時間(Ver.2.23以降) i_m=i byte=4;byte.times{i += 1} #2.5Dの始点位置が設定されている時のフラグ(Ver.2.23以降) data_o[i,4]=[1].pack("L") if select==1 data_o[i,4]=[10].pack("L") if select==2 data_o[i,4]=[100].pack("L") if select==3 byte=4;byte.times{i += 1} #2.5Dの透視図・鳥瞰図・アイソメ図の視点水平角(Ver.2.23以降) data_o[i,4]=[kakudo*100].pack("L") if select==1 byte=4;byte.times{i += 1} data_o[i,4]=[kakudo*100].pack("L") if select==2 byte=4;byte.times{i += 1} data_o[i,4]=[kakudo*100].pack("L") if select==3 byte=4;byte.times{i += 1} #2.5Dの透視図の視点高さ・視点離れ(Ver.2.23以降) data_o[i,8]=[h*10.0/2].pack("d") if select==1 byte=8;byte.times{i += 1} data_o[i,8]=[l*10.0/2].pack("d") if select==1 byte=8;byte.times{i += 1} #2.5Dの鳥瞰図の視点高さ・視点離れ(Ver.2.23以降) data_o[i,8]=[h*10.0/2].pack("d") if select==2 byte=8;byte.times{i += 1} data_o[i,8]=[l*10.0/2].pack("d") if select==2 byte=8;byte.times{i += 1} #2.5Dのアイソメ図の視点垂直角(Ver.2.23以降) data_o[i,8]=[kakudo2].pack("d") if select==3 byte=8;byte.times{i += 1} #線の長さ指定の最終値(Ver.2.25以降) byte=8;byte.times{i += 1} #矩形寸法の最終値(Ver.2.25以降) byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=8;byte.times{i += 1} byte=4;byte.times{i += 1} byte=4;byte.times{i += 1} open(file,"wb"){|f|f.write data_o} itx.Run("c:\\jww\\jw_win #{file}") itx.WinWaitActive("jw_win") itx.WinMenuSelectItem("jw_win","","[その他","2") itx.WinWaitActive("jw_win") if select==1 itx.ControlFocus("jw_win","透視図","Button1") itx.ControlClick("jw_win","透視図","Button1") elsif select==2 itx.ControlFocus("jw_win","鳥敢図","Button2") itx.ControlClick("jw_win","鳥敢図","Button2") else itx.ControlFocus("jw_win","アイソメ","Button3") itx.ControlClick("jw_win","アイソメ","Button3") end __END__ :end |
この書き込みは投稿者によって削除されました。(16/6/23(木) 20:11) |
▼Since Dosさん: jww用外部変形 隠線処理 jwhide Ver1.3 http://www.vector.co.jp/soft/winnt/business/se469270.html 隠線処理用の外部変形ですが、隠線処理は使わなければよいです。 図面に"angle="に続いてパラメータを書き込んでおくと、起動時にこの設定で表示されます。さらに、マウスで図形を回転して、アングル書込釦をチェックすると、現在のアングルを"angle=パラメータ"として書き出します。 例 angle=2,1,-15.0,-25.0,40000.0,1000.0,-20000.0 |
私の経験ではJW_CADの2.5Dは原点が入力データによって移動するようです。同じ測定位置角度、高さ、奥行で復元しても以前のデータに加筆した時点で原点が移動するために正確な復元はできません。アバウトでよければOKですが。 やはり、capさんが紹介された外部変形のjwhideを使うしかないと思います。 |
▼ヒデプロンさん: >私の経験ではJW_CADの2.5Dは原点が入力データによって移動するようです。同じ測定位置角度、高さ、奥行で復元しても以前のデータに加筆した時点で原点が移動するために正確な復元はできません‥‥ > そう言われれば、天井伏の見栄えを比較検討するため、別レイヤーに照明器具のプロットをそれぞれ記入して、2.5D表示で、レイヤーを切り替えてA案を表示した時と、B案を表示した時、AB両方表示した時に微妙にビューが変化している気がしてました。 ヒデプロンの言われるように入力データによって原点が移動しているのかもしれませんね。 今後、比較用の2.5Dを作成する場合は、比較するデーターをすべて先に書き込んで同時に表示した状態で、2.5Dで「作図」し、後でそれぞれ不要のデーターを消去する方法でやることにします。 「‥原点が入力データによって移動するようです‥」 目から鱗です。 ありがとうございました。 |
皆様、外部変形やマクロ等の情報ありがとうございました。 kojimaさん、mirrorさん、capさん外部変形やマクロ等の情報ありがとうございました。それぞれ一通り試してみました。 ステータスバーの文字をクリップボードにコピーして図面に貼り付ける方法ですが、けっこう便利かもしれません。ただし作図する前、気に入ったアングルになったところで実行するのがポイントですね。 Ctrl+[F12]キーで、ステータスバー文字列をクリップボードにコピーするツールは、エラーになってうまく動作しません。もう少し頑張ってみます。 隠線処理用の外部変形は、アングル書込釦で"angle=パラメータ"として作図画面に書き出してくれてべんりですね。 陰線処理機能はすごいですね。角度調整やマウスでの操作ができたりと多機能なのでなれるのに時間がかかりそうです。この外部変形用に2.5Dのデーターを作る必要があるので、今後いろいろとやってみようと思います。 建物の内部の透視図を作成するのは、外観図と違ってけっこう大変です。 視点の「高さ、奥行き」の数値をその都度変更しながら、かなり細かく、移動調整をしています。 JWWの2.5Dはソリッドで着色するとかなり見栄えのいい゜図面ができて気に入っています。 長々と失礼しました。 |