2014年5月24日 (土)

線_文字色一括変更

Jw_cad情報交換室から、線色と文字色を指定線色で一括変更する外変です。
任意のファイル名でバッチファイルとして保存してください。

@REM 線_文字色一括変更
@echo off
REM #jww
REM #cd
REM #h1 範囲内データ選択
REM #hc 線、文字を範囲選択してください
REM #g1 全レイヤグループ対象
REM #ht10 ブロック図形除外
REM #ht30 寸法図形除外
REM #ht40 ソリッド図形除外
REM #hr
REM #e
jgawk 'BEGIN{lc="lc3";cc=substr(lc,3,1)}/hq/{print "hd";next}/^^hcw/{for(i=0;i^<=9;i++)cw[i+1]=$(i+2)}/^^hch/{for(i=0;i^<=9;i++)ch[i+1]=$(i+2)}/^^hcd/{for(i=0;i^<=9;i++)cd[i+1]=$(i+2)}/^^lc/{m=m+1;if(m==1){culc=$0;print lc;next}{next}}/^^cn/{n=n+1;cnn=substr($1,3,1);if(n==1){cucn=$0}if(n==1 ^|^| n^>=3){if(cnn==0){$5=cc;print $0;next}else{print "cn0",cw[cnn],ch[cnn],cd[cnn],cc;next}}}{print}END{print culc;print cucn}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end
##
# 選択した全レイヤグループの線、文字に適用
# 範囲選択から左AM0時「確定 基点(free)」を実行
# 指定線色を変更する場合は、lc="lc3"を変更 ⇒ 線色5の場合 lc5
# 2014.5.24  by somem
:end

| | コメント (15) | トラックバック (0)

2013年11月19日 (火)

複数種文字列変更

複数種類の文字列を、メモ帳を使って個別に変更する外部変形です。

メモ帳には、対象文字、¥(全角)、置換文字の順で書込み上書き保存。
例)2種類の場合は、2行に分けて書込んでください。
ABCDE¥12345
FGHIJ¥6789

外変用バッチファイル
----------
@REM 複数種文字列変更
@echo off
REM #jww
REM #cd
REM #h3 範囲内の文字選択
REM #hc 文字を範囲選択してください
REM #ht10 ブロック図形除外
REM #e
notepad memo.txt
jgawk '{if($1!=""){print "¥",$0}{}}' memo.txt>tmemo.txt
jgawk -f pl_chr.awk tmemo.txt jwc_temp.txt>temp.txt
jgawk '{print ""}' tmemo.txt>memo.txt
copy temp.txt jwc_temp.txt
del temp.txt
del tmemo.txt
goto end
# 範囲選択から左AM0時「確定 基点(free)」を実行
# メモ帳に対象文字¥置換文字を書込み
:end

続きを読む "複数種文字列変更"

| | コメント (0) | トラックバック (0)

2013年11月11日 (月)

円周分割点

円周上の任意点を基準に、円周上の等分割点に実点を作図する外部変形です。
※書込レイヤグループ/レイヤに補助線色で作図

正規表現 /^^AA/ は、/AA/ でも問題なく実行できます。

----------
@REM 円周分割点
@echo off
REM #jww
REM #cd
REM #1ci 円を選択してください (L)クリック
REM #2 分割基準点(任意位置)を指示してください (R)クリック
REM #c 分割数を入力してください |前回値/スキップ|
REM #e
jgawk -vn=%1 'BEGIN{if(n!=""){print "div",n;exit}}{print}' div.txt>tdiv.txt
copy tdiv.txt div.txt
copy tdiv.txt+jwc_temp.txt
jgawk 'BEGIN{OFMT="%%.15g";pi=atan2(0,-1)}/div/{if(n==""){if($2==""){print "he 半径を入力してください";exit}{n=$2}}}/hp2/{xs=$2;ys=$3}/ci/{xc=$2;yc=$3;r=$4;bth=atan2(ys-yc,xs-xc);dth=2*pi/n}END{print "pn9";for(i=0;i^<=n-1;i++){th=bth+i*dth;xp=xc+r*cos(th);yp=yc+r*sin(th);print "pt",xp,yp}}' tdiv.txt>jwc_temp.txt
del tdiv.txt
goto end
# 書込レイヤグループ/レイヤに補助線色で作図
# 2013.11.11 by somem
:end

| | コメント (0) | トラックバック (0)

2013年11月 8日 (金)

実点に円(拡張版)

"実点に円(改)" に実点を円に変換を追加しました。
実点を円は、外変実行後、実点を消去します。
※円は、実点と同一レイヤに書込み線色/線種で作図
※寸法線端点にも適用されますので注意してください

----------
@REM 実点に円(拡張版)
@echo off
goto %1
REM #jww
REM #cd
REM #hm|実点に円|実点を円|
REM #:1
REM #:2
REM #h1 範囲内データ選択
REM #hc 範囲選択してください
REM #ht10 ブロック図形除外
REM #c 半径を入力してください |前回値/スキップ|
REM #e
:1
:2
jgawk -vR=%2 'BEGIN{if(R!=""){print "rad",R;exit}}{print $0}' rad.txt>trad.txt
copy trad.txt rad.txt
copy trad.txt+jwc_temp.txt
jgawk -vT=%1 -vR=%2 '/hq/{if(NR==1){print "he 半径を入力してください";exit}if(T==2){print "hd";next}}/rad/{if(R==""){if($2==""){print "he 半径を入力してください";exit}{R=$2}}next}/ly/{ly=$1;cnt=0;if(T==1){p=0;next}}/lc/{m=m+1;if(m==1){lc=$1;next}}/lt/{n=n+1;if(n==1){lt=$1;next}}/pn/{next}/pt/{p=p+1;if(T==1 ^&^& cnt==0 ^&^& p==1){print ly}if(T==2 ^&^& p==1){print lc;print lt};$1="ci";$4=R;print;next}{if(T==2){print}}' trad.txt>jwc_temp.txt
del trad.txt
goto end
# 対象図形は、同一レイヤグループのみ
# 範囲選択 ⇒ 左AM0時「確定 基点(free)」 ⇒ 半径入力
# 実点以外の図形(ブロック図形を除く)を選択しても可
# 注)寸法線端点の実点にも適用
# 書込み線色/線種で作図
# 実点と同一レイヤに円を作図
# 右クリックで再実行
# 2013.11.8    by somem
:end

| | コメント (0) | トラックバック (0)

2013年10月29日 (火)

取消し線

Jw_cad相談室での質問ですが・・・・・
文字に取消し線を作図する外部変形を作ってみました。m(__)m

--------------------
@REM 取消し線
@echo off
REM #jww
REM #cd
REM #h3    文字選択
REM #hc    文字(水平横文字)を選択してください
REM #e
jgawk '/hs/{for(i=0;i^<=9;i++)S[i]=$(i+2);S["a"]=$12;S["b"]=$13;S["c"]=$14;S["d"]=$15;S["e"]=$16;S["f"]=$17}/lg/{lg=substr($1,3);sc=S[lg]}/hch/{for(i=0;i^<=9;i++)ch[i+1]=$(i+2)}/cn/{if($1=="cn0"){cwh=$2;cht=sc*$3}else if(substr($1,4,1)=="$"){}else{h=substr($1,3);cht=sc*ch[h]}}/^^ch/{x0=$2;y0=$3;lth=$4;dh=int(100*cht/3)/100;xe=x0+lth;y1=y0+dh;y2=y1+dh;print x0,y1,xe,y1;print x0,y2,xe,y2}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end
# 水平横文字のみ適用
# 書込み線色・線種で作図
# 2013.10.29 by somem
:end

| | コメント (0) | トラックバック (0)

2013年9月 1日 (日)

実点作図(改)

以前、作成した"実点作図"のスプリクトを見直しました。
実点作図は、始点/構成点に加えて、終点の作図を追加しました。
消去は、寸法線の補助点が消去される不具合を修正し、
外変実行時のレイヤグループ/レイヤに戻すスプリクトを追加しています。

<点作図>
◇/^^[#cl]/
先頭フィールドに"#"、"c"、"l"を含む場合にパターンマッチングします。
◇f(k==1){if(i==1){print "pt",$1,$2;print "pt",$3,$4}{print "pt",$3,$4}}
曲線属性 "pl" の後に記述される線データの始点/終点に実点を作図
その他の線データは、終点のみの作図
※ if 文の "else" は、省略可。
<消去>
◇NR==9{lg=$1}NR==10{ly=$1}・・・END{print lg;print ly}
書込みレイヤグループ/レイヤ情報を取得、END文で情報を書出し。
◇/^^pn/{if(substr($1,3,1)=="9"){er=1;next}{er=0}}/^^pt/{if(er==1){next}{}}
線色9の実点だけを消去、その他は、再作図

続きを読む "実点作図(改)"

| | コメント (0) | トラックバック (0)

2013年8月31日 (土)

実点に円(改)

"実点に円"の外部変形を更新しました。
誤操作でスキップした時のエラーを回避し、前回値で作図します。

前回入力した値をスキップで繰り返し使用する例になります。
外変実行ファイルと同一フォルダ前回値を記録した"rad.txt"を使用します。

◇jgawk -vR=%1 'BEGIN{if(R!=""){print "rad",R;exit}}{print $0}' rad.txt>trad.txt
スキップすると rad.txt の内容をそのまま trad.txt に書出します。
Key入力した場合は、文字列 "rad"と入力した半径を書出します。
例) rad 8
◇copy trad.txt rad.txt
trad.txt を rad.txt としてコピーし、次回の操作で使用できる様にします。
◇copy trad.txt+jwc_temp.txt
trad.txt の下行に jwc_temp.txt の内容を追記します。
◇jgawk -vR=%1 '・・・/^^rad/{if(R==""){R=$2}}・・・/^^pt/{$1="ci";$4=R;print $0}'
Key入力の有無によって、半径Rの値を選択し、jwc_temp.txt に書出しします。

続きを読む "実点に円(改)"

| | コメント (0) | トラックバック (0)

2013年8月28日 (水)

実点に円

siegel さんの掲示板 での課題で、実点に円を作図する外部変形を作成しました。

◇-vR=%1
key入力した半径を変数Rに取り込み
◇/^^pt/{$1="ci";$4=R;print $0}
点データ "pt x y" を 円データ "ci x y r " として出力

----------
@REM 実点に円作図
@echo off
REM #jww
REM #cd
REM #h1 範囲選択
REM #hc 実点を範囲選択してください
REM #ht10 ブロック図形除外
REM #c 半径を入力してください
REM #hr
REM #e
jgawk -vR=%1 '/^^pt/{$1="ci";$4=R;print $0}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end
# 対象は、同一レイヤグループ
# 範囲選択 ⇒ 半径入力
# 実点以外の図形(ブロック図形を除く)を選択しても可
# 但し、寸法線端点の実点は、選択しないでください
# 書込み線色/線種で作図
:end

| | コメント (0) | トラックバック (0)

2013年8月22日 (木)

半径変更(円)

久しぶりに外部変形を作ってみました。
選択した円の半径を変更する、ただそれだけの外変です。  download
※円弧には適用されません。

円消去 からの続編のつもりです。

◇/^^ci/{if(NF==4){$4=R;print $0;next}else{}}
円データのフィールド数は4、円弧は8なので、if(NF==4)で円/円弧の条件分岐
$4=R;print $0 ⇒ 半径入力の数値を$4に入れ替え、座標データはそのまま出力

続きを読む "半径変更(円)"

| | コメント (0) | トラックバック (0)

2012年4月 1日 (日)

円消去

"jwc_temp.txt"に書出しされた図形データ以外の情報(hqを除く)を、
読込みデータに使用しても問題ないので、スプリクトを簡略することができます。

円だけを消去する外変用バッチファイルを例にすると、
{print "hd"}で選択図形が消去されますが、円以外の図形を再作図するのに、
{print $0}を追加するだけで可能になります。

続きを読む "円消去"

| | コメント (0) | トラックバック (0)

より以前の記事一覧