C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

穴テンプレートの形状部分を真似る

見に来て頂いている方々には申し訳ないぐらいに、何も進めていませんでした・・・。
まぁ期待されていないでしょう。

穴テンプレートの形状部分は、例としてこんな感じになってます。

  <holeSignature version="5">
    <segment isExpanding="Contracting" type="Cone"/>
    <segment isExpanding="Contracting" type="Flat"/>
    <segment type="Cylinder"/>
    <segment bottomAngle="4.712389" isConvex="0" isExpanding="Contracting" sweepAngle="1.570796" topAngle="3.141593" type="Torus"/>
    <segment isExpanding="Contracting" type="Flat"/>
  </holeSignature>

これっぽいものを吐き出す関数を作り中です。

def dump_hole_template_geo(holeGroup: cam.RecognizedHoleGroup):
    hole: cam.RecognizedHole = holeGroup[0]
    segments = [hole.segment(i) for i in range(hole.segmentCount)]

    soup  = BeautifulSoup("", "html.parser")
    holeSignature = soup.new_tag("holeSignature")
    holeSignature["version"] = "5"

    for segment in segments:
        segmentTag = soup.new_tag("segment")
        if segment.holeSegmentType == cam.HoleSegmentType.HoleSegmentTypeCylinder:
            segmentTag ["type"] = "Cylinder"
            holeSignature.append(segmentTag)
        elif segment.holeSegmentType == cam.HoleSegmentType.HoleSegmentTypeFlat:
            segmentTag ["isExpanding"] = "Contracting"
            segmentTag ["type"] = "Flat"
            holeSignature.append(segmentTag)
        elif segment.holeSegmentType == cam.HoleSegmentType.HoleSegmentTypeTorus:
            # これは足りない
            segmentTag ["isExpanding"] = "Contracting"
            segmentTag ["type"] = "Torus"
            holeSignature.append(segmentTag)
        elif segment.holeSegmentType == cam.HoleSegmentType.HoleSegmentTypeCone:
            segmentTag ["isExpanding"] = "Contracting"
            segmentTag ["type"] = "Cone"
            holeSignature.append(segmentTag)

    _app.log(holeSignature.prettify(formatter="html"))

あぁ先々の事を考えて、BeautifulSoupを使ってます。
ガッカリするぐらい、ベタな分岐処理・・・。

RecognizedHoleGroupを受け取ったら、テキストコマンドウィンドウには
こんな出力をします。

segment タグの閉じタグがオリジナルと異なるのですが、大丈夫なのかどうか
不明です。
ダメだったら、BeautifulSoupが使えないかも。

トーラスだけはフォーマットが複雑なので、現状のものは不足しています。
これから頑張る。