見に来て頂いている方々には申し訳ないぐらいに、何も進めていませんでした・・・。
まぁ期待されていないでしょう。
穴テンプレートの形状部分は、例としてこんな感じになってます。
<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が使えないかも。
トーラスだけはフォーマットが複雑なので、現状のものは不足しています。
これから頑張る。