Page 239 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼図形の検索・置換 マチャプチャレ 16/11/7(月) 12:43 ┗ほぼ解決か? マチャプチャレ 16/11/7(月) 23:00 ┗Re:ほぼ解決か? kojima 16/11/9(水) 10:37 ┗解決しました。 マチャプチャレ 16/11/9(水) 12:53 ─────────────────────────────────────── ■題名 : 図形の検索・置換 ■名前 : マチャプチャレ ■日付 : 16/11/7(月) 12:43 -------------------------------------------------------------------------
図形の検索や置換ができる方法(外部変形など)はありませんか? |
自己レスです。 某所で教えていただいた「ブロック編集もどき」という外部変形がほぼ期待通りの動作をしてくれました。 アルファベットなどの線文字を含むシンボルの線文字部分は通常の文字に置き換えるといったことができるとなお良かったのですが、それはできないようです。 |
▼マチャプチャレさん: >アルファベットなどの線文字を含むシンボルの線文字部分は通常の文字に置き換えるといったことができるとなお良かったのですが、それはできないようです。 線文字の形状を認識して、該当する文字に置換するという途方もない難問のようにも読みとれますが さすがにそれは無理として ブロック編集もどきで、消去線円選択に指定した線データを追加線円選択に指定した文字と置換したいということですか? それならば以下のような工夫で可能になります。 (block_modoki.BATの一部修正とblock_modoki.rbの作成) 他の人が作成されたバッチファイルなので、block_modoki.BATの全文掲載は控えます。 〇block_modoki.BATの56行目に、REM #zc を追記する。 〇127行目から132行目の :prg-4 start /w block_modoki.exe /a1 %2 del temp0.txt copy nul0.txt temp2.txt > nul copy nul0.txt temp3.txt > nul goto end を :prg-4 start /w block_modoki.exe /a1 %2 del temp0.txt copy jwc_temp.txt temp4.txt >nul ruby -Ks block_modoki.rb temp4.txt > jwc_temp.txt pause copy nul0.txt temp2.txt > nul copy nul0.txt temp3.txt > nul copy nul0.txt temp4.txt > nul goto end に修正する。 〇以下の文をコピペして、block_modoki.rbというファイル名で同じフォルダに保存する。 #↓ここから include Math cn="";font="";str="";cc="";moji_x,moji_y=0,0 open("temp3.txt","r"){|f| while f.gets xy=$_.split if xy[0]=~/^cc/ cc=$_.chomp end if xy[0]=~/^cn\d+$/ cn=$_.chomp end if xy[0]=~/^cn\"\$/ font=$_.chomp end if xy[0]=~/^ch/ moji_x,moji_y=xy[3].to_f,xy[4].to_f str=$'.chomp if $_ =~ /\"/ end end } moji_arg=atan2(moji_y,moji_x) moji_l=hypot(moji_y,moji_x) while ARGF.gets xy=$_.split if xy[0]=~/^lc/ print $_ lc=xy[0] elsif xy[0]=~/^cc/ print $_ old_cc=$_.chomp elsif xy[0]=~/^cn\d+$/ print $_ old_cn=$_.chomp elsif xy[0]=~/^cn\"\$/ print $_ old_font=$_.chomp elsif xy[0]=~/^ci/ if xy.size==8 x,y,ziku_arg=xy[1].to_f,xy[2].to_f,xy[7].to_f*PI/180 moji_x=moji_l*cos(moji_arg+ziku_arg) moji_y=moji_l*sin(moji_arg+ziku_arg) if lc=="lc9" && xy[4]==xy[5] puts cn,cc,font printf("ch %.11f %.11f %.11f %.11f \"%s\n",x,y,moji_x,moji_y,str) puts old_cn,old_cc,old_font else print $_ end else print $_ end else print $_ end end #↑ここまで ※追加線円選択 に指定する文字を補助色の楕円(円は角度がないのでNG)で囲んでおいてください。 補助色の楕円がない場合は、消去線円選択に指定された図形が消去されるだけの結果になります。 外部変形の流れは、 消去線円選択 に指定された図形がblock_modoki.exeで補助色の楕円に置換される。 block_modoki.rbで、補助色の楕円が指定された文字に置換される。 |
▼kojima大明神さま 書いていただいたスクリプトとバッチ修正で希望通りの動作が実現しました。 願ったり叶ったりで大変嬉しいです。ありがとうございます。 「文字の代わりに適当な要素を描いておき後で文字に変換する」のアイデアは思いついたのですが、外変の動作が理解できていないので、こんな風にすっきりと実現できるとは考えていませんでした。 siegelさん、スターさん、kojimaさんに大感謝です。 ずっと大切に使わせていただきます。 |