ユーザ用ツール

サイト用ツール


直方体の作成

文書の過去の版を表示しています。


基本コード

rs.AddBox(points)

AddBox関数には、8つの頂点座標を指定する必要があり、その並び順にもルールがある。
この関数をそのまま使用するのはとても不便なので、対角線上にある2点を指定するだけで直方体が生成される、次の関数を使うとよい。

def box2pt(p1, p2):
    pt0 = p1
    pt1 = rs.coerce3dpoint([p2[0], p1[1], p1[2]])
    pt2 = rs.coerce3dpoint([p2[0], p2[1], p1[2]])
    pt3 = rs.coerce3dpoint([p1[0], p2[1], p1[2]])
    pt4 = rs.coerce3dpoint([p1[0], p1[1], p2[2]])
    pt5 = rs.coerce3dpoint([p2[0], p1[1], p2[2]])
    pt6 = p2
    pt7 = rs.coerce3dpoint([p1[0], p2[1], p2[2]])
 
    return rs.AddBox([pt0, pt1, pt2, pt3, pt4, pt5, pt6, pt7])

サンプルコード

import rhinoscriptsyntax as rs
 
a = []
 
def box2pt(p1, p2):
    pt0 = p1
    pt1 = rs.coerce3dpoint([p2[0], p1[1], p1[2]])
    pt2 = rs.coerce3dpoint([p2[0], p2[1], p1[2]])
    pt3 = rs.coerce3dpoint([p1[0], p2[1], p1[2]])
    pt4 = rs.coerce3dpoint([p1[0], p1[1], p2[2]])
    pt5 = rs.coerce3dpoint([p2[0], p1[1], p2[2]])
    pt6 = p2
    pt7 = rs.coerce3dpoint([p1[0], p2[1], p2[2]])
 
    return rs.AddBox([pt0, pt1, pt2, pt3, pt4, pt5, pt6, pt7])
 
a.append(box2pt([0,0,0], [100,200,50]))

実行結果

直方体の作成.1674701984.txt.gz · 最終更新: 2023/01/26 11:59 by jmitani

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki