Jun 262012
 

# -*- coding: utf-8 -*-
import rhinoscriptsyntax as rs
import rhinoscriptsyntax as rs
#import math as m
#グリッドの範囲を決める
x=rs.GetReal("x軸方向にグリッドを引く範囲を入力してください")
y=rs.GetReal("y軸方向にグリッドを引く範囲を入力してください")
z=rs.GetReal("z軸方向にグリッドを引く範囲を入力してください")
#x軸とy軸にz軸に線を引く
objX=rs.AddLine((0,0,0),(x,0,0))
objY=rs.AddLine((0,0,0),(0,y,0))
objZ=rs.AddLine((0,0,0),(0,0,z))

#グリッドの寸法を決める
grid=rs.GetReal("gridの寸法を入力してください")
pitchX=int(round(x//grid))+1
pitchY=int(round(y//grid))+1
pitchZ=int(round(z//grid))+1

#for文でx軸方向にz軸の線をcopyする
for i in range(0,pitchX):
	translationX=[grid*i,0,0]
	point=rs.AddPoint([0,0,0])
	objc1=rs.CopyObject(objZ,translationX)
	#for文でy軸方向にz軸の線をcopyする
	for j in range(0,pitchY):
		translationY=[0,grid*j,0]
		rs.CopyObject(objc1,translationY)
#for文でy軸方向にx軸の線分をcopyする
for j in range(0,pitchY):
	translationY1=[0,grid*j,0]
	objc2=rs.CopyObject(objX,translationY1)
	#for文でz軸方向にx軸の線分をcopyする
	for k in range(0,pitchZ):
		translationZ=[0,0,grid*k]
		rs.CopyObject(objc2,translationZ)
#for文でx軸方向にy軸の線分をcopyする
for i in range(0,pitchX):
	translationX1=[grid*i,0,0]
	objc3=rs.CopyObject(objY,translationX1)
	#for文でz軸方向にy軸の線分をcopyする
	for k in range(0,pitchZ):
		translationZ1=[0,0,grid*k]
		rs.CopyObject(objc3,translationZ1)

作成(入矢佳紀)

Jun 262012
 


# -*- coding: utf-8 -*-
import rhinoscriptsyntax as rs
from random import *

#planerSrf関数
def planarSrf(_objs):
rs.AddPlanarSrf(_objs)

#内側にサーフェイスを作るCurveの選択

objs = rs.GetObjects("Select planar curves to build surface", rs.filter.curve)

#planarSrf関数呼び出し
planarSrf(objs)

(作成:佐々木雅宏)

Jun 262012
 


# -*- coding: utf-8 -*
import rhinoscriptsyntax as rs

#線分の選択
obj = rs.GetObject(message = "select line",filter=4)

#線分の始点終点の座標を抽出
startpoint = rs.CurveStartPoint(obj)
endpoint = rs.CurveEndPoint(obj)

#始点から終点までをベクトルで表現
Vec = rs.VectorCreate(endpoint,startpoint)
d = rs.VectorLength(Vec)

#距離を100にする(設定に依存する)
Vec = rs.VectorScale(Vec, 100/d)

#描画する線の終点を定める
newendpoint = startpoint + Vec

#距離が100の線を描く
rs.AddLine(startpoint,newendpoint)

(作成:泉暁大)

Jun 262012
 

# -*- coding: utf-8 -*-
import rhinoscriptsyntax as rs
from random import *

#offsetCarve関数
def offsetCurve(_curve,_point,_distance):
rs.OffsetCurve(_curve,_point,_distance)

#オフセットするオブジェクトの選択
obj = rs.GetObject("Select a curve", rs.filter.curve)
#オフセットする距離の入力
number = rs.GetInteger("Enter a value")
#オフセットする方向を指定
direction = rs.GetPoint("Click offset direction")

#offsetCurve関数呼び出し
offsetCurve(obj,direction,number)

(作成:佐々木雅宏)

Jun 262012
 

# -*- coding: utf-8 -*-
import rhinoscriptsyntax as rs

obj = rs.GetObject("反転させるオブジェクトを選択")

if obj:
	start = rs.GetPoint("対称軸の始点を選択")
	end = rs.GetPoint("対称軸の終点を選択")
	
	if start and end:
		rs.MirrorObject( obj, start, end, True )

(作成:中村健太郎)

Jun 262012
 

# -*- coding: utf-8 -*-
import rhinoscriptsyntax as rs

obj1 = rs.GetObject(message = "select first line")
obj2 = rs.GetObject(message = "select second line")

#obj1 LineLineIntersection()のための引数を準備
startpoint1 = rs.CurveStartPoint(obj1)
endpoint1 = rs.CurveEndPoint(obj1)
line1 = (startpoint1,endpoint1)

#obj2 LineLineIntersection()のための引数を準備
startpoint2 = rs.CurveStartPoint(obj2)
endpoint2 = rs.CurveEndPoint(obj2)
line2 = (startpoint2,endpoint2)

#交点をもとめる
points = rs.LineLineIntersection(line1,line2)

#交点が線分上にあるかどうかの判定 各ポイントのX座標を比較して判定する
a = int(startpoint1[0])
b = int(points[0][0])
c = int(endpoint1[0])
if a<b & b<c:
	pt = rs.AddPoint(points[0])
	#点の色を赤にする
	rs.ObjectColor(pt,color = [255,0,0])
elif a>b & b>c:
	pt = rs.AddPoint(points[0])
	#点の色を赤にする
	rs.ObjectColor(pt,color = [255,0,0])
else:
	print "線分上に交点がありません"

(作成:中村健太郎)

Jun 262012
 

# -*- coding: utf-8 -*-
import rhinoscriptsyntax as rs

obj1 = rs.GetObject(message = "select first line")
obj2 = rs.GetObject(message = "select second line")

#obj1 LineLineIntersection()のための引数を準備
startpoint1 = rs.CurveStartPoint(obj1)
endpoint1 = rs.CurveEndPoint(obj1)
line1 = (startpoint1,endpoint1)

#obj2 LineLineIntersection()のための引数を準備
startpoint2 = rs.CurveStartPoint(obj2)
endpoint2 = rs.CurveEndPoint(obj2)
line2 = (startpoint2,endpoint2)

#交点をもとめる
points = rs.LineLineIntersection(line1,line2)
pt = rs.AddPoint(points[0])
#点の色を赤にする
rs.ObjectColor(pt,color = [255,0,0])

(作成:中村健太郎)