コミュニティ
Fusion - 日本語
製品テクニックや情報を共有、質問、解答したり、情報を検索など使い方は様々です。お役立てください。
キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

モデリング中のカメラ設定(パース)につきまして

12件の返信12
解決済み
返信
メッセージ1/13
AKATSUKI_AUBE_Dimension
1552 件の閲覧回数, 12 件の返信

モデリング中のカメラ設定(パース)につきまして

モデリングした作品と実際に3Dプリントした作品の見え方の誤差を出来る限り少なくするためにパース設定は大変重要かと思いますが、レンダリングの初期設定項目で焦点距離の設定が出来るのは確認しておりますがこちらはモデリング時に反映されているのでしょうか?

ここ最近(大型のもので特に悩まされます、完成後に…)

 

個人的にどうも反映されてない気がする(デフォルト設定?のまま)ので投稿させてもらいました。

初期設定画面等でモデリング画面の焦点距離の設定が可能か否か

また、可能な場合はどこで行うのかご教授いただけますと幸いです。

 

宜しくお願い致します

タグ(1)
12件の返信12
メッセージ2/13
NahoUsuki
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

レンダリング環境の焦点距離は、モデリング環境とは別になります。

 

また、モデリング環境では[正投影][パース][直交面で正投影]の切り替えはできますが、ここを細かく設定することはできなかったはずです。

ご存知かもしれませんがカメラの設定はビューキューブ右下の三角形からか、画面中央下の表示設定>カメラから変更可能です。  

 

1.png

 

手短な回答でありますが私が把握してる点は以上です。ご参考になれば幸いです。

Naho Usuki

EESignature

メッセージ3/13
AKATSUKI_AUBE_Dimension
次のアカウントへの返信: NahoUsuki

返信ありがとうございます。

切り替えにつきましては問題ないのですが

そこの細かい設定をしたいのでもしご存じの方がいればアドバイスをお願い致します。<(_ _)>

 

 

 

メッセージ4/13
tomo1230
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

@AKATSUKI_AUBE_Dimension さん

 

あいにくモデリング時の

パースの焦点距離は90mm固定になっております。

 

よろしくお願い致します。

 

 

 

神原Θ友徳(かんばらΘとものり)Tomonori Kanbara -JAPAN-
この投稿が参考になりましたら、「いいね」を押してください。
この投稿で問題を解決できましたら、「解決策として承認」ボタンを押してください。

EESignature


    
Autodesk Fusion 360 Certified User 資格認定
3Dモデリングによる3Dデータの活用法とデジタル・ファブリケーションの実践!
The method of utilizing 3D data by 3D modeling & Practice of digital fabrication!

http://blog.goo.ne.jp/t2com1230/

   




メッセージ5/13
skuramochi
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

@AKATSUKI_AUBE_Dimension さん、こんにちは。

 

私も写真を見ながらのモデリングで、形状を確認するために何度もレンダリング画面に切り替える必要があったりして、難儀したことがあります。

端の方は相当というか全く変わりますよね。。。

 

さて、最近気付いたのですが、APIではカメラの画角を変更することができ、モデリング画面でも反映されました。

 

そこで、画角または焦点距離を手動で設定するスクリプトを作ってみました。

良かったら使ってみてください。

 

# Author-skuramochi
# Description-Set the camera's angle of view or focal length.

# -*- coding: utf-8 -*-

import math
import traceback
import adsk.core
import adsk.fusion
from adsk.core import CameraTypes

app = adsk.core.Application.cast(None)
ui  = adsk.core.UserInterface.cast(None)
# prj = adsk.core.DataProject.cast(None)
design = adsk.fusion.Design.cast(None)
title = 'SetCameraAoV'


def run(context):
    global app, ui, design, title
    app = adsk.core.Application.get()
    ui = app.userInterface

    try:
        product = app.activeProduct
        design = adsk.fusion.Design.cast(product)
        if not design:
            ui.messageBox('No active design', title)
            return

        view = app.activeViewport
        cam = view.camera  # Get the camera from the active viewport.
        cam.isSmoothTransition = True
        # cam.isSmoothTransition = False

        aov = cam.perspectiveAngle   # [radian]
        d = 36.0        # image size (horizontal) [mm]
        # f = 90.0      # (35mm film equivalent) focal length [mm]
        # aov = math.degrees(2 * math.atan(d / 2 / f))    # angle of view (horizontal) [degree]
        f = 1 / math.tan(aov / 2) * d / 2   # (35mm film equivalent) focal length [mm]

        if cam.cameraType not in (CameraTypes.PerspectiveWithOrthoFacesCameraType, CameraTypes.PerspectiveCameraType):
            ui.messageBox("This script doesn't work in Orthographic view.\n"
                          "Please switch the view to Perspective or Perspective with Ortho Faces first.")
            return

        result = ui.messageBox(
            'Yes = angle of view\nNo = focal length\nCancel = abort',
            'Set the camera\'s angle of view or focal length?',
            adsk.core.MessageBoxButtonTypes.YesNoCancelButtonType, adsk.core.MessageBoxIconTypes.QuestionIconType)

        if result == adsk.core.DialogResults.DialogYes:
            (returnValue, cancelled) = ui.inputBox("Input the camera's angle of view [degree].", title, str(math.degrees(aov)))
            if cancelled:
                return
            try:
                aov = math.radians(float(returnValue))
            except ValueError as e:
                ui.messageBox(str(e), "Error", adsk.core.MessageBoxButtonTypes.OKButtonType, adsk.core.MessageBoxIconTypes.CriticalIconType)
                return
        elif result == adsk.core.DialogResults.DialogNo:
            (returnValue, cancelled) = ui.inputBox("Input the camera's (35mm film equivalent) focal length [mm]. (the default is 90mm.)", title, str(f))
            if cancelled:
                return
            try:
                f = float(returnValue)
                aov = 2 * math.atan(d / 2 / f)
            except ValueError as e:
                ui.messageBox(str(e), "Error", adsk.core.MessageBoxButtonTypes.OKButtonType, adsk.core.MessageBoxIconTypes.CriticalIconType)
                return
        else:
            return

        cam.perspectiveAngle = aov
        view.camera = cam
        if not cam.isSmoothTransition:
            view.refresh()
        adsk.doEvents()

    except:
        ui.messageBox('Failed:\n{}'.format(traceback.format_exc()), "Critical",
                      adsk.core.MessageBoxButtonTypes.OKButtonType, adsk.core.MessageBoxIconTypes.CriticalIconType)

 

メッセージ6/13
AKATSUKI_AUBE_Dimension
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

おぉ~、同じ悩みを持っている方がいらっしゃって嬉しいです。(^-^)

早速、スクリプト?使わせてもらいたいのですが

すみません、全くの無知でこれどこかにコピペすれば良いのでしょうか?

 

お手数をお掛け致しますがご教授の程宜しくお願い致します。

メッセージ7/13
skuramochi
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

添付のZIPファイルを、

C:\Users\(ユーザ名)\AppData\Roaming\Autodesk\Autodesk Fusion 360\API\Scripts

以下に展開すると、Fusion360の「スクリプトとアドイン」に表示されると思います。(Windowsの場合)

 

メッセージ8/13
kandennti
次のアカウントへの返信: AKATSUKI_AUBE_Dimension
メッセージ9/13
AKATSUKI_AUBE_Dimension
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

早々のご返信誠にありがとうございます。

早速試してみまして結果をお伝えできたらと思います。

ありがとうございます。

メッセージ10/13
AKATSUKI_AUBE_Dimension
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

キャプチャ4.JPG

メッセージ11/13
AKATSUKI_AUBE_Dimension
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

ありがとうございました!

写真は一番極端にしましたがモデリング画面で反映されました。

これは本当にありがたいスクリプトです!

助かりました!<(_ _)>

メッセージ12/13
skuramochi
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

早速のご確認ありがとうございます。

お役に立てて良かったです!

5号機の完成、楽しみにしています!

 

ちなみに、レンダリング画面に切り替えると、画角がデフォルトに戻ってしまうようですが、

こちらは修正できなそうなので、その度に設定しないといけないようです。

 

メッセージ13/13
AKATSUKI_AUBE_Dimension
次のアカウントへの返信: AKATSUKI_AUBE_Dimension

skuramochi 様

このスクリプトあればレンダリング画面へ行くことも

ほとんど無いので全く問題ないです。

が情報としてありがとうございます!

レンダリングから戻った際には注意して再設定するようにいたします。

 

 

お探しの情報が見つからないときは、コミュニティで質問しましょう。困っている人がいたら、情報を教えてあげましょう。

フォーラムに投稿