« 2013年10月 | トップページ | 2013年12月 »

2013年11月25日 (月)

123D Design

Autodesk社フリーの3D-CADソフト、123D Design を使ってみることにしました。
最近、流行りの3Dプリンタを意識したソフトです。
お世辞にも使い易いソフトとは言えませんが、機械系のモデリングに向いています。
上のリンクページからダウンロードできます。ユーザー登録不要。

123d_design

| | コメント (0) | トラックバック (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月16日 (土)

全角⇔半角変換

文字列を一括で全角⇔半角変換する外部変形です。    download
2013.11.17 
バッチファイル更新 v1.0 ⇒ v1.01 

操作は、範囲選択から左AM 0 時「確定 基点(free)」を実行

◇同一レイヤグループの文字に適用
◇文字基点は「左下」、「中下」、「右下」を選択可
◇全角、半角文字の混在可
◇全角スペース⇔半角スペースに変換
◇対象文字 |ch/横文字|cs/寸法|cr/半径|co/直径|cp/角度|ct/累進|
  ※寸法図形解除した寸法/半径/直径/角度/累寸に適用
◇除外文字 |cv/縦文字|ck/日影真北|cz/日影建物|c2/2.5D|

| | コメント (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年11月 4日 (月)

最大値

最大値を求めるユーザー定義関数です。
最小値の場合は、4行目の不等号の向きを変更します。
※表記は、max ⇒ min とした方が良いですね。

function max(val,num){        # 最大値
        vmax=val[1]
    for(i=1;i<=num;i++){
        if(val[i]>vmax){
            vmax=val[i]
            }
        }    # for
    {return vmax}
    }    # function

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

Windows8.1 シャットダウン

Windows8.1 本当は、最初に覚えたい機能ではないでしょうか。m(__)m
こんなシャットダウンの方法があります。
左下のWindowsキー上で右クリックすると、コンテキストメニューから実行できます。

Shutdown

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

2013年11月 2日 (土)

円番号作図その2

今回は、 y座標基準(下⇒上)のソートを追加しています。
座標を配列に組込む際に、x座標と y座標を入替。
数値列のソートは、列の最初の数字だけが対象となります。

Xy_sort

続きを読む "円番号作図その2"

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

2013年11月 1日 (金)

円番号作図

前回のユーザー定義関数を利用して、作図済の円の内側に、左側から順に
番号を作図する外部変形用スプリクトです。
円データは、"jwc_temp.txt"に作図順に書出されるので、
x,y座標をx座標基準で昇順ソートしています。

Sort

続きを読む "円番号作図"

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

昇順ソート

AWKには、ソート機能がないので、ユーザー定義関数を利用することになります。
公開されているスプリクトを、外部変形用に一部だけ修正したユーザー定義関数です。

function sort(arry,n){            # 昇順
    for(i=2;i<=n;i++){
        for (j=i;j>1 && arry[j-1]-arry[j]>0;j--){
            temp=arry[j-1]
            arry[j-1]=arry[j]   
            arry[j]=temp
                }    # for j
            }    # for i
        }    # function

※arry[j-1]-arry[j]>0 と arry[j-1]>arry[j]は数式上は等価ですが、
前者にすることで、複数フィールドの数列をソートすることができます。

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

« 2013年10月 | トップページ | 2013年12月 »