CADとPython学習 11 リストから展開図の土台
リストとfor文の2回目です。今回は図形からリストを作って、リストから別の図形(展開図の土台)を作成しています。
スクリプトサンプル
図形のタイプ別処理を細かくやっていないので、円とか選択して実行するとエラーが出るかと思います。ご注意ください。
多角形と四角形に対応しています。
import vs
target = vs.FSActLayer()
vs.DSelectAll()
if vs.GetTypeN(target) == 3: #3は四角形
target = vs.ConvertToPolygon(target, 1) #多角形に変換
points = [] #ポイントのリストを作る
count = vs.GetVertNum(target)#多角形の頂点数
#頂点数だけ繰り返し
for index in range(count):
pt = vs.GetPolyPt(target, index+1) #引数は1から / rangeは0から
points.append(pt)
vs.AlrtDialog(str(points))
high = vs.RealDialog('展開図の高さを入力してください', 3000)
start = points[-1] #-1はリストの最後から1番目という意味
for pt in points:
end = pt
wide = vs.Distance(start[0], start[1], end[0], end[1])
vs.AlrtDialog(wide)
p1 = start
p2 = start[0] + wide , start[1] - high
vs.Rect(p1, p2)
start = pt