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

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です