« 2008年1月 | トップページ | 2008年3月 »

2008年2月28日 (木)

2.5D台形出窓

2.5Dレイヤ名設定の外変を"台形出窓"で検証してみました。                  作図は、YKK APさんのCADデータを利用させていただいています。

各レイヤグループ/レイヤはこんな感じです。

W_lyr W_lyr2

2.5Dからアイソメを実行した図です。

Window_5 

外変は、コマンドを分岐しすぎたため、ちょっと使い勝手が・・・・・。               3辺取得だけの外変を、次回公開する予定です。

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

2008年2月23日 (土)

2.5Dレイヤ間移動/複写(改)

2.5Dの側面(立面)作図では、レイヤを分けた後、基点と方向の指定が必要なので、          レイヤ間移動/複写に実点/補助線作図を外変用バッチファイルにまとめました。

それぞれの使い方は、レイヤ間移動/複写実点/補助線作図を見てください。

分岐コマンドに 角度補助線 を追加しました。 08/04/05

分岐コマンドに "Next" を追加しました。                               外部変形 "レイヤ名設定" に移動できます。                                                    相互に利用する"バッチファイル名"に注意してください。 08/04/06 

分岐コマンドに 実点/補助線消去 を追加しました。                              外変移動後に「未実行」を表示しないようにしました。 08/04/08

Layer_ch_e

< layer_ch_n.bat >                                                     --------------------
@REM レイヤ間移動/複写
@echo off
goto %1
REM
REM #jww
REM #cd
REM #hm|移動 (L)|複写 (R)|基点設定 (3)|角度補助線(4)|消去 (5)|Next (6)|
REM
REM #:1
REM #:2
REM #h1 範囲選択
REM #hc 図形を矩形選択してください
REM #hr
REM #e
REM
REM #:3
REM #1 線色6実点位置を指定してください
REM #2 線色5実点位置を指定してください
REM #3 線色5補助線種の方向を指定してください
REM #hr
REM #e
REM
REM #:4
REM #0 始点を指定してください(R)
REM #1ln 角度線を指定してください(L)
REM #hr
REM #e
REM
REM #:5
REM #h1 範囲選択
REM #hc 実点と補助線を選択してください
REM #hr
REM #e
REM
REM #:6
REM #h/lyr_set_3l_n.bat
REM #e
REM
REM 移動
:1
jgawk 'BEGIN{print "hd"};/^^#/,/NF==0/{if(substr($1,1,2)=="ly"){next}if(substr($1,1,2)=="lg"){next}else{print $0}}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end
REM 複写
:2
jgawk '/^^#/,/NF==0/{if(substr($1,1,2)=="ly"){next}if(substr($1,1,2)=="lg"){next}else{print $0}}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end
REM 基点設定
:3
jgawk '/^^hp1/{print "pn6";printf "%%s %%.15g %%.15g\n","pt",$2,$3};/^^hp2/{x0=$2;y0=$3;print "pn5";printf "%%s %%.15g %%.15g\n","pt",x0,y0};/^^hp3/{x1=$2;y1=$3;print "lc5";print "lt9";printf "%%.15g %%.15g %%.15g %%.15g\n",x0,y0,x1,y1}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end
REM 角度補助線
:4
jgawk '/^^#/,/NF==0/{if(NF==4 ^&^& $1^>$3){x1=$1-$3;y1=$2-$4}else{x1=$3-$1;y1=$4-$2}}END{if(y1^<0){x=-x1;y=-y1}else{x=x1;y=y1}print "lc6";print "lt9";printf "%%.15g %%.15g %%.15g %%.15g\n",0,0,x,y}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end
REM 消去
:5
jgawk 'BEGIN{print "hd"}/^^#/,/NF==0/{if($1=="#"){next}if($1=="lc5"){next}if($1=="lt9"){n=NR;next}if(NR==n+1){next}if($1=="pn6" ^|^| $1=="pn5"){next}if($1=="pt"){next}else{print $0}}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end
:6
echo #>jwc_temp.txt
:end

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

2.5Dレイヤ名設定

2.5Dの高さ/奥行きデータをレイヤ名(レイヤグループ名) に設定する外部変形です。
レイヤ名の使い方は、こちらで

<概要>
・側面(立面) は、線色6の実点/線色5の実点・補助線種を併用します。           使い方は、こちらで
・入力単位はmm、高さ/奥行きは、小数点第3位を四捨五入。
・各分岐コマンドは、属性取得から書込みレイヤに移動して実行します。
・高さ/奥行きを取得する線が平行でない場合、「未実行」となります。

<分岐コマンド>

Bunnki

◇+H/-H : 2辺を選択してレイヤの高さ/奥行きを指定
◇基点設定:3点を指定して、線色6の実点/線色5の実点・補助線を作図
◇+H1,H2/-H1,H2 : 3辺を選択して、基準線からの2面の高さ/奥行きを指定
◇LV : 2辺を選択してレイヤグループの基準高さを指定

注)
1.+H/-H/+H1,H2/-H1,H2 の選択は下図を参考にしてください。
2.レイヤ名に「#lv ***,**」を設定する場合は、「+H1,H2」からh1線を2回選択します。

Direction

<lyr_set.bat>
--------------------
@REM レイヤ/レイヤグループ名設定
@echo off
goto %1
REM
REM #jww
REM #cd
REM #hm|+H (L)|-H (R)|基点設定 (3)|-H1,H2 (4)|-H1,H2 (5)|LV (6)|
REM
REM #:1
REM #:2
REM #:6
REM #1ln 基準線h0を指定してください(L)
REM #2ln 高さh1の指示線をクリック(L)
REM #hr
REM #e
REM
REM #:3
REM #1 線色6実点位置を指定してください(R)
REM #2 線色5実点位置を指定してください(R)
REM #3 線色5補助線種の方向を指示してください(R)
REM #hr
REM #e
REM
REM #:4
REM #:5
REM #1ln 基準線h0を指定してください(L)
REM #2ln 高さ(奥行き)h1の指示線をクリック(L)
REM #3ln 高さ(奥行き)h2の指示線をクリック(L)
REM #hr
REM #e
REM
:1
:2
:6
jgawk '/^^#/,/NF==0/{if(NF==4){print $0}}' jwc_temp.txt>temp.txt
jgawk -vN=%1 -f lyr_set.awk temp.txt>jwc_temp.txt
del temp.txt
goto end
:3
jgawk '/^^hp1/{print "pn6";printf "%%s %%.15g %%.15g\n","pt",$2,$3};/^^hp2/{x0=$2;y0=$3;print "pn5";printf "%%s %%.15g %%.15g\n","pt",x0,y0};/^^hp3/{x1=$2;y1=$3;print "lc5";print "lt9";printf "%%.15g %%.15g %%.15g %%.15g\n",x0,y0,x1,y1}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end
:4
:5
jgawk '/^^#/,/NF==0/{if(NF==4){print $0}}' jwc_temp.txt>temp.txt
jgawk -vN=%1 -f lyr_set.awk temp.txt>jwc_temp.txt
del temp.txt
goto end
:end
--------------------

<lyr_set.awk>
--------------------
#####レイヤ名/レイヤグループ名設定#####
#初期設定
BEGIN{
#傾き一致:6桁
j=100000;
#小数点桁数(2桁)
k=100;
#単位(mm:1)
un=1;
#記号設定
lgn="lgn";lyn="lyn";lh="#lh";lv="#lv";cma=",";
#円周率
pi=atan2(0,-1)}
#####
#端点座標取得
NR==1{if($1>$3){x01=$3;y01=$4;x02=$1;y02=$2}else{x01=$1;y01=$2;x02=$3;y02=$4}
if(y01==y02){an1=0}if(x01==x02){an1=90}else{an1=(y02-y01)/(x02-x01)}}
NR==2{if($1>$3){x11=$3;y11=$4;x12=$1;y12=$2}else{x11=$1;y11=$2;x12=$3;y12=$4}
if(y11==y12){an2=0}if(x11==x12){an2=90}else{an2=(y12-y11)/(x12-x11)}}
NR==3{if($1==""){next}
if($1>$3){x21=$3;y21=$4;x22=$1;y22=$2}else{x21=$1;y21=$2;x22=$3;y22=$4}
if(y21==y22){an3=0}if(x21==x22){an3=90}else{an3=(y22-y21)/(x22-x21)}}
#平行線確認
{ak1=an1-an2;ak1=ak1*j;ak1=rnd(ak1)/j;
if(N==1 || N==2 || N==6){next}else{ak2=an2-an3;ak2=ak2*j;ak2=rnd(ak2)/j;
ak3=an3-an1;ak3=ak3*j;ak3=rnd(ak3)/j}}
#####
END{
###未実行出力
if(ak1!=0 || ak2!=0 || ak3!=0){print "hq"}
###高さ/奥行き取得(水平線)
#+H
if(N==1 && y01==y02){h1=(y11-y01)/un;h1=h1*k;h1=rnd(h1)/k;
h=lh;ht=lyn h h1;print ht}
#-H
if(N==2 && y01==y02){h1=(y11-y01)/un;h1=h1*k;h1=rnd(h1)/k;h1=-h1;
h=lh;ht=lyn h h1;print ht}
#+H1,H2/#lv設定
if(N==4 && y01==y02 && y11==y21){h1=(y11-y01)/un;h1=h1*k;h1=rnd(h1)/k;
h=lv;ht=lyn h h1;print ht}
#+H1,H2
if(N==4 && y01==y02 && y11!=y21){h1=(y11-y01)/un;h1=h1*k;h1=rnd(h1)/k;
h2=(y21-y01)/un;h2=h2*k;h2=rnd(h2)/k;h=lh;
ht=lyn h h1 cma h2;print ht}
#-H1,H2
if(N==5 && y01==y02 && y11!=y21){h1=(y11-y01)/un;h1=h1*k;h1=rnd(h1)/k;h1=-h1;
h2=(y21-y01)/un;h2=h2*k;h2=rnd(h2)/k;h2=-h2;
h=lh;ht=lyn h h1 cma h2;print ht}
###奥行き取得(垂直線)
#+H
if(N==1 && x01==x02){h1=(x11-x01)/un;h1=h1*k;h1=rnd(h1)/k;
h=lh;ht=lyn h h1;print ht}
#-H
if(N==2 && x01==x02){h1=(x11-x01)/un;h1=h1*k;h1=rnd(h1)/k;h1=-h1
h=lh;ht=lyn h h1;print ht}
#+H1,H2
if(N==4 && x01==x02){h1=(x11-x01)/un;h1=h1*k;h1=rnd(h1)/k;
h2=(x21-x01)/un;h2=h2*k;h2=rnd(h2)/k;
h=lh;ht=lyn h h1 cma h2;print ht}
#-H1,H2
if(N==5 && x01==x02){h1=(x11-x01)/un;h1=h1*k;h1=rnd(h1)/k;h1=-h1;
h2=(x21-x01)/un;h2=h2*k;h2=rnd(h2)/k;h2=-h2;
h=lh;ht=lyn h h1 cma h2;print ht}
###奥行き取得(任意角度)
#+H
if(N==1 && x01!=x02 && y01!=y02){dy=y02-y01;dx=x02-x01;
a0=dy/dx;ang=atan2(dy,dx);ath=pi/2-ang;
b0=y01-a0*x01;b1=y11-a0*x11;b2=y21-a0*x21;
y00=a0*x11+b0;
h1=(y11-y00)*sin(ath)/un;h1=h1*k;h1=rnd(h1)/k;
h=lh;ht=lyn h h1;print ht}
#-H
if(N==2 && x01!=x02 && y01!=y02){dy=y02-y01;dx=x02-x01;
a0=dy/dx;ang=atan2(dy,dx);ath=pi/2-ang;
b0=y01-a0*x01;b1=y11-a0*x11;b2=y21-a0*x21;
y00=a0*x11+b0;
h1=(y11-y00)*sin(ath)/un;h1=h1*k;h1=rnd(h1)/k;h1=-h1;
h=lh;ht=lyn h h1;print ht}
#+H1,H2
if(N==4 && x01!=x02 && y01!=y02){dy=y02-y01;dx=x02-x01;
a0=dy/dx;ang=atan2(dy,dx);ath=pi/2-ang;
b0=y01-a0*x01;b1=y11-a0*x11;b2=y21-a0*x21;
y00=a0*x11+b0;y22=a0*x11+b2;
h1=(y11-y00)*sin(ath)/un;h1=h1*k;h1=rnd(h1)/k;
h2=(y22-y00)*sin(ath)/un;h2=h2*k;h2=rnd(h2)/k;
h=lh;ht=lyn h h1 cma h2;print ht}
#-H1,H2
if(N==5 && x01!=x02 && y01!=y02){dy=y02-y01;dx=x02-x01;
a0=dy/dx;ang=atan2(dy,dx);ath=pi/2-ang;
b0=y01-a0*x01;b1=y11-a0*x11;b2=y21-a0*x21;
y00=a0*x11+b0;y22=a0*x11+b2;
h1=(y11-y00)*sin(ath)/un;h1=h1*k;h1=rnd(h1)/k;h1=-h1;
h2=(y22-y00)*sin(ath)/un;h2=h2*k;h2=rnd(h2)/k;h2=-h2;
h=lh;ht=lyn h h1 cma h2;print ht}
###レイヤG高さ
#LV
if(N==6){h1=(y11-y01)/un;h1=h1*k;h1=rnd(h1)/k;
h=lv;ht=lgn h h1;print ht}
}
#####
#ユーザー定義関数
#四捨五入
function rnd(x){if(x>=0){return int(x+0.5)}else{return -int(-x+0.5)}}

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

2008年2月17日 (日)

2.5D環境設定

2.5Dの作図環境を変更する例を紹介します。画面表示が見やすくなると思います。

Env1

◇表示文字の設定                                           メニュー ⇒ 設定 ⇒ 基本設定 ⇒ 文字から、文字種類が設定できます。                       一度設定すると、次回起動時も有効になります。

Env2 

◇環境設定ファイルの変更                                      基本設定からも変更可能ですが、2.5D用に、任意名「*****.jwf」 で保存し、                        作図の際に読込むことをお奨めします。詳細は、Sample.jwf で確認してください。

・線色5の線幅 

LCOLLOR_5 = 255  0  0  2

・実点の画面描画

S_COMM_5 = 0  0  0  0  0  0  1  0  0

・実点の点半径

PCOLLOR_5 = 255  0  255  2  2.00
PCOLLOR_6 =   0   0  255  3  2.50

・2.5D実行時の単位( mm を使用する場合、初期設定は m)

Env_2

R_STR0_00 = 1 1  0  0  0 ,mm,

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

2008年2月13日 (水)

レイヤ間移動/複写

図形を別レイヤに移動/複写する外変用バッチファイルです。

2.5Dデータを作成する時のレイヤ分け等にご利用ください。                    同一縮尺のレイヤグループであれば、基点を設定せずに移動/複写が可能。                                       

<操作手順>                                               1.移動/複写する図形を矩形選択                                                                     ・同一レイヤグループ内の図形のみ選択が可能です。                       ・範囲選択のコントロールバーから、線色/線種を指定することが可能です。                                2.レイヤグループバー/レイヤバーから移動先レイヤを書込みレイヤに指定します。                      ・選択図形を含むレイヤグループと異なるレイヤグループを指定することも可能                      3.左AM 0 時「確定 基点(free)」を実行                           

--------------------
@REM レイヤ間移動/複写
@echo off
goto %1
REM
REM #jww
REM #cd
REM #hm|移動 (L)|複写 (R)|
REM
REM #:1
REM #:2
REM #h1 範囲選択してください
REM #hr
REM #e
REM

REM 移動
:1
jgawk 'BEGIN{print "hd"};/^^#/,/NF==0/{if(substr($1,1,2)=="ly"){next}if(substr($1,1,2)=="lg"){next}else{print $0}}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end

REM 複写
:2
jgawk '/^^#/,/NF==0/{if(substr($1,1,2)=="ly"){next}if(substr($1,1,2)=="lg"){next}else{print $0}}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
goto end

:end

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

2008年2月11日 (月)

外部変形-zP25D06

siegel さんのブログ『精進寺』で、                                 金桜さん作 「外部変形-zP25D06」が公開されました。(作者様、ありがとうございます)

*マウス指示した直線のグループレイヤ/レイヤ高さを                  2.5D用のレイヤグループ名/レイヤ名に設定することができます。

その他詳細は、siegel's BLOG 『精進寺』でどうぞ

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

2.5D実点/補助線作図

2.5D用の実点/補助線を作図する外変用バッチファイルです。

080211

操作手順は、次の通りです。                                              1.線色6実点位置を指定                                         2.線色5実点位置を指定                                       3.線色5補助線種の方向を指定

--------------------
@REM 実点/補助線作図
@echo off
REM
REM #jww
REM #cd
REM #1 線色6実点位置を指定してください
REM #2 線色5実点位置を指定してください
REM #3 線色5補助線種の方向を指定してください
REM #hr
REM #e
REM
jgawk '/^^hp1/{print "pn6";printf "%%s %%.15g %%.15g\n","pt",$2,$3};/^^hp2/{x0=$2;y0=$3;print "pn5";printf "%%s %%.15g %%.15g\n","pt",x0,y0};/^^hp3/{x1=$2;y1=$3;print "lc5";print "lt9";printf "%%.15g %%.15g %%.15g %%.15g\n",x0,y0,x1,y1}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt

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

2008年2月 9日 (土)

2.5DからSU(螺旋階段)

螺旋階段を2.5DからSUでモデリングしてみました。                       建築は専門でないので、高さは適当な数値です。m(__)m

HinoADO Tools さんが、螺旋階段のプラグインを公開されています。            実用上は、プラグインを利用した方がいいと思います。

2.5Dから、アイソメを実行した図です。視点は、[0,0]ボタンで変更。

Isome_2

手摺り部分は、どうしても数値入力が必要ですが、                       その他は、レイヤ名(#lh h1,h2 )で 2面の高さを指定しています。               踏み板のレイヤは、こんな感じ。

Stairs_l

3D-dxf をSketchUpにインポート。

Import

手摺り以外のレイヤを非表示 ⇒ 先端に円ツールで手摺りの径を作図

Tesuri_3              

フォローミーツールで手摺りをスイープ ⇒ "エッジをソフトニング"を実行

Tesuri_2_2

すべてのレイヤを再表示。

Layer_on

"Make faces "で面を作成 ⇒ "エッジをソフトニング"を再度実行して完成。                

Spiral_stairs

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

2008年2月 5日 (火)

2.5DからSU(蝶番)

蝶番を2.5DからSUでモデリングしてみました。

円/円弧を多角形変換後、2.5Dから3D-dxf に出力

Isome_2

SketchUpにインポート

Import

プラグイン"Make faces"を実行 ⇒ エッジをソフトニング

Mface

プッシュプルツールで板厚をスイープ

Push

不要部を消去

Erase

フォローミーツールで皿モミ形状をモデリング

Dish

移動ツールで移動/複写

Copy

"モデルと交差"を実行 ⇒ 不要部を消去

Erase2

再度、"エッジのソフトニング"を実行                                軸がないので未完成ですが・・・・・とりあえずここまで。                                

Finish

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

« 2008年1月 | トップページ | 2008年3月 »