Message 1 of 6
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I currently write an add-in to import models into design but I can only import one model at a time.
Import only one manipulator or one gripper works. But import manipulator and gripper at the same time, something went wrong:
Traceback (most recent call last):
File "C:\Users/Aspartame/AppData/Roaming/Autodesk/Autodesk Fusion 360/API/AddIns/ImportRobot\lib\fusion360utils\event_utils.py", line 84, in notify
callback(args)
File "C:\Users/Aspartame/AppData/Roaming/Autodesk/Autodesk Fusion 360/API/AddIns/ImportRobot\commands\importRobot\entry.py", line 138, in command_execute
import_robot.importManipulator(gripper.name)
File "C:\Users/Aspartame/AppData/Roaming/Autodesk/Autodesk Fusion 360/API/AddIns/ImportRobot\commands\importRobot\import_robot.py", line 40, in importManipulator
importManager.importToTarget(f3dOptions, rootComp)
File "C:\Users/Aspartame/AppData/Local/Autodesk/webdeploy/production/b4885f4229f39fee5ad2bce82f309e671e5c9ccd/Api/Python/packages\adsk\core.py", line 10892, in importToTarget
return _core.ImportManager_importToTarget(self, importOptions, target)
RuntimeError: 2 : InternalValidationError : results
But I test it using a script works well, here is the `test.py`:
import adsk, adsk.core, adsk.fusion
import os, sys
import pathlib
import time
def importManipulator(name: str):
"""
name: name of manipulator
"""
app = adsk.core.Application.get()
ui = app.userInterface
product = app.activeProduct
design = adsk.fusion.Design.cast(product)
rootComp = design.rootComponent
importManager = app.importManager
viewPort = app.activeViewport
currentCamera = viewPort.camera
# change the view to make z-axis with a up direction
camera_up_vector = adsk.core.Vector3D.create(0.0, 0.0, 1.0)
currentCamera.upVector = camera_up_vector
viewPort.camera = currentCamera
_ = viewPort.refresh()
current_dir = os.path.dirname(os.path.abspath(__file__))
if name == "None":
return # do nothing
if name == "UR5e":
model_file = current_dir + "/robot_models/UR5e.f3d"
f3dOptions = importManager.createFusionArchiveImportOptions(model_file)
f3dOptions.isViewFit = True
importManager.importToTarget(f3dOptions, rootComp)
if name == "Robotiq85 Gripper":
model_file = current_dir + "/robot_models/Robotiq_2F85_Gripper.f3d"
f3dOptions = importManager.createFusionArchiveImportOptions(model_file)
f3dOptions.isViewFit = True
importManager.importToTarget(f3dOptions, rootComp)
importManipulator("UR5e")
importManipulator("Robotiq85 Gripper")
But I don't know what is wrong with the add-in code. I iput it at GoogleDrive hoping you can help with me. By now, I only have two `f3d` file so you can just pick `UR5e` model and `Robotiq85 Gripper` as the selection.
My add-in file at GoogleDrive:
Thanks a lot!
Solved! Go to Solution.