Jul 032012
 

# -*- coding: utf-8 -*- #
import rhinoscriptsyntax as rs
import random as rnd
number = rs.GetInteger("作成するレイヤの数を入力してください")

for i in range(0,number):
    r = rnd.randint(0,255)
    g = rnd.randint(0,255)
    b = rnd.randint(0,255)
    rs.AddLayer(None, [r,g,b])

 (作成:泉暁大)

Jul 032012
 

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

#レイヤ名と現在のレイヤを格納する
layers = rs.LayerNames()
current = rs.CurrentLayer()

#現在選択されているレイヤ以外のすべてのレイヤを非表示にする
for layer in layers:
    if layer != current:
        rs.LayerVisible(layer, False)

(作成:泉暁大)

Jul 032012
 

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

#レイヤ名と現在のレイヤを格納する
layers = rs.LayerNames()
current = rs.CurrentLayer()

#現在選択されているレイヤ以外のすべてのレイヤをロックする
for layer in layers:
    if layer != current:
        rs.LayerLocked(layer, True)

(作成:泉暁大)

Jun 262012
 

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

#線分を2本選択
obj1 = rs.GetObject(message = "select 1st line",filter=4)
obj2 = rs.GetObject(message = "select 2nd line",filter=4)
 
#obj1の値(始点、終点)を抽出
startPt1 = rs.CurveStartPoint(obj1)
endPt1 = rs.CurveEndPoint(obj1)
line1 = (startPt1,endPt1)
 
#obj1の値(始点、終点)を抽出
startPt2 = rs.CurveStartPoint(obj2)
endPt2 = rs.CurveEndPoint(obj2)
line2 = (startPt2,endPt2)
 
#交点を求める
points = rs.LineLineIntersection(line1,line2)

#突き当たる線分を描画する
rs.AddLine(startPt1, points[0])
rs.AddLine(startPt2, points[0])

(作成:泉暁大)

Jun 262012
 

円を二つ作る。


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

#判定するために、二つの円の中心と半径を調べる
id = rs.GetObjects("Select circle")
point1 = rs.CircleCenterPoint(id[0])
point2 = rs.CircleCenterPoint(id[1])

radius1 = rs.CircleRadius(id[0])
radius2 = rs.CircleRadius(id[1])

points=[point1,point2]

#円同士の位置判定

a=True
b=False
def Intersection():
#円同士が衝突する場合

    if (distance<r1 and distance>r2):
        print a

#円が外で接するあるいは中で接する
    elif(distance==r1 or distance==r2):
        print "touch"

#内包する場合
    elif(distance<r2):
        print "containing"
#円同士離れている   

  else:
        print b
distance=rs.Distance(point1,point2)
r1=radius1+radius2
r2=abs(radius1-radius2)  #半径差の絶対値

Intersection()

(作成:陳琳)

Jun 262012
 


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

#AddDimension関数
def AddDimension(_startpoint, _endpoint, _dimensionpoint):
rs.AddAlignedDimension(_startpoint, _endpoint, _dimensionpoint)
#ChangeDimScale関数
def ChangeDimScale(_number):
rs.DimScale(_number)



#寸法を取る最初の位置を選択
startpoint = rs.GetPoint("Select start point to add dimension")
#寸法を取る最後の位置を選択
endpoint = rs.GetPoint("Select end point to add dimension")
#寸法を入れたい位置をクリック
dimensionpoint = rs.GetPoint("Click where dimention will aligned")
#寸法の文字の大きさを変更
letterscale = rs.GetInteger("Enter a value of letter scale")



#AddDimension関数呼び出し
AddDimension(startpoint,endpoint,dimensionpoint)

#ChangeDimScale
if( letterscale != 1.0 ):
ChangeDimScale(1.0)
else:
ChangeDimScale(letterscale)


(作成:佐々木雅宏)

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)

作成(入矢佳紀)