TOP>2008年04月

2008年04月30日

■一発で面積計測:Jw_cad外部変形

■建築フォーラム(FARCHI) - 旧nifty建築フォーラム避難所
http://www.farchi.jp/filemgmt/index.php?id=479

FastMeasure(ファーストメジャー:一発で面積計測)なる外部変形が公開されています。

 面積計測を簡便に素早く行いたいというニーズに応えられたらなと思います。

 通常、面積の計測は全ての頂点を選択する必要がありますが、計測する対象が複雑であったり数が多いケースにおいて、地道な作業には辛いものがあります。
 「ファーストメジャー」は、「計測の対象が閉じられた図形である」という条件の下で動作が可能で、図形を1回右クリックすることでその面積を計測することなどができます。
 計測の対象となる図形は、直線または弧によって閉じられた図形で、その複雑さは関係ありません。
 面積計測は図形を三角形に分割して計測します。
 複雑さに関係なく、線分によって閉じている図形が計測可能です。
 コンフィグファイルを使用すると、計測した面積の書き込む際の文字や色、そしてレイヤーの設定、分割線の設定が可能です。


080430001.jpg


FC2ランキング

2008年04月29日

[script!3D] 円柱

次に、script!3D での 円柱の作図をしてみます。
円柱は、底面の円、側面、上面の円、があり、底面の円は下側が表になりますので注意します。側面は四角面を複数描くパターンがありますが、ここでは、円周ソリッド作図の命令を用意していまして、そちらのほうが簡単ですのでそれを使います。これは、Jw_cad で 円周ソリッドを作図し、2.5Dから 3D-DXFを出力する際に、円柱の壁なソリッド面になればなぁ、というようなイメージで作成した作図命令です。
円形のソリッド作図命令は、内部で三角面(円環ソリッドの場合は四角面)に分割して登録されます。
円の分割数は、メニュー「設定」の「線設定」にある「円円弧の分割数」で指定した値をそのまま利用して作図します。

// 円柱(ローカル座標版)
//  円は多角形表現となります
//  分割数は、メニュー 設定→線設定 の「円円弧の分割数」(SetArcSep)を利用します

#VAR
 c = 5   ;*線色
 R = 50  ;*底面円半径
 Z = 100  ;*高さ
 i
 w1

#DRAW
 #IF ( R <= 0 )
   MESSAGE "エラー","半径は、正の数値を入力して下さい。","",0,0
   #EXIT
 #END

 PEN c
 // 下面(下側が表面となります:時計回り)
 //  初期状態では上側が表になりますので、変換マトリックスでひっくり返します
 CAL w1 = PI
 ROXMATR w1
 CSLD2D i,SetArcSep,0,0,R,R,0

 // 変換マトリックスを初期状態に戻します
 INIMATR

 // 側面は、円周ソリッドで作図します
 ASLD3D i,SetArcSep,0,0,Z,R,R,0,0,0

 // 上面
 CSLD3D i,SetArcSep,0,0,Z,R,R,0

scr20080429c

2008年04月27日

[script!3D]直方体2

次に直方体の側面を、四角面の命令ではなく、直線ソリッド作図命令を使って描いてみます。この直線ソリッド作図命令は、Jw_cad での線ソリッドを2.5Dにした時に、下面(基準面)へ投影される壁のような面、というのと同じような感覚で使えるように用意しています。
// 直方体2(ローカル座標版)
//  四角面を6つ作図します
//  面は、右手系(反時計回り:右手親指側が表)です
//  側面は直線ソリッドを利用します

#VAR
 c = 2   ;*線色
 X = 100  ;*横長さ
 Y = 100  ;*縦長さ
 Z = 100  ;*高さ

 i
 wx1
 wy1
 wz1
 wx2
 wy2
 wz2
 wx3
 wy3
 wz3
 wx4
 wy4
 wz4

#DRAW
 // ローカル座標の初期値は、ワールド座標と同じです

 PEN c
 // 下面(下側が表面となります:時計回り)
 //   下面はローカル座標平面と同じなので2D版そのまま使えます
 CAL wx1 = X/2
 CAL wy1 = Y/2
 CAL wx2 = X/2
 CAL wy2 = -Y/2
 CAL wx3 = -X/2
 CAL wy3 = -Y/2
 CAL wx4 = -X/2
 CAL wy4 = Y/2
 4SLD2D i,wx1,wy1, wx2,wy2, wx3,wy3, wx4,wy4

 // 正面(X軸+側)直線ソリッド作図
 CAL wx1 = X/2
 CAL wy1 = Y/2
 CAL wz1 = Z
 CAL wx2 = X/2
 CAL wy2 = -Y/2
 CAL wz2 = Z
 2SLD3D i,wx1,wy1,wz1, wx2,wy2,wz2

 // 左面(Y軸+側)直線ソリッド作図
 CAL wx1 = -X/2
 CAL wy1 = Y/2
 CAL wz1 = Z
 CAL wx2 = X/2
 CAL wy2 = Y/2
 CAL wz2 = Z
 2SLD3D i,wx1,wy1,wz1, wx2,wy2,wz2

 // 背面(X軸−側)直線ソリッド作図
 CAL wx1 = -X/2
 CAL wy1 = -Y/2
 CAL wz1 = Z
 CAL wx2 = -X/2
 CAL wy2 = Y/2
 CAL wz2 = Z
 2SLD3D i,wx1,wy1,wz1, wx2,wy2,wz2

 // 右面(Y軸−側)直線ソリッド作図
 CAL wx1 = X/2
 CAL wy1 = -Y/2
 CAL wz1 = Z
 CAL wx2 = -X/2
 CAL wy2 = -Y/2
 CAL wz2 = Z
 2SLD3D i,wx1,wy1,wz1, wx2,wy2,wz2

 // 上面
 CAL wx1 = X/2
 CAL wy1 = Y/2
 CAL wz1 = Z
 CAL wx2 = -X/2
 CAL wy2 = Y/2
 CAL wz2 = Z
 CAL wx3 = -X/2
 CAL wy3 = -Y/2
 CAL wz3 = Z
 CAL wx4 = X/2
 CAL wy4 = -Y/2
 CAL wz4 = Z
 4SLD3D i,wx1,wy1,wz1, wx2,wy2,wz2, wx3,wy3,wz3, wx4,wy4,wz4

scr20080427c