2.5DからSketchUp
2.5Dで斜面まで立体を完成させ、SketchUpにインポートしてみました。 実点/補助線種とレイヤ名設定だけで2.5Dデータを作成しています。 2.5Dの作図方法については、サイト内の応用例を参考にしてください。
SketchUpにインポート
プラグイン makefaces11 を実行
| 固定リンク | コメント (0) | トラックバック (0)
2.5Dで斜面まで立体を完成させ、SketchUpにインポートしてみました。 実点/補助線種とレイヤ名設定だけで2.5Dデータを作成しています。 2.5Dの作図方法については、サイト内の応用例を参考にしてください。
SketchUpにインポート
プラグイン makefaces11 を実行
| 固定リンク | コメント (0) | トラックバック (0)
SketchUp起動時のテンプレートファイルをカスタマイズする手順です。
メートル-ミリメートル-3Dの起動画面です。
メニュー ⇒ ウィンドウ ⇒ スタイル をクリック 例)デフォルトのスタイル ⇒ デフォルトのスタイルをクリック
編集タブ ⇒ エッジ設定 をクリック 例)外形線を 3 → 1 に変更
面設定をクリックすると面の表/裏の色を設定することができます。
背景設定をクリックするとウィンドウ内の背景色を設定できます。 例)空のチェックを外します。
各項目のカラーボタンをクリックすると、スライドバーで色を変更できます。
「名前を付けて保存」から **.skp ファイルとして保存します。 注) 必ず、新しいファイル名で保存してください。 例) userstyle_3D.skp
保存先のパスは、 C:\Program Files\Google\Google SketchUp 6\Resources\ja\Templates
メニュー ⇒ ウィンドウ ⇒ 環境設定をクリック テンプレートを、保存したファイルに設定します。 次回起動時から、新しいテンプレートが開きます。
| 固定リンク | コメント (0) | トラックバック (0)
選択ツールで面をダブルクリックすると、面とエッジを選択できますが、 他のツールでの効果的な使い方を説明します。
球を作図する場合
選択ツールからガイド円となる面をダブルクリック
フォローミーツールから、回転させる円をクリック
ガイド円を消去して球が完成します。
プッシュプルツールでスイープした直後に、 スイープした面をダブルクリックすると、元に戻すことができます。
プッシュプルツールでスイープすると、スイープ量が記憶され、 他の面をダブルクリックすると、同じ高さにスイープすることができます。
オフセットツールもオフセット量が記憶されます。 オフセットした内側の面をダブルクリックした場合です。
選択ツールから、オフセットした内側の面をダブルクリックすると、 Deleteキーで面を消去することができます。
| 固定リンク | コメント (0) | トラックバック (0)
円と文字を組合わせた線記号変形です。
作図位置を指示 ⇒ 任意文字を入力
すでに公開されているものがあるかもしれませんが・・・・・。 アレンジして使いたい方はどうぞ。
0 円+文字
00 00 0 0 0 360 1 1 -1 e 3 #円データ(半径3)
25000 00 0 0 5 0 10000 404 -1 "55
999
0 長丸+文字
00 00 -1 0 90 270 1 1 -1 e 3 #左半円データ(半径3)
00 00 1 0 270 90 1 1 -1 e 3 #右半円データ(半径3)
00 00 -1 3 1 3 1 1 -1 #水平線(上)
00 00 -1 -3 1 -3 1 1 -1 #水平線(下)
25000 00 0 0 5 0 10000 404 -1 "555
999
注) 1 1 -1 は、順に線色/線種/書込みレイヤの指示です。 404は、基点(中)/文字種4の指示です。
| 固定リンク | コメント (0) | トラックバック (0)
・中心指定円弧のプラグインで1/4円弧を作図 ・オフセットツール/線ツールで投影図を作図 ・必要な長さ/角度は、メジャーツール/分度器ツールを利用
注)開口部は大きく作図しておいた方が、"モデルと交差"を実行後、 不要な面/線の消去が容易です。
窓枠に相当する部分を、プッシュプルツールで上下にスイープ
開口部に相当する部分をプッシュプルツールでスイープ
外壁に相当する部分をプッシュプルツールで上下にスイープ
ジオメトリを全選択して"モデルと交差"を実行
消去ツールで不要な面/線を消去
ガラスに相当する部分をスイープ "エッジのソフトニング"を実行し、円弧の分割線を非表示にします。
ガラス部分をペイントツールで透明にして完成。
| 固定リンク | コメント (4) | トラックバック (0)
直交線上にある3点を指定して、任意角度の矩形を作図する外部変形です。 相談室で話題になっていましたので・・・・・。 トレースする3点がないと、実用的ではないです。
直角で交わる点を始点にしない場合、平行四辺形が作図されますので注意。 水平/垂直でも作図は可能です。矩形は、曲線属性化されます。
一行スプリクトですので、jgawk~>temp.txtまで改行を入れないでください。
--------------------
@REM 矩形の作図
@echo off
REM
REM #jww
REM #cd
REM #0 始点を指定してください
REM #1 1点目を指定してください
REM #2 2点目を指定してください
REM #hr
REM #e
jgawk 'BEGIN{x[0]=0;y[0]=0}/^^hp1/{x[1]=$2;y[1]=$3}/^^hp2/{x[3]=$2;y[3]=$3;x[2]=x[1]+x[3];y[2]=y[1]+y[3]}END{print "pl";for(i=0;i^<=2;i++){printf "%%.15g %%.15g %%.15g %%.15g\n",x[i],y[i],x[i+1],y[i+1]}printf "%%.15g %%.15g %%.15g %%.15g\n",x[3],y[3],x[0],y[0]}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
| 固定リンク | コメント (0) | トラックバック (0)
移動ツールでAlt キーを併用すると、台形形状をモデリングできます。
円ツールで同心円を作図。
外側の円を選択
移動ツールを選択 ⇒ 中心点をクリック
Altキーを押して、マウスを青い軸上が表示される位置に移動 ⇒ 高さを指定
線ツールで円周上の2点をクリックすると、上面として認識されます。
矩形ツールとオフセットツールで、2つの長方形を作図
Ctrl キーを押しながら、内側の長方形を選択
移動ツールを選択 ⇒ 長方形の面上の任意点をクリック Alt キーを押して、マウスを青い軸上が表示される位置に移動 ⇒ 高さを指定
オービットツールで底面を表示し、線ツールで2点をクリックすると 底面として認識されます。
| 固定リンク | コメント (2) | トラックバック (0)
距離と角度から、Excel で座標データを計算し、作図する外部変形の拡張版です。 分岐コマンドから、2種類の作図が可能です。
Excel シートの作成方法は、こちらで
線種/線色は、lt */lc * で変更することができます。 レイヤは、ly * を変更してください。 縮尺は、スプリクト9行目のS=10 を変更する必要があります。 1/100の時、S=100です。
この外部変形の作成にあたっては、 盗朱さんのアドバイスをいただきました。感謝です。
<cord2.bat>
--------------------
@REM Excel to Jww 座標出力
@echo off
goto %1
REM
REM #jww
REM #cd
REM #hm|敷地図 (L)|座標点 (R)|
REM #:1
REM #:2
REM #0 原点を指定してください
REM #hr
REM #e
REM
:1
:2
jgawk -vN=%1 -f cord2.awk cord.csv>jwc_temp.txt
REM del cord.csv
goto end
:end
<cord2.awk>
--------------------
###Excel to Jww 座標出力(レイヤ別)
###
BEGIN{
#カンマ区切り(CSV用)
FS=",";
#文字列設定
dq="\"";deg="°";min="'";sec="”";sh="/";sp=" ";wd=10;
#縮尺(S=1/10)
S=10;
#文字位置調整
cdx=0;cdy=3*S;
#文字方向指定(水平)
ddx=5
}
###
#座標値取得
/^#/,/^##/{
if($1=="#"){ns=NR;ch1=$3;ch2=$4;cht=dq ch1 ch2}
if(NF==10){
chn[NR]=$2;x[NR]=$3;y[NR]=$4;L[NR]=$5;d[NR]=$6;m[NR]=$7;s[NR]=$8;
chr[NR]=dq chn[NR] sp L[NR] sh d[NR] deg m[NR] min s[NR] sec}
if($1=="##"){ne=NR;next}
}
END{
###表題の作図
print "ly3";printf "%s %d %d %d %d %s\n","ch",-20*S,5*S,ddx,0,cht;
#####
#中心線の作図
print "ly1";
print "lc2";
print "lt5";
printf "%d %d %d %d\n",-wd*S,0,wd*S,0;
printf "%d %d %d %d\n",0,-wd*S,0,wd*S;
#####
###原点/座標点の作図
print "ly2";
printf "%s %d %d\n","pt",0,0;
for(i=ns+1;i<=ne;i++)
{printf "%s %.15g %.15g\n","pt",x[i],y[i]}
###符号/距離/角度表示
print "ly3";
for(i=ns+1;i<=ne;i++)
{xc=x[i]+cdx;yc=y[i]+cdy;
printf "%s %.15g %.15g %.15g %.15g %s\n","ch",xc,yc,ddx,0,chr[i]}
###敷地作図
#線種指定
if(N==1){
print "ly0";
print "lc3";
print "lt5";
for(i=ns+1;i<=ne-1;i++)
{printf "%.15g %.15g %.15g %.15g\n",x[i],y[i],x[i+1],y[i+1]}
printf "%.15g %.15g %.15g %.15g\n",x[ne],y[ne],x[ns+1],y[ns+1]
}}
| 固定リンク | コメント (2) | トラックバック (0)
Excel でCSVファイル保存をマクロに記録するための手順です。
ツール ⇒ マクロ ⇒ 新しいマクロの記録を実行します。
マクロの保存先を"作業中のブック"に指定し、マクロ名に任意の名前を設定します。 ショートカットキーに任意のKeyを設定します。(例 Ctrl+q で実行可能 )
作業内容を記録するために、名前を付けて保存から CSVファイル形式での保存を実行します
注意のメッセージが表示されたら、"はい"をクリックします。
ツールバーの記録終了をクリックして完了です。
設定によっては、ツールバーが表示されない場合があります。 ツール ⇒ マクロ ⇒ 記録終了 をクリックしてください。
マクロの記録を確認する場合は、ツール ⇒ マクロ ⇒ マクロ をクリック マクロ名 "CSV保存"が記録されたことを確認してください。
"キャンセル"で戻ることができます。 確認ができたら、"名前を付けて保存"から、Excel 形式でファイルを保存します。 上書き保存では、CSVファイルを上書きし、マクロが保存されません。
マクロを削除する場合は、ツール ⇒ マクロ ⇒ マクロから編集をクリック。 標準モジュールの下の"Module1"を右クリック ⇒ Module1の解放をクリック。
"いいえ"をクリックして削除が完了、ファイルを保存します。
マクロが保存されたファイルを起動すると以下のメッセージが出ます。 "マクロを有効にする"をクリックしてファイルを開いてください。
マクロを利用するには、セキュリティレベルを"中"に設定する必要があります。 ツール ⇒ マクロ ⇒ セキュリティ から設定ができます。
| 固定リンク | コメント (0) | トラックバック (0)
ExcelからCSV形式で保存した座標データをJwwで作図する外部変形です。
距離と角度から、座標データを求めるExcel シートを作成してみました。
注)データ入力が完了したら、Excel 形式で必ずバックアップを保存してください。
外部変形用バッチファイルのあるフォルダにCSV形式で保存します。 ファイル名は、cord.csv とします。
CSV形式の保存には、Excel マクロを利用します。マクロの解説はこちら。
CSVファイルをメモ帳で開くとテキストデータを確認できます。 外部変形で使用するのは、#~## までのデータです。
Jwwを起動して外部変形を実行し、基準点の位置を指定します。 表示内容等は、awkスプリクトを変更してご利用ください。
バッチファイルは、cord.csv を上書きする設定にしています。 CSV保存時に、上書きメッセージをスキップしたい場合、 最終行の"REM"を削除してください。
拡張版を公開しましたので、バッチファイル/スプリクトは、こちらへ
<cord.bat>
--------------------
@REM Excel to Jww 座標出力
@echo off
REM
REM #jww
REM #cd
REM #0 原点を指定してください
REM #hr
REM #e
REM
jgawk -f cord.awk cord.csv>jwc_temp.txt
REM del cord.csv
<cord.awk>
--------------------
###Excel to Jww 座標出力
###
BEGIN{
#カンマ区切り(CSV用)
FS=",";
#文字列設定
dq="\"";deg="°";min="'";sec="”";sh="/";
#縮尺(S=1/10)
S=10;
#文字位置調整
cdx=0;cdy=3*S;
#文字方向指定(水平)
ddx=5
}
###
#座標値取得
/^#/,/^##/{
if($1=="#"){ch1=$3;ch2=$4;cht=dq ch1 sh ch2}
if(NF==10){
chn[NR]=$2;x[NR]=$3;y[NR]=$4;L[NR]=$5;d[NR]=$6;m[NR]=$7;s[NR]=$8;
chr[NR]=dq chn[NR] sh L[NR] sh d[NR] deg m[NR] min s[NR] sec}
if($1=="##"){n=NR;next}
}
END{
###表題の作図
{printf "%s %d %d %d %d %s\n","ch",-20*S,5*S,ddx,0,cht}
###点の作図
for(i=4;i<=n;i++)
{printf "%s %.15g %.15g\n","pt",x[i],y[i]}
###符号/距離/角度表示
for(i=4;i<=n;i++)
{xc=x[i]+cdx;yc=y[i]+cdy;
printf "%s %.15g %.15g %.15g %.15g %s\n","ch",xc,yc,ddx,0,chr[i]}
###基点/測定点間作図
#線種/線色指定
print "lc2";
print "lt7";
for(i=4;i<=n;i++)
{printf "%.15g %.15g %.15g %.15g\n",0,0,x[i],y[i]}
###境界線作図
#線種指定
print "lc3";
print "lt5";
for(i=4;i<=n-1;i++)
{printf "%.15g %.15g %.15g %.15g\n",x[i],y[i],x[i+1],y[i+1]}
printf "%.15g %.15g %.15g %.15g\n",x[n],y[n],x[4],y[4]
}
各要素をレイヤ分けするスプリクトにしてみました。 また、コメント欄を空白セルにすると何も表記しないようにしました。 08/03/10
符号表記を元に戻し(21行目)、距離と符号の間は、半角スペースにしました。 アレンジする場合は、sp=" "(5行目)を変更してください。08/03/11
--------------------
###Excel to Jww 座標出力(レイヤ別)
###
BEGIN{
#カンマ区切り(CSV用)
FS=",";
#文字列設定
dq="\"";deg="°";min="'";sec="”";sh="/";sp=" ";
#縮尺(S=1/10)
S=10;
#文字位置調整
cdx=0;cdy=3*S;
#文字方向指定(水平)
ddx=5
}
###
#座標値取得
/^#/,/^##/{
if($1=="#"){ch1=$3;ch2=$4;cht=dq ch1 ch2}
if(NF==10){
chn[NR]=$2;x[NR]=$3;y[NR]=$4;L[NR]=$5;d[NR]=$6;m[NR]=$7;s[NR]=$8;
chr[NR]=dq chn[NR] sp L[NR] sh d[NR] deg m[NR] min s[NR] sec}
if($1=="##"){n=NR;next}
}
END{
###表題の作図
{print "ly3";printf "%s %d %d %d %d %s\n","ch",-20*S,5*S,ddx,0,cht}
###点の作図
print "ly2";
for(i=4;i<=n;i++)
{printf "%s %.15g %.15g\n","pt",x[i],y[i]}
###符号/距離/角度表示
print "ly3";
for(i=4;i<=n;i++)
{xc=x[i]+cdx;yc=y[i]+cdy;
printf "%s %.15g %.15g %.15g %.15g %s\n","ch",xc,yc,ddx,0,chr[i]}
###基点/測定点間作図
#レイヤ/線種/線色指定
print "ly1";
print "lc2";
print "lt7";
for(i=4;i<=n;i++)
{printf "%.15g %.15g %.15g %.15g\n",0,0,x[i],y[i]}
###境界線作図
#レイヤ/線種/線色指定
print "ly0";
print "lc3";
print "lt5";
for(i=4;i<=n-1;i++)
{printf "%.15g %.15g %.15g %.15g\n",x[i],y[i],x[i+1],y[i+1]}
printf "%.15g %.15g %.15g %.15g\n",x[n],y[n],x[4],y[4]
}
| 固定リンク | コメント (4) | トラックバック (0)
モデル作成途中に、新しいDXFファイルをインポートしてみます。
CADデータは、JWW情報館さんの「住宅の2.5D集」を利用させていただいています。
ファイル ⇒ インポートから、新しいDXFファイルをインポートします。
インポートした直後は、グループ化されていますので、 図形を 右クリック ⇒ 分解 を実行します。
そのまま、プラグイン "makefaces11" を実行して、面を作成することができます。
| 固定リンク | コメント (0) | トラックバック (0)
すでに公開している外部変形 「2.5Dレイヤ名設定」 の高さ/奥行き取得方法を すべて3辺選択に変更しました。
外変用バッチファイルに角度補助線の分岐コマンドを追加しました。 08/04/05
分岐コマンドに "Next" を追加しました。 外部変形 "レイヤ間移動/複写"に移動します。 相互に利用する"バッチファイル名"に注意してください。 08/04/06
外変移動後、「未実行」が表示されないようにしました。 08/04/08
「#lh h1 , h2 」の基本的な操作方法は変わりませんが、 3辺の選択方法によって、以下のレイヤ名が設定されます。
A) 基準線h0 → 基準線h0を選択(h1) → h2を選択 ⇒ 「#lh 0 , h2 」 B) 基準線h0 → h1を選択 → 基準線h0を選択(h2) ⇒ 「#lh h1 , 0 」 C) 基準線h0 → h1を選択 → h1を選択(h2) ⇒ 「#lh h1 , h1 」
* 「#lh 0 , h2 」と「#lh h1 , 0 」 は、#lh ***.** と同等のレイヤ名設定になります。
* 「#lh h1 , h1 」は、#lv ***.** と同等の作図データになりますが、 同一平面に2つの面が作図されることになります。 2.5Dだけで使用する場合は、作図実行後、重複線の整理を行ってください。
<lyr_set_3l_n.bat>
--------------------
@REM レイヤ/レイヤグループ名設定(3辺取得型)
@echo off
goto %1
REM
REM #jww
REM #cd
REM #hm|+H1,H2 (L)|-H1,H2 (R)|LV (3)|基点設定 (4)|角度補助線(5)|Next (6)|
REM
REM #:1
REM #:2
REM #1ln 基準線h0を指定してください(L)
REM #2ln 高さ(奥行き)h1の指示線をクリック(L)
REM #3ln 高さ(奥行き)h2の指示線をクリック(L)
REM #hr
REM #e
REM
REM #:3
REM #1ln 基準線h0を指定してください(L)
REM #2ln 高さh1の指示線をクリック(L)
REM #hr
REM #e
REM
REM #:4
REM #1 線色6実点位置を指定してください(R)
REM #2 線色5実点位置を指定してください(R)
REM #3 線色5補助線種の方向を指示してください(R)
REM #hr
REM #e
REM
REM #:5
REM #0 始点を指定してください。(R)
REM #1ln 角度線を指定してください(L)
REM #hr
REM #e
REM
REM #:6
REM #h/layer_ch_n.bat
REM #e
REM
:1
:2
jgawk '/^^#/,/NF==0/{if(NF==4){print $0}}' jwc_temp.txt>temp.txt
jgawk -vN=%1 -f lyr_set_3l.awk temp.txt>jwc_temp.txt
del temp.txt
goto end
:3
jgawk '/^^#/,/NF==0/{if(NF==4){print $0}}' jwc_temp.txt>temp.txt
jgawk -vN=%1 -f lyr_set_3l.awk temp.txt>jwc_temp.txt
del temp.txt
goto end
:4
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
:5
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
:6
echo #>jwc_temp.txt
:end
--------------------
<lyr_set_3l.awk>
--------------------
#レイヤ/レイヤグループ名設定
########## 3辺取得型 ##########
#####
#初期設定
BEGIN{
#傾き一致:6桁
j=100000;
#小数点桁数(2桁)
k=100;
#単位(mm:1/m:1000)
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==3){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"}
#高さ取得(水平線)
#+H1,H2
if(N==1 && y01==y02 && y11==y21){h1=(y11-y01)/un;h1=h1*k;h1=rnd(h1)/k;
h=lh;ht=lyn h h1 cma h1;print ht}
if(N==1 && 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==2 && y01==y02 && y11==y21){h1=(y11-y01)/un;h1=h1*k;h1=rnd(h1)/k;h1=-h1;
h=lh;ht=lyn h h1 cma h1;print ht}
if(N==2 && 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}
#奥行き取得(垂直線)
#+H1,H2
if(N==1 && 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==2 && 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}
#奥行き取得(任意角度線)
#+H1,H2
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;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==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;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}
#LG基準高さ
#LV
if(N==3){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)
最近のコメント