CADとPython 04 図形を描く
今回はスクリプトを使って、ベクターワークス/ライノセラスで図形を描いていきます。
Vectorworksのスクリプト
# -*- coding: utf-8 -*-
import vs
#線を書く
p1 = (0,0)
p2 = (100,100)
vs.MoveTo(p1)
vs.LineTo(p2)
#円を書く
vs.ArcByCenter(-100, 100, 100, 0, 360)
#四角形を書く
p1 = 0,0
p2 = 100,-100
vs.Rect(p1,p2)
#多角形を書く
p1 = (0,0)
p2 = (-50,-50)
p3 = (-70,-50)
p4 = (-100,-120)
p5 = (-120,-160)
vs.BeginPoly()
vs.AddPoint(p1)
vs.AddPoint(p2)
vs.AddPoint(p3)
vs.AddPoint(p4)
vs.AddPoint(p5)
vs.EndPoly()
vs.ReDraw()
def callback(pt):
vs.AlrtDialog(str(pt))
p2 = (pt[0]+100,pt[1]+100)
vs.Rect(pt,p2)
vs.GetPt(callback)
ライノセラス
#の行はVectorworksの部分です。#の後に行をかくとその行はコメントとして扱われ、処理はされません。どちらのソフトも座標を使っていますが、使い方が違うのがわかります。
# -*- coding: utf-8 -*-
import rhinoscriptsyntax as rs
#線を書く
p1 = (0,0)
p2 = (100,100)
#vs.MoveTo(p1)
#vs.LineTo(p2)
rs.AddLine(p1, p2)
#円を書く
#vs.ArcByCenter(-100, 100, 100, 0, 360)
plane = rs.WorldXYPlane()
plane = rs.MovePlane(plane,(-100,100))
p = (200,200)
rs.AddCircle( p, 100 )
#四角形を書く
#p1 = 0,0
#p2 = 100,-100
#vs.Rect(p1,p2)
plane = rs.WorldXYPlane()
plane = rs.MovePlane(plane,(0,-100))
rs.AddRectangle(plane, 100, 100)
#多角形を書く
p1 = (0,0)
p2 = (-50,-50)
p3 = (-70,-50)
p4 = (-100,-120)
p5 = (-120,-160)
points = [p1,p2,p3,p4,p5]
rs.AddPolyline(points)
#vs.BeginPoly()
#vs.AddPoint(p1)
#vs.AddPoint(p2)
#vs.AddPoint(p3)
#vs.AddPoint(p4)
#vs.AddPoint(p5)
#vs.EndPoly()