Page 504 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼SFX線種をコピー貼り付け mura 19/5/18(土) 11:30 ┣Re:SFX線種をコピー貼り付け katsu 19/5/18(土) 13:03 ┃ ┗Re:SFX線種をコピー貼り付け mura 19/5/18(土) 13:11 ┃ ┣Re:SFX線種をコピー貼り付け katsu 19/5/18(土) 13:38 ┃ ┃ ┗Re:SFX線種をコピー貼り付け mura 19/5/18(土) 14:41 ┃ ┗Re:SFX線種をコピー貼り付け sera 19/5/18(土) 14:12 ┣Re:SFX線種をコピー貼り付け harada 19/5/18(土) 17:50 ┗図面のSXFユーザー定義線色・線種の保存する外部変形 kojima 19/5/19(日) 12:42 ┗保存されたSXFユーザー定義線色・線種を読み込む外部変形 kojima 19/5/19(日) 12:59 ┗Re:保存されたSXFユーザー定義線色・線種を読み込む外部変形 mura 19/5/21(火) 18:20 ─────────────────────────────────────── ■題名 : SFX線種をコピー貼り付け ■名前 : mura ■日付 : 19/5/18(土) 11:30 -------------------------------------------------------------------------
SFX線種をコピー貼り付けで別の図面に、持っていくと、点線、などの線が化けるのですが、何か良い方法がないでしょうか、宜しくお願いします。 |
▼muraさん: >SFX線種をコピー貼り付けで別の図面に、持っていくと、点線、などの線が化けるのですが、何か良い方法がないでしょうか、宜しくお願いします。 線が化けるとどのようなことですか? 文字が化けるとはよく聞きますが、線が化けるというのは聞いたことがありませんね。 具体的にどのような状態になるかと示したほうがアドバイスが付きやすいと思います。 |
▼katsuさん: >▼muraさん: >>SFX線種をコピー貼り付けで別の図面に、持っていくと、点線、などの線が化けるのですが、何か良い方法がないでしょうか、宜しくお願いします。 > > > 線が化けるとどのようなことですか? >文字が化けるとはよく聞きますが、線が化けるというのは聞いたことがありませんね。 > 具体的にどのような状態になるかと示したほうがアドバイスが付きやすいと思います。 説明不足ですいません 一点斜線などが、小さな点になって、部分的に表示されない状態です。 |
▼muraさん: >▼katsuさん: >>▼muraさん: >>>SFX線種をコピー貼り付けで別の図面に、持っていくと、点線、などの線が化けるのですが、何か良い方法がないでしょうか、宜しくお願いします。 >> >> >> 線が化けるとどのようなことですか? >>文字が化けるとはよく聞きますが、線が化けるというのは聞いたことがありませんね。 >> 具体的にどのような状態になるかと示したほうがアドバイスが付きやすいと思います。 > >説明不足ですいません 一点斜線などが、小さな点になって、部分的に表示されない状態です。 私の環境では再現しないので根本的な解決方法はアドバイスできませんが、一時しのぎですが、その図面を範囲選択、属性選択でその線種だけ選択し属性変更で変更したい線種に変更するというのはどうですか? その線種は左AM6:00で取得するとどの線種のなりますか? |
▼katsuさん: >▼muraさん: >>▼katsuさん: >>>▼muraさん: >>>>SFX線種をコピー貼り付けで別の図面に、持っていくと、点線、などの線が化けるのですが、何か良い方法がないでしょうか、宜しくお願いします。 >>> >>> >>> 線が化けるとどのようなことですか? >>>文字が化けるとはよく聞きますが、線が化けるというのは聞いたことがありませんね。 >>> 具体的にどのような状態になるかと示したほうがアドバイスが付きやすいと思います。 >> >>説明不足ですいません 一点斜線などが、小さな点になって、部分的に表示されない状態です。 > > 私の環境では再現しないので根本的な解決方法はアドバイスできませんが、一時しのぎですが、その図面を範囲選択、属性選択でその線種だけ選択し属性変更で変更したい線種に変更するというのはどうですか? > > その線種は左AM6:00で取得するとどの線種のなりますか? SFX線種のユーザー線種で書かれた線がコピー貼り付けしたとき上記のようになるようです。(別の図面に貼り付けしたとき)線種ごとに、属性変更してみます。 どうもありがとうございました。 |
▼muraさん: >説明不足ですいません 一点斜線などが、小さな点になって、部分的に表示されない状態です。 Direct2Dはどうなってますか? 私もkatsuさんと同じく再現しませんので、チェックの有る無しに拘わらずそのような症状になるのであれば原因は分からないです |
▼muraさん: >SFX線種をコピー貼り付けで別の図面に、持っていくと、点線、などの線が化けるのですが、何か良い方法がないでしょうか、宜しくお願いします。 SXF対応拡張線色及び線種には、既定線色(線種)の1〜16と、ユーザー定義線色の17〜256(線種は17〜32)がありますが、 jwwではユーザー定義線色(ユーザー定義線種)のNo.17以降は図面毎に設定となるため、コピーした側のユーザー定義線色及びユーザー定義線種の設定を予め、貼り付ける側のJWWの図面側も設定しておく必要があります。(または、貼付け後に設定又は変更は可) (ユーザー定義線色や線種情報もコピーされるとすでに設定されている場合、変更されてしまう) JWWの環境設定ファイルにもSXF対応拡張線色に関する設定がないため、図面毎に設定するか、JWWで読み込んだ元図(sfc,p21)又は、jwwでSXFのユーザー定義線色を追加した図面等の全データを削除したユーザー定義ファイル含んだ空の図面(別名)として保存(jww又はSFC形式)しておき、新規作成図面の時このファイルを読み込み、この図面に貼り付け作成すれば可能と思います。 尚、表題の件SFX線種ではなくSXF線種だと思います。 |
▼muraさん: >SFX線種をコピー貼り付けで別の図面に、持っていくと、点線、などの線が化けるのですが、何か良い方法がないでしょうか、宜しくお願いします。 batファイルにrubyスクリプトを記述するタイプの外部変形です。 Rubyのインストールが必要です。 @REM SXFユーザー定義線色・線種の保存 @echo off REM #jww REM #cd REM #hf REM #h0 REM #c直前に上書保存しましたか? はい:1 いいえ:1以外/_/a REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1> jwc_temp.txt pause goto end #!ruby -Ks while ARGV.size>1 case argument=ARGV.pop when /\/a/ kubun=argument[2..-1].to_i end end if kubun != 1 STDERR.puts "上書保存してから再実行してください" puts "h#上書保存してから再実行してください" exit end path=Dir.pwd while ARGF.gets if $_=~/file\=/ file=$'.chomp end end if file=="" printf("h#このファイル保存されていません。保存してから再実行してください\n") STDERR.puts "このファイルは保存されていません。保存してから再実行してください\n" exit end 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 puts "h#バージョンNO#{b_n}には未対応です。処理を中止します" STDERR.puts "h#バージョンNO#{b_n}には未対応です。処理を中止します" exit end i += 4 #◎メモ欄の記載文 memo_byte=data[i,1].unpack("C")[0]; i += 1+memo_byte #◎図面サイズ i += 4 #◎レイヤグループ・レイヤ状態 i += 4 0.upto(15){|i1| i += 4;i += 4;i += 8;i += 4 0.upto(15){|i2|i += 4;i += 4} } #◎ダミー(54バイト) i += 14*4#ダミー #◎寸法関係の設定 i += 4;i += 4;i += 4;i += 4;i += 4 i +=4#◎ダミー #◎線描画の最大幅 i += 4 #◎プリンタ出力範囲の原点 i += 8;i += 8 #◎プリンタ出力倍率 i += 8 #◎プリンタ90°回転出力、プリンタ出力基準点位置 i += 4 #◎目盛設定モード i += 4 #◎目盛表示最小間隔ドット i += 8 #◎目盛表示間隔(X,Y) i += 8;i += 8 #◎目盛基準点(X,Y) i += 8;i += 8 #◎レイヤ名・レイヤグループ名 0.upto(15){|i1| 0.upto(15){|i2| byte=data[i,1].unpack("C")[0] i += byte+1 } } 0.upto(15){|i1| byte=data[i,1].unpack("C")[0] i += byte+1 } #◎日影計算の条件 i += 8;i += 8;i += 4;i += 8 #◎天空図の条件 i += 8;i += 8 #◎2.5Dの計算単位(0以外はmm単位で計算) i += 4 #◎保存時の画面倍率(読込むと前画面倍率になる) i += 8;i += 8;i += 8 #◎範囲記憶倍率と基準点(X,Y) i += 8;i += 8;i += 8 #◎マークジャンプ倍率、基準点(X,Y)およびレイヤグループ if b_n.to_f >=3.0 1.upto(8){|i1|i += 8;i += 8;i += 8;i += 4} else 1.upto(4){|i1|i += 8;i += 8;i += 8} end #◎文字の描画状態(Ver.4.05以降) if b_n.to_f >=3.0 i += 8#ダミー i += 8#ダミー i += 8#ダミー i += 4#ダミー i += 8#ダミー i += 8#ダミー if b_n.to_f <4.04 i += 8#ダミー i += 4#ダミー else i += 8;i += 4 end end #◎複線間隔 0.upto(9){|i1|i += 8} #◎両側複線の留線出の寸法 i += 8 #◎色番号ごとの画面表示色、線幅 0.upto(9){|i1|i += 4;i += 4} #◎色番号ごとのプリンタ出力色、線幅、実点半径 0.upto(9){|i1|i += 4;i += 4;i += 8} #◎線種番号2から9までのパターン、1ユニットのドット数、、プリンタ出力ピッチ 2.upto(9){|i1|i += 4;i += 4;i += 4;i += 4} #◎ランダム線1から5までのパターン、画面表示振幅・ピッチ、プリンタ出力振幅・ピッチ 1.upto(5){|i1|i += 4;i += 4;i += 4;i += 4;i += 4} #◎倍長線種番号6から9までのパターン、1ユニットのドット数、ピッチ、プリンタ出力ピッチ 6.upto(9){|i1|i += 4;i += 4;i += 4;i += 4} #◎実点を画面描画時の指定半径で描画 i += 4 #◎実点をプリンタ出力時、指定半径で書く i += 4 #◎BitMap・ソリッドを最初に描画する i += 4 #◎逆描画 i += 4 #◎逆サーチ i += 4 #◎カラー印刷 i += 4; #◎レイヤ順の印刷 i += 4 #◎色番号順の印刷 i += 4 #◎レイヤグループまたはレイヤごとのプリンタ連続出力指定 j=data[i,4].unpack("L")[0] i += 4 #◎プリンタ共通レイヤ(表示のみレイヤ)のグレー出力指定 i += 4 #◎印刷時における既定線色の線幅の基準値の「dpi」 i += 4 #◎作図時間(Ver.2.23以降) i += 4 #◎2.5Dの始点位置が設定されている時のフラグ(Ver.2.23以降) i += 4 #◎2.5Dの透視図・鳥瞰図・アイソメ図の視点水平角(Ver.2.23以降) i += 4;i += 4;i += 4 #◎2.5Dの透視図の視点高さ・視点離れ(Ver.2.23以降) i += 8;i += 8 #◎2.5Dの鳥瞰図の視点高さ・視点離れ(Ver.2.23以降) i += 8;i += 8 #◎2.5Dのアイソメ図の視点垂直角(Ver.2.23以降) i += 8 #◎線の長さ指定の最終値(Ver.2.25以降) i += 8 #◎矩形寸法の最終値(Ver.2.25以降) i += 8;i += 8 #◎円半径指定の最終値(Ver.2.25以降) i += 8;i += 4;i += 4 i11=i #◎SXF対応拡張線色定義拡張 0.upto(256){|i1|i += 4;i += 4} 0.upto(256){|i1| lcn_byte=data[i,1].unpack("C")[0] i += 1+lcn_byte i += 4;i += 4;i += 8 } #◎SXF対応拡張線種定義拡張 0.upto(32){|i1|i += 4;i += 4;i += 4;i += 4} 0.upto(32){|i1| ltn_byte=data[i,1].unpack("C")[0] i += 1+ltn_byte i += 4 1.upto(10){|i2|i += 8} } i22=i data2=data[i11..i22-1] open("#{path}/temp.jwn","wb"){|f|f.write data2} STDERR.puts "#{file} のSXFユーザー定義線色・線種情報を\n#{path.gsub("/","\\")}/temp.jwnに保存しました" __END__ :end |
新しく開かれる、拡張子.jww.jww のほうの図面に読み込まれます。 @REM SXFユーザー定義線色・線種の読込 @echo off REM #jww REM #cd REM #hf REM #h0 REM #c直前に上書保存しましたか? はい:1 いいえ:1以外/_/a REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1>jwc_temp.txt pause goto end #!ruby -Ks while ARGV.size>1 case argument=ARGV.pop when /\/a/ kubun=argument[2..-1].to_i end end if kubun != 1 STDERR.puts "上書保存してから再実行してください" puts "h#上書保存してから再実行してください" exit end path=Dir.pwd while ARGF.gets if $_=~/file\=/ file=$'.chomp end end if file=="" printf("h#このファイル保存されていません。保存してから再実行してください\n") STDERR.puts "このファイルは保存されていません。保存してから再実行してください\n" exit end 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}には未対応です。処理を中止します" puts "h#バージョンNO#{b_n}には未対応です" exit end i += 4 #◎メモ欄の記載文 memo_byte=data[i,1].unpack("C")[0]; i += 1+memo_byte #◎図面サイズ i += 4 #◎レイヤグループ・レイヤ状態 i += 4 0.upto(15){|i1| i += 4;i += 4;i += 8;i += 4 0.upto(15){|i2|i += 4;i += 4} } #◎ダミー(54バイト) i += 14*4#ダミー #◎寸法関係の設定 i += 4;i += 4;i += 4;i += 4;i += 4 i +=4#◎ダミー #◎線描画の最大幅 i += 4 #◎プリンタ出力範囲の原点 i += 8;i += 8 #◎プリンタ出力倍率 i += 8 #◎プリンタ90°回転出力、プリンタ出力基準点位置 i += 4 #◎目盛設定モード i += 4 #◎目盛表示最小間隔ドット i += 8 #◎目盛表示間隔(X,Y) i += 8;i += 8 #◎目盛基準点(X,Y) i += 8;i += 8 #◎レイヤ名・レイヤグループ名 0.upto(15){|i1| 0.upto(15){|i2| byte=data[i,1].unpack("C")[0] i += byte+1 } } 0.upto(15){|i1| byte=data[i,1].unpack("C")[0] i += byte+1 } #◎日影計算の条件 i += 8;i += 8;i += 4;i += 8 #◎天空図の条件 i += 8;i += 8 #◎2.5Dの計算単位(0以外はmm単位で計算) i += 4 #◎保存時の画面倍率(読込むと前画面倍率になる) i += 8;i += 8;i += 8 #◎範囲記憶倍率と基準点(X,Y) i += 8;i += 8;i += 8 #◎マークジャンプ倍率、基準点(X,Y)およびレイヤグループ if b_n.to_f >=3.0 1.upto(8){|i1|i += 8;i += 8;i += 8;i += 4} else 1.upto(4){|i1|i += 8;i += 8;i += 8} end #◎文字の描画状態(Ver.4.05以降) if b_n.to_f >=3.0 i += 8#ダミー i += 8#ダミー i += 8#ダミー i += 4#ダミー i += 8#ダミー i += 8#ダミー if b_n.to_f <4.04 i += 8#ダミー i += 4#ダミー else i += 8;i += 4 end end #◎複線間隔 0.upto(9){|i1|i += 8} #◎両側複線の留線出の寸法 i += 8 #◎色番号ごとの画面表示色、線幅 0.upto(9){|i1|i += 4;i += 4} #◎色番号ごとのプリンタ出力色、線幅、実点半径 0.upto(9){|i1|i += 4;i += 4;i += 8} #◎線種番号2から9までのパターン、1ユニットのドット数、、プリンタ出力ピッチ 2.upto(9){|i1|i += 4;i += 4;i += 4;i += 4} #◎ランダム線1から5までのパターン、画面表示振幅・ピッチ、プリンタ出力振幅・ピッチ 1.upto(5){|i1|i += 4;i += 4;i += 4;i += 4;i += 4} #◎倍長線種番号6から9までのパターン、1ユニットのドット数、ピッチ、プリンタ出力ピッチ 6.upto(9){|i1|i += 4;i += 4;i += 4;i += 4} #◎実点を画面描画時の指定半径で描画 i += 4 #◎実点をプリンタ出力時、指定半径で書く i += 4 #◎BitMap・ソリッドを最初に描画する i += 4 #◎逆描画 i += 4 #◎逆サーチ i += 4 #◎カラー印刷 i += 4;i += 4 #◎色番号順の印刷 i += 4 #◎レイヤグループまたはレイヤごとのプリンタ連続出力指定 j=data[i,4].unpack("L")[0] i += 4 #◎プリンタ共通レイヤ(表示のみレイヤ)のグレー出力指定 i += 4 #◎印刷時における既定線色の線幅の基準値の「dpi」 i += 4 #◎作図時間(Ver.2.23以降) i += 4 #◎2.5Dの始点位置が設定されている時のフラグ(Ver.2.23以降) i += 4 #◎2.5Dの透視図・鳥瞰図・アイソメ図の視点水平角(Ver.2.23以降) i += 4;i += 4;i += 4 #◎2.5Dの透視図の視点高さ・視点離れ(Ver.2.23以降) i += 8;i += 8 #◎2.5Dの鳥瞰図の視点高さ・視点離れ(Ver.2.23以降) i += 8;i += 8 #◎2.5Dのアイソメ図の視点垂直角(Ver.2.23以降) i += 8 #◎線の長さ指定の最終値(Ver.2.25以降) i += 8 #◎矩形寸法の最終値(Ver.2.25以降) i += 8;i += 8 #◎円半径指定の最終値(Ver.2.25以降) i += 8;i += 4;i += 4 i11=i #◎SXF対応拡張線色定義拡張 0.upto(256){|i1|i += 4;i += 4} 0.upto(256){|i1| lcn_byte=data[i,1].unpack("C")[0] i += 1+lcn_byte i += 4;i += 4;i += 8 } #◎SXF対応拡張線種定義拡張 0.upto(32){|i1|i += 4;i += 4;i += 4;i += 4} 0.upto(32){|i1| ltn_byte=data[i,1].unpack("C")[0] i += 1+ltn_byte i += 4 1.upto(10){|i2|i += 8} } i22=i data2="" begin open("#{path}/temp.jwn","rb"){|f|data2=f.read} rescue STDERR.puts "temp.jwnがありません" puts "h#temp.jwnがありません" exit end data[i11..i22-1]=data2 open(file+".jww","wb"){|f|f.write data} STDERR.puts "temp.jwnのSXFユーザー定義線色・線種情報を読み込んで、新規に#{file+".jww"}を作成しました\n" File.delete("#{path}/temp.jwn") system("start c:/jww/jw_win #{file+".jww"}") __END__ :end |
Rubyをインストールして、外変 線種コピー、呼び込みで別図面に、表示できました。今まで、属性取得、属性変更で一つずつ変換していたので大変助かります。 みなさん、貴重なアドバイスありがとうございました。 |