もう忙しすぎてヘトヘトです。
こちらちょっと面白そうです。
Command Line Camera.dump Height and Width in API? - Autodesk Community
確かに2DのCADの場合は、画面の表示を原寸大にするコマンドが
有ったりしますよね。
調べるためにちょこっと作ったスクリプトです。
# Fusion360API Python script import traceback import adsk.fusion import adsk.core from tkinter import * def run(context): ui = adsk.core.UserInterface.cast(None) try: app: adsk.core.Application = adsk.core.Application.get() ui = app.userInterface vp: adsk.core.Viewport = app.activeViewport dumpmsg(f'viewport {vp.width} x {vp.height}') cam: adsk.core.Camera = vp.camera dumpmsg(f'cam.viewExtents {cam.viewExtents}') dumpmsg(f'ratio {cam.viewExtents / vp.height}-{vp.height / cam.viewExtents}') ratio = 0.26458333333333 p0 = adsk.core.Point3D.create(0,0,0) p5 = adsk.core.Point3D.create(5,0,0) m0 = vp.modelToViewSpace(p0) m5 = vp.modelToViewSpace(p5) dist = m0.distanceTo(m5) dumpmsg(f'ViewSpace Dist {dist}-{dist * ratio}') tk = Tk() monitor_height = tk.winfo_screenheight() monitor_width = tk.winfo_screenwidth() dumpmsg(f'width x height = {monitor_width} x {monitor_height} (pixels)') except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc())) def dumpmsg(s): adsk.core.Application.get().log(s) print(s)
念の為ですが、全く役に立たないです。
感じた事です。
・ディスプレイの解像度情報は要らないんじゃないのかな?
・Viewport.heightが3D空間サイズに影響している。(widthは無関係)
・Camera.viewExtentsが3D空間サイズを決定させている。
・Viewport.modelToViewSpaceでピクセル値・・・かな?
・平面・正面・側面方向とかじゃないと原寸大って難しいような・・・。
ピクセル値とviewExtentsの関係式作って、調整すれば可能じゃないのかな?
ちっ違うかな?
画面のズームを殺すには、イベント利用すれば出来るはず。