2.5D台形出窓
2.5Dレイヤ名設定の外変を"台形出窓"で検証してみました。 作図は、YKK APさんのCADデータを利用させていただいています。
各レイヤグループ/レイヤはこんな感じです。
2.5Dからアイソメを実行した図です。
外変は、コマンドを分岐しすぎたため、ちょっと使い勝手が・・・・・。 3辺取得だけの外変を、次回公開する予定です。
| 固定リンク | コメント (0) | トラックバック (0)
2.5Dレイヤ名設定の外変を"台形出窓"で検証してみました。 作図は、YKK APさんのCADデータを利用させていただいています。
各レイヤグループ/レイヤはこんな感じです。
2.5Dからアイソメを実行した図です。
外変は、コマンドを分岐しすぎたため、ちょっと使い勝手が・・・・・。 3辺取得だけの外変を、次回公開する予定です。
| 固定リンク | コメント (0) | トラックバック (0)
2.5Dの側面(立面)作図では、レイヤを分けた後、基点と方向の指定が必要なので、 レイヤ間移動/複写に実点/補助線作図を外変用バッチファイルにまとめました。
それぞれの使い方は、レイヤ間移動/複写、実点/補助線作図を見てください。
分岐コマンドに 角度補助線 を追加しました。 08/04/05
分岐コマンドに "Next" を追加しました。 外部変形 "レイヤ名設定" に移動できます。 相互に利用する"バッチファイル名"に注意してください。 08/04/06
分岐コマンドに 実点/補助線消去 を追加しました。 外変移動後に「未実行」を表示しないようにしました。 08/04/08
< 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の高さ/奥行きデータをレイヤ名(レイヤグループ名) に設定する外部変形です。
レイヤ名の使い方は、こちらで
<概要>
・側面(立面) は、線色6の実点/線色5の実点・補助線種を併用します。 使い方は、こちらで
・入力単位はmm、高さ/奥行きは、小数点第3位を四捨五入。
・各分岐コマンドは、属性取得から書込みレイヤに移動して実行します。
・高さ/奥行きを取得する線が平行でない場合、「未実行」となります。
<分岐コマンド>
◇+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回選択します。
<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)
2.5Dの作図環境を変更する例を紹介します。画面表示が見やすくなると思います。
◇表示文字の設定 メニュー ⇒ 設定 ⇒ 基本設定 ⇒ 文字から、文字種類が設定できます。 一度設定すると、次回起動時も有効になります。
◇環境設定ファイルの変更 基本設定からも変更可能ですが、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)
R_STR0_00 = 1 1 0 0 0 ,mm,
| 固定リンク | コメント (0) | トラックバック (0)
図形を別レイヤに移動/複写する外変用バッチファイルです。
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)
siegel さんのブログ『精進寺』で、 金桜さん作 「外部変形-zP25D06」が公開されました。(作者様、ありがとうございます)
*マウス指示した直線のグループレイヤ/レイヤ高さを 2.5D用のレイヤグループ名/レイヤ名に設定することができます。
その他詳細は、siegel's BLOG 『精進寺』でどうぞ
| 固定リンク | コメント (2) | トラックバック (0)
2.5D用の実点/補助線を作図する外変用バッチファイルです。
操作手順は、次の通りです。 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)
螺旋階段を2.5DからSUでモデリングしてみました。 建築は専門でないので、高さは適当な数値です。m(__)m
HinoADO Tools さんが、螺旋階段のプラグインを公開されています。 実用上は、プラグインを利用した方がいいと思います。
2.5Dから、アイソメを実行した図です。視点は、[0,0]ボタンで変更。
手摺り部分は、どうしても数値入力が必要ですが、 その他は、レイヤ名(#lh h1,h2 )で 2面の高さを指定しています。 踏み板のレイヤは、こんな感じ。
3D-dxf をSketchUpにインポート。
手摺り以外のレイヤを非表示 ⇒ 先端に円ツールで手摺りの径を作図
フォローミーツールで手摺りをスイープ ⇒ "エッジをソフトニング"を実行
すべてのレイヤを再表示。
"Make faces "で面を作成 ⇒ "エッジをソフトニング"を再度実行して完成。
| 固定リンク | コメント (0) | トラックバック (0)
最近のコメント