こちらの続きです。
画面を原寸大にする4 - C#ATIA
多くの方に試して頂いて、ありがたい限りです。
DPIの数値だけが原因じゃないような・・・。
もう一つネックになる部分が、Viewport.camera.viewExtentsです。
画面のズーム率と言いますか、3D空間の見える範囲のプロパティです。
Fusion 360 Help
試した所、球体の半径と書いてありますね。
φ100の円をスケッチに描き、ズームさせ画面ぴったりになるか
どうかをテストしました。
# Fusion360API Python script import traceback import adsk.fusion import adsk.core def run(context): ui = adsk.core.UserInterface.cast(None) try: app: adsk.core.Application = adsk.core.Application.get() ui = app.userInterface app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType) des: adsk.fusion.Design = app.activeProduct root: adsk.fusion.Component = des.rootComponent skt: adsk.fusion.Sketch = root.sketches.add( root.xYConstructionPlane ) skt.sketchCurves.sketchCircles.addByCenterRadius( adsk.core.Point3D.create(0,0,0), 10 * 0.5, ) sels: adsk.core.Selections = ui.activeSelections sels.clear() sels.add(skt) app.executeTextCommand(u'Commands.Start SketchActivate') vp: adsk.core.Viewport = app.activeViewport vp.fit() cam: adsk.core.Camera = vp.camera cam.target = adsk.core.Point3D.create(0,0,0) cam.viewExtents = 100 * 0.8 # <-ここ!!! vp.camera = cam vp.refresh() except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
φ100の円に対し、cam.viewExtentsは80でピッタリでした。
ん?スケッチの単位はCmだけどviewExtentsの半径の単位は何だろう?