Page 98 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼特殊文字の変換について oyaji 15/09/08(火) 22:03 ┗Re(1):特殊文字の変換について mirror 15/09/09(水) 8:13 ┗質問を変えます oyaji 15/09/09(水) 20:58 ┗Re(1):質問を変えます P 15/09/10(木) 10:47 ┗Re(2):質問を変えます oyaji 15/09/10(木) 22:01 ┣Re(3):質問を変えます yaf 15/09/11(金) 6:31 ┗Re(3):質問を変えます P 15/09/11(金) 6:32 ┣Re(4):質問を変えます oyaji 15/09/11(金) 9:20 ┗ありがとうございました。 oyaji 15/09/11(金) 9:44 ┣矩形? マチャプチャレ 15/09/11(金) 12:39 ┃ ┣Re(1):矩形? R.N 15/09/11(金) 17:18 ┃ ┃ ┣Re(2):矩形? マチャプチャレ 15/09/11(金) 22:03 ┃ ┃ ┗Re(2):矩形? いっち 15/09/13(日) 10:48 ┃ ┃ ┗Re(3):矩形? R.N 15/09/13(日) 16:28 ┃ ┃ ┗Re(4):矩形? いっち 15/09/13(日) 17:17 ┃ ┗Re(1):矩形? kojima 15/09/11(金) 20:22 ┃ ┣Re(2):矩形? マチャプチャレ 15/09/11(金) 22:08 ┃ ┗ありがとうございます。 oyaji 15/09/11(金) 23:13 ┗Re(1):ありがとうございました。 O.M 15/09/13(日) 11:13 ┗Re(2):ありがとうございました。 O.M 15/09/13(日) 11:40 ┣Re(3):ありがとうございました。 住職 15/09/13(日) 13:08 ┃ ┣Re(4):ありがとうございました。 O.M 15/09/13(日) 14:06 ┃ ┗Re(4):ありがとうございました。 くまクマ 15/09/17(木) 0:48 ┃ ┗Re(5):ありがとうございました。 いっち 15/09/19(土) 9:40 ┗Re(3):ありがとうございました。 oyaji 15/09/13(日) 15:10 ─────────────────────────────────────── ■題名 : 特殊文字の変換について ■名前 : oyaji ■日付 : 15/09/08(火) 22:03 -------------------------------------------------------------------------
いつも皆さんにはお世話になり 大変 感謝しております。 特殊文字についての質問です。他CADへのデ-タ受渡しに特殊文字が使えない為、 例えば ○^w1 から ○^w20 を一つずつ通常の1から20の数字に変換し、○の代わりに短形□にて数字を囲っているのですが、短形で書く為 当然 縮尺を変えると 文字より短形が小さくなったり やたらと大きくなってしまいます。 とりあえず 特殊文字の ○^w1 から ○^w20 を一度で通常の数字に変換は出来ないでしょうか。何かよい方法があれば ご教授をお願いします。 |
▼oyajiさん: 文字コマンドから、NOTEPADボタンを押し 範囲指定して書き出し、[〇^w]→[]の置換(削除)を実行して保存します 因みに、○囲み数字は環境依存文字としてフォントのなかにあります 環境依存文字なので、受け渡しできない場合もあるとは思いますが 今時、表示できないようなCADは少ないのではないでしょうか 他CADへの、データの受け渡し(変換)方法の情報を出しておくと もう少し違う方法があるかも知れませんね |
mirror様 ありがとうございます。 NOTEPADの使い方など 全く解らないままに JWを使っておりまして 教えていただき 感謝しております。 さて、[〇^w]→[]の置換(削除)を実行して保存 にて 特殊文字の解除は一度で出来ることは教えていただきましたが、 では 他CADに渡す前に このそれぞれの数字 例えば 1から50までの数字をある一定の大きさの短形□で 一度で囲うことは出来ないでしょうか? 宜しくお願いします。 |
▼oyajiさん: >mirror様 ありがとうございます。 >NOTEPADの使い方など 全く解らないままに JWを使っておりまして >教えていただき 感謝しております。 >さて、[〇^w]→[]の置換(削除)を実行して保存 にて >特殊文字の解除は一度で出来ることは教えていただきましたが、 >では 他CADに渡す前に このそれぞれの数字 >例えば 1から50までの数字をある一定の大きさの短形□で >一度で囲うことは出来ないでしょうか? >宜しくお願いします。 外部変形でよければ、過去にsugiさんが公開されています http://www.jwcad.net/log/consult2/consult2-0907-09/thread34835.htm 3桁は無理のようですが、二桁の数字でしたら四角で囲んでくれます |
Pさん ありがとうございます。 sugiさん 外変の公開 ありがとうございます。 sugiさんの外変を早速 使用させていただいた上で、 外変のバッチの知識が全くない私の あつかましい要望なのですが、 1.数字を囲う四角が 小さくて数字が 見づらくなってしまうので 四角をもう少し大きくしたい 2.1桁と2桁の数字を囲う四角の大きさは 同じであってほしい 上記 二点は 不可能でしょうか? 宜しくお願いします。 |
▼oyajiさん: 線記号変形でナンバリング、連番、○囲、□囲等 公開されてますよ。 線記号変形→倍率でサイズ変更もできますよ。 Jw_opt4.datをテキストデータ等で開いて編集も出来ますよ。 |
▼oyajiさん: >1.数字を囲う四角が 小さくて数字が 見づらくなってしまうので > 四角をもう少し大きくしたい 文字囲み.BATをメモ帳などで開き elsif ARGV.include?("3") #四角 st=" -6 -6 6 -6 -6 6 -6 -6 -6 6 6 6 6 6 6 -6" この箇所の「6」を大きくすれば四角形は大きくなります 例 st=" -10 -10 10 -10 -10 10 -10 -10 -10 10 10 10 10 10 10 -10" 気に入った大きさになるまで何度でも書き換えて確認して下さい >2.1桁と2桁の数字を囲う四角の大きさは 同じであってほしい こちらでは同じ大きさで作図されていますけど、 そちらではどのくらい違ってますか? |
yafさん Pさん ありがとうございます。 yafさんに教えていただいたopt4は 既に使用させていただいておりまして、 既存の文字を短形□で 一度で囲いたい ということです。 Pさんから教えていただいた sugiさんの外変ですが、 私がダウンロ-ドさせて貰ったのは 文字枠と文字基点.bat |
enterキ-を押してしまって削除出来なくなり 再投稿させていただきます。 yafさん Pさん ありがとうございます。 yafさんに教えていただいたopt4は 既に使用させていただいておりまして、 既存の文字を短形□で 一度で囲いたい ということです。 Pさんから教えていただいた sugiさんの外変ですが、 私がダウンロ-ドさせて貰ったのは 文字囲み.BATではなく文字枠と文字基点.bat という外変です。文字囲み.BATは 見つけられなかったです。 色々とネットで調べてみまして 多数の既存文字をいっきに囲う外変は 他の方々も公開していただいてる事を知り ある外変のAWの中身を拝見して 私の知識でも解りやすく書かれていましたので、少し変更してやってみたところ うまくいきました。 自己解決という形になりましたが、 yafさん Pさん 今後共 宜しくお願いします。 ありがとうございました。 |
▼oyajiさん: 横から失礼します。 >色々とネットで調べてみまして 多数の既存文字をいっきに囲う外変は 他の方々も公開していただいてる事を知り ある外変のAWの中身を拝見して 私の知識でも解りやすく書かれていましたので、少し変更してやってみたところ うまくいきました。 よければこの外変がどちらで入手できるものなのか教えて頂けませんか? あと、「短形」と書いてらっしゃる部分はきっと「矩形」ですよね?検索されてこちらに辿り着く方の為にも確認させてください。 よろしくお願いします。 |
▼マチャプチャレさん:こんにちは、 >よければこの外変がどちらで入手できるものなのか教えて頂けませんか? 酒井さん作の[moji0805.lzh]の中の「文字囲線」とか http://www.vector.co.jp/soft/dos/business/se031589.html |
▼R.Nさん: お世話になります。 >酒井さん作の[moji0805.lzh]の中の「文字囲線」とか >http://www.vector.co.jp/soft/dos/business/se031589.html 情報ありがとうございます。これで勉強させて頂きます。 |
▼R.Nさん: こんにちは。 せっかく、R.Nさんに下記外変を紹介して頂いたので。 > 酒井さん作の[moji0805.lzh]の中の「文字囲線」とか > http://www.vector.co.jp/soft/dos/business/se031589.html 自分は、DOS版のJw_cadを利用した事が無い為、 この外変は知りませんでした。 しかしこの外変は、調整してWindows版にする楽しみがありました。 たまたまひとつやってみたのは、「文字分解」だけですが、 下記のように(自分は)調整してみました。 ------------------------------------------------------------ REM #jwは、REM #jww REM #mcは、削除。 -Wmemoryも古いパソコンの話だと思うので削除。 スクリプトの内容的には、任意文字種の幅と間隔を取得する必要がありました。 それと個人的好みで、バッチファイルにawkを書くようにしてみました。 ------------------------------------------------------------ 「文字合計」の外変だけは、そのまま使えると思いましたが、 好みで調整してもいいかも知れないとも思ってます。 基本的に、便利そうな外変ですね。 ご紹介、ありがとうございます。 |
▼いっちさん:>こんにちは >しかしこの外変は、調整してWindows版にする楽しみがありました。 私も以前いじったことがあります。 >たまたまひとつやってみたのは、「文字分解」だけですが、 >下記のように(自分は)調整してみました。 これは、そのままのスクリプトで使えるようです。 >------------------------------------------------------------ >REM #jwは、REM #jww REM #jwwに変更すると、文字を認識してくれなかったり---するものも REM #hpとして、基準点を変えてもだめなようで スクリプトの修正が必要かもですね---? >REM #mcは、削除。 >-Wmemoryも古いパソコンの話だと思うので削除。 私もそうしてます。(REM #jw・REM #jww、何れでも必要ないかな?) >------------------------------------------------------------ >「文字合計」の外変だけは、そのまま使えると思いましたが、 >好みで調整してもいいかも知れないとも思ってます。 これも使えますね。 後、文字中央.AWKは壊れているようです。(開いても、バイナリ表示みたいになります) |
▼R.Nさん: ご返信ありがとうございます。 > 後、文字中央.AWKは壊れているようです。 これ、自分もそう思いました。 なぜか、解りませんけれど。 今さら、NECの古いパソコンで確認もできませんし。 (酒井さんの外変だと)スクリプトの修正は、 ひとつ行うと、他もほとんど同じような修正で いけるような気がしました。 |
この外部変形は、入門編(円→点変換 点→円変換)の次のステップくらいのレベルですかね? それほど、行数を費やすものではありません @REM 文字を正方形で囲む @echo off REM #jww REM #cd REM #h3 REM #hc文字を範囲選択してください REM #c正方形の辺長(図寸)/_/a REM #bz REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1>jwc_temp.txt pause goto end #!ruby -Ks include Math puts "bz" #図寸指定 while ARGV.size>1 case argument=ARGV.pop when /\/a/ hen=argument[2..-1].to_f #辺長 end end #辺長が未入力の場合、その旨コメントして終了 if hen == nil STDERR.puts "辺長が入力されていません" exit end hch=[] #文字種毎の文字高さを格納する配列 while ARGF.gets #temp.txtを1行毎に読み込んで以下の処理を繰り返す xy=$_.split #1行文をスペースで分割して配列xyに格納する if xy[0] =~ /^hch/ #文字高さデータ xy.each{|item|hch<<item.to_f} #文字種毎の文字高さを配列hchに格納 end if xy[0] =~ /^cn\d+$/ #文字種データ if xy.size==1 #文字種1〜10の時 moji_h=hch[xy[0][2..-1].to_i] #文字高さ else #フリー文字種の時 moji_h=xy[2].to_f #文字高さ end end if xy[0] =~ /^ch/ #文字データの時 x=xy[1].to_f #文字列左下基点x座標 y=xy[2].to_f #文字列左下基点y座標 w=xy[3].to_f #文字列x方向長さw h=xy[4].to_f #文字列y方向高さh l=hypot(h,w) #文字列の長さ arg=atan2(h,w) #文字列の角度(ラジアン) xx=x+l/2*cos(arg)+moji_h/2*cos(arg+PI/2) #文字列中央x座標 yy=y+l/2*sin(arg)+moji_h/2*sin(arg+PI/2) #文字列中央y座標 x1=xx-hen/2*cos(arg)-hen/2*cos(arg+PI/2) #正方形左下x座標 y1=yy-hen/2*sin(arg)-hen/2*sin(arg+PI/2) #正方形左下y座標 x2=x1+hen*cos(arg) #正方形右下x座標 y2=y1+hen*sin(arg) #正方形右下y座標 x3=x1+hen*cos(arg+PI/2) #正方形左上x座標 y3=y1+hen*sin(arg+PI/2) #正方形左上y座標 x4=x2+hen*cos(arg+PI/2) #正方形右上x座標 y4=y2+hen*sin(arg+PI/2) #正方形右上y座標 printf(" %.11f %.11f %.11f %.11f\n",x1,y1,x2,y2) #下線の作図 printf(" %.11f %.11f %.11f %.11f\n",x1,y1,x3,y3) #左縦線の作図 printf(" %.11f %.11f %.11f %.11f\n",x3,y3,x4,y4) #上線の作図 printf(" %.11f %.11f %.11f %.11f\n",x2,y2,x4,y4) #右縦線の作図 end end #temp.txtの読み込み終了 __END__ :end 以下のバッチファイル&rubyスクリプトは、敢えてコメントを抜きました。 @REM 文字列を四角枠(長方形)で囲む @echo off REM #jww REM #cd REM #h3 REM #hc文字を範囲選択してください REM #c文字輪郭と四角枠の隙間(図寸) 無指定:1/_/a REM #bz REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1>jwc_temp.txt pause goto end #!ruby -Ks include Math puts "bz" str_d=1.0 while ARGV.size>1 case argument=ARGV.pop when /\/a/ str_d=argument[2..-1].to_f end end hch=[] while ARGF.gets xy=$_.split if xy[0] =~ /^hch/ xy.each{|item|hch<<item.to_f} end if xy[0] =~ /^cn\d+$/ if xy.size==1 moji_h=hch[xy[0][2..-1].to_i] else moji_h=xy[2].to_f end end if xy[0] =~ /^ch/ x=xy[1].to_f y=xy[2].to_f w=xy[3].to_f h=xy[4].to_f l=hypot(h,w) arg=atan2(h,w) x1=x-str_d*cos(arg)-str_d*cos(arg+PI/2) y1=y-str_d*sin(arg)-str_d*sin(arg+PI/2) x2=x1+(l+str_d*2)*cos(arg) y2=y1+(l+str_d*2)*sin(arg) x3=x1+(moji_h+str_d*2)*cos(arg+PI/2) y3=y1+(moji_h+str_d*2)*sin(arg+PI/2) x4=x2+(moji_h+str_d*2)*cos(arg+PI/2) y4=y2+(moji_h+str_d*2)*sin(arg+PI/2) printf(" %.11f %.11f %.11f %.11f\n",x1,y1,x2,y2) printf(" %.11f %.11f %.11f %.11f\n",x1,y1,x3,y3) printf(" %.11f %.11f %.11f %.11f\n",x3,y3,x4,y4) printf(" %.11f %.11f %.11f %.11f\n",x2,y2,x4,y4) end end __END__ :end |
▼kojimaさん: 毎度お世話になります。 >この外部変形は、入門編(円→点変換 点→円変換)の次のステップくらいのレベルですかね? >それほど、行数を費やすものではありません そ・・そうですか(汗)ありがとうございます。 これも勉強させて頂きます。 |
マチャブチャレ様 ありがとうございます。 短形→矩形 ご指摘ありがとうございました。 R.N様 ありがとうございます。 おっしゃるとおり 酒井さん作の[moji0805.lzh]の中の「文字囲線」とか他諸々です。 kojima様 いつもいつも最後はKojima様にお世話になってなっており 大変感謝している次第です。 今回はbatの各行の説明コメントまで書いていただき ありがとうございます。 使用させていただきます。 |
▼oyajiさん: 解決済みですが、 >文字囲み.BATは 見つけられなかったです。 の件が気になったので少し書かせていただきます。 Pさんの記載した http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=22458;id=003 に記載されているデータが文字囲み.BATになります。 === henkan.bat (ここから) === より下の部分から === henkan.bat (ここまで) === |
▼O.Mさん: 途中送信してしまいました、すみません。 ※1度記載してたのですが、間違ってたので訂正。 解決済みですが、 >文字囲み.BATは 見つけられなかったです。 の件が気になったので少し書かせていただきます。 Pさんの記載した http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=22458;id=003 に記載されているデータが文字囲み.BATになります。 ※使用するにはパソコンへrubyを導入する必要があります。 === henkan.bat (ここから) === より下の部分から === henkan.bat (ここまで) === より上の部分をコピーして、メモ帳に貼り付け、各行の末尾にある半角スペースを消し、名前を付けて保存。 ※henkan.batで保存して拡張子がbatになるならOK henkan.bat.txtというように拡張子がtestファイル形式になるようだったら 保存されたファイルの「.txt」の部分を名前を変更で削ってhenkan.batになるようにする。 出来上がったbatファイルをダブルクリック で圧縮データができるので、それを解凍したら文字囲み.BATが入っています。 |
sugiさんの「文字囲い」は、'vr/vruby'を参照しますので、 vrフォルダの無い[1.8.6 patchlevel 369]以降ですと、「未実行」に なるかもです。 |
▼住職さん: 詳細ありがとうございます! |
今更だけど、書いておきます。 ▼住職さん: > sugiさんの「文字囲い」は、'vr/vruby'を参照しますので、 >vrフォルダの無い[1.8.6 patchlevel 369]以降ですと、「未実行」に >なるかもです。 実際には利用してないので、その行はコメントアウトするか、 削除したほうが良い。 あと、以下、バージョン2.2(以降?)で使用する人向け情報です。 どれぐらいの人が使用してるか知らないけど。 「ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]」にて 動作確認済み。 henkan.batについて そのままのコードでは「文字囲み.lzh」を取り出すことはできない。 「".unpack("m")」を「".unpack("m").first」に書き換える。 文字囲み.BATについて 上記の通り「require 'vr/vruby'」をコメントアウトするか、行を削除する。 以上でとりあえず動くようになるけど、コマンドプロンプト上で出力 されるエラー/ワーニングが気になる人は、以下の個所にも手を加え ると良い。(個人的には手を加えるべき個所だと思う) KCODEはなんの影響もなく、無視されるようになったので、全て削除する。 「ruby -Ks -x "%~f0"」を「ruby -E Windows-31J -x "%~f0"」に 書き換える。(henkan.bat) 「ruby -Ks -x %~f0 %1 %2」を「ruby -E Windows-31J -x %~f0 %1 %2」に 書き換える。(文字囲み.BAT) 「#! ruby -Ks」を「#! ruby」に書き換える。(henkan.bat, 文字囲み.BAT共通) その書き換えた「#! ruby」の次の行に「# coding: Windows-31J」の行を追加。 (henkan.bat, 文字囲み.BAT共通) |
▼くまクマさん: こんにちは。 sugiさんの外部変形で、「文字分解間隔変更」というのがあります。 (既にお持ちの方でないと、もしかしたら入手出来ないかもしれません。) 実はこれには require 'jcode' が書かれています。 しかし、これもスクリプト中では利用していないようです。 require 'jcode' をコメントアウトし、そしてもともとlength と 書かれていたところを bytesize に改めるだけで正常動作しました。 もちろん、くまクマさんが推奨されているように --------------------------------- ruby -E Windows-31J -x %~f0 %1 %2 #! ruby # coding: Windows-31J --------------------------------- としました。 動作確認は、Ruby 2.2.3 の32ビットで行いました。 そのままのスクリプトでは、動かなくなる場合、 どうしたらRuby 2.2.3で、動くようになるのか 少し考えて、自分でも直せるようなら、 修正してみるのも、良いかもですね。 > 「".unpack("m")」を「".unpack("m").first」に書き換える。 この情報も、ありがとうございます。 |
OMさん ありがとうございます。 sugiさんの 「henkan.bat」を実行後、作成された「文字囲み.lzh」を展開して 外部変形のバッチファイルを取り出して下さい。 が 全く解らず 過ごしておりました。 OMさんに教えて貰わなかったら このまま解らないままでした。 ありがとうございました。 |