<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Insert Obj. file in Fusion API and Scripts Forum</title>
    <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9650107#M15886</link>
    <description>&lt;P&gt;So I just saw this previous post from Brian Ekins saying that Fusion automatically transforms Splines to BRep once you leave Form mode. So you basically had transform the mesh to Tspline and the second conversation was done by itself. Right?&lt;/P&gt;</description>
    <pubDate>Wed, 22 Jul 2020 21:06:13 GMT</pubDate>
    <dc:creator>amichaudJ6E3R</dc:creator>
    <dc:date>2020-07-22T21:06:13Z</dc:date>
    <item>
      <title>Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/8111004#M15874</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to import a triangular mesh obj. file (screenshot below) into Fusion and convert it to BRep using the API. I have validated the workflow manually in Fusion UI, now trying to recreate the whole workflow through a script to achieve automation. However, I couldn't find sample script or forum thread that shows how to do this in API. Please, can anyone help to provide a sample Python code for obj. file import and conversion to BRep?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Many thanks.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 399px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/519657i76ADE1FD48D09A87/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jul 2018 11:15:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/8111004#M15874</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-07-05T11:15:38Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9639680#M15875</link>
      <description>&lt;P&gt;I want to do the exact same thing. If anyone read this, a starting point would be greatly helpful &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 16 Jul 2020 17:49:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9639680#M15875</guid>
      <dc:creator>amichaudJ6E3R</dc:creator>
      <dc:date>2020-07-16T17:49:26Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9640466#M15876</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/9157503"&gt;@amichaudJ6E3R&lt;/a&gt;&amp;nbsp;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I made a sample that imports an OBJ file and converts it to BRepBody.&lt;BR /&gt;Not checked, but the mesh must be Quad mesh.&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;# Fusion360API Python script  by kantoku
# Mesh2BRep sample
import adsk.core, adsk.fusion, traceback

_app = adsk.core.Application.cast(None)
_ui = adsk.core.UserInterface.cast(None)

def run(context):
    try:
        global _app, _ui
        _app = adsk.core.Application.get()
        _ui = _app.userInterface

        # select files
        paths = selectFiles('select OBJ file')
        if not paths: return

        # new doc
        _app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType)
        des  :adsk.fusion.Design = _app.activeProduct
        des.designType = adsk.fusion.DesignTypes.ParametricDesignType
        root :adsk.fusion.Component = des.rootComponent

        # baseFeature
        baseFeatures = root.features.baseFeatures
        baseFeature = baseFeatures.add()

        baseFeature.startEdit()
        
        # import obj files
        meshs = importMesh(paths ,root.meshBodies, baseFeature)

        # Mesh2BRep
        execMesh2BRep(meshs)

        baseFeature.finishEdit()

        # finish
        _ui.messageBox('Done')

    except:
        if _ui:
            _ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

def execMesh2BRep(
    meshBodies):

    # select meshBody
    for quadMesh in meshBodies:
        _ui.activeSelections.add(quadMesh)

    # show Mesh2BRep Command dialog
    _app.executeTextCommand(u'Commands.Start Mesh2BRepCommand')

    # push OK button
    _app.executeTextCommand(u'NuCommands.CommitCmd')


def importMesh(
    paths :list,
    meshBodies :adsk.fusion.MeshBodies,
    baseFeature :adsk.fusion.BaseFeature) -&amp;gt; list:

    unitCm = adsk.fusion.MeshUnits.CentimeterMeshUnit
    bodies = []

    for path in paths:
        meshLst = meshBodies.add(path, unitCm, baseFeature)
        [bodies.append(mesh) for mesh in meshLst]

    return bodies


def selectFiles(
    msg :str):

    fileDlg = _ui.createFileDialog()
    fileDlg.isMultiSelectEnabled = True
    fileDlg.title = msg
    fileDlg.filter = '*.obj'
    
    dlgResult = fileDlg.showOpen()
    if dlgResult == adsk.core.DialogResults.DialogOK:
        return fileDlg.filenames&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 17 Jul 2020 06:35:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9640466#M15876</guid>
      <dc:creator>kandennti</dc:creator>
      <dc:date>2020-07-17T06:35:29Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645181#M15877</link>
      <description>&lt;P&gt;That's great!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I got a few questions for you though,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. I thought that to transform a mesh to B-Rep, we had to deactivate the history recording?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. Is it Mesh2Rep that needs to be under 10,000 faces, or Quad to T-Splines&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3. If I wanted to had a convert "Quad to T-Spline" before the Mesh to B-Rep, I'd create a Def and call it in between these two?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;        # import obj files
        meshs = importMesh(paths ,root.meshBodies, baseFeature)

        # Mesh2BRep
        execMesh2BRep(meshs)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you so much for your help!&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jul 2020 18:51:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645181#M15877</guid>
      <dc:creator>amichaudJ6E3R</dc:creator>
      <dc:date>2020-07-20T18:51:00Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645186#M15878</link>
      <description>&lt;P&gt;Sorry,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;my last question was unclear. Since I first posted my first message, I discovered that I get way better results by converting my mesh to T-Spline first (Quad to T-Splines), then T-Splines to B-Rep.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So ultimately, that is what I'm aiming for &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jul 2020 18:54:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645186#M15878</guid>
      <dc:creator>amichaudJ6E3R</dc:creator>
      <dc:date>2020-07-20T18:54:09Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645581#M15879</link>
      <description>&lt;P&gt;The API doesn't support any of the current mesh functionality besides the ability to import a mesh.&amp;nbsp; Some of the code above attempts to work around this by directly calling the mesh related commands.&amp;nbsp; In this case, that's the best you can do but it's limited in functionality.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I guess I'm just saying if you're waiting for someone to post a sample program that does what you described in your initial post, you'll be waiting a long time.&amp;nbsp; Hopefully in the future there will be some mesh functionality exposed through the API but it's not there today.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Jul 2020 00:26:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645581#M15879</guid>
      <dc:creator>BrianEkins</dc:creator>
      <dc:date>2020-07-21T00:26:48Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645726#M15880</link>
      <description>&lt;P&gt;I have summarized the method of using TextCommands.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/fusion-360-api-and-scripts/use-textcommands/td-p/9645688" target="_blank" rel="noopener"&gt;https://forums.autodesk.com/t5/fusion-360-api-and-scripts/use-textcommands/td-p/9645688&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Although not all, things that can be operated with a GUI increase the possibility of processing.&lt;BR /&gt;However, development is very difficult because there is almost no information.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Jul 2020 03:13:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645726#M15880</guid>
      <dc:creator>kandennti</dc:creator>
      <dc:date>2020-07-21T03:13:42Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645921#M15881</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So I've read through the page you linked and spent the night trying to make sense of it all. It's&amp;nbsp; a little bit beyond my understand of the whole thing. I'm like a dog chasing his own tail&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So using the Text Commands inside Fusion, I found that the...thing (for lack of better words) I am looking for would be&lt;/P&gt;&lt;P&gt;TSpline2BRepCommand&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So in the code above, if I replace the Mesh2BRep by TSpline2BRepCommand, I load up the menu that I want. Now the problem I have is to access the drop down menus. Basically, I open the menu "Convert" that I need, but nothing happens.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried stuff like Commands.Select, Commands.Set, Commands.SetGroup&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But because I don't really know what I'm doing, I just end up running in circles&lt;/P&gt;</description>
      <pubDate>Tue, 21 Jul 2020 06:09:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645921#M15881</guid>
      <dc:creator>amichaudJ6E3R</dc:creator>
      <dc:date>2020-07-21T06:09:29Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645926#M15882</link>
      <description>&lt;P&gt;Hi Brian,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you for replying.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Well I am not necessarily looking for someone to give me the final solution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;While I was looking into my problem, I seemed to recall one of your videos a long time ago where you mentioned that Forms weren't supported by the API, but that was a long time ago.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I guess I was looking for the confirmation it was still the case. Nowhere I've looked online was I able to actually get a clear answer. Maybe I don't type the proper search words but I find it hard to get any kind of answers, or help regarding Fusion's API&lt;/P&gt;</description>
      <pubDate>Tue, 21 Jul 2020 06:13:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9645926#M15882</guid>
      <dc:creator>amichaudJ6E3R</dc:creator>
      <dc:date>2020-07-21T06:13:53Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9648293#M15883</link>
      <description>&lt;P&gt;I tried a little.&lt;BR /&gt;I haven't found a way to switch "DropDownCommandInput" yet.&lt;BR /&gt;Therefore, I cannot reach the goal.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm sorry I can't help you.&lt;/P&gt;</description>
      <pubDate>Wed, 22 Jul 2020 05:02:19 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9648293#M15883</guid>
      <dc:creator>kandennti</dc:creator>
      <dc:date>2020-07-22T05:02:19Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9648340#M15884</link>
      <description>&lt;P&gt;I tried a little more.　I think this is done.&lt;BR /&gt;Of course, the condition is Quad mesh.&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;# Fusion360API python script  by kantoku
# Quad2TSpline sample
import adsk.core, adsk.fusion, traceback

_app = adsk.core.Application.cast(None)
_ui = adsk.core.UserInterface.cast(None)

def run(context):
    try:
        global _app, _ui
        _app = adsk.core.Application.get()
        _ui = _app.userInterface

        # select files
        paths = selectFiles('select OBJ file')
        if not paths: return

        # new doc
        _app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType)
        des  :adsk.fusion.Design = _app.activeProduct
        des.designType = adsk.fusion.DesignTypes.ParametricDesignType
        root :adsk.fusion.Component = des.rootComponent

        # import obj files
        meshs = importMesh(paths ,root.meshBodies)

        # form start
        formFeature = root.features.formFeatures.add()
        formFeature.startEdit()

        # Quad2TSpline
        execQuad2TSpline(meshs)

         # form finish
        formFeature.finishEdit()

        # finish
        _ui.messageBox('Done')

    except:
        if _ui:
            _ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))


def execQuad2TSpline(
    meshBodies):

    # select meshBody
    for quadMesh in meshBodies:
        _ui.activeSelections.add(quadMesh)

    # show TSpline2BRep Command dialog
    _app.executeTextCommand(u'Commands.Start TSpline2BRepCommand')

    # push OK button
    _app.executeTextCommand(u'NuCommands.CommitCmd')


def importMesh(
    paths :list,
    meshBodies :adsk.fusion.MeshBodies) -&amp;gt; list:

    unitCm = adsk.fusion.MeshUnits.CentimeterMeshUnit
    bodies = []

    for path in paths:
        meshLst = meshBodies.add(path, unitCm)
        [bodies.append(mesh) for mesh in meshLst]

    return bodies


def selectFiles(
    msg :str):

    fileDlg = _ui.createFileDialog()
    fileDlg.isMultiSelectEnabled = True
    fileDlg.title = msg
    fileDlg.filter = '*.obj'
    
    dlgResult = fileDlg.showOpen()
    if dlgResult == adsk.core.DialogResults.DialogOK:
        return fileDlg.filenames&lt;/LI-CODE&gt;</description>
      <pubDate>Wed, 22 Jul 2020 05:55:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9648340#M15884</guid>
      <dc:creator>kandennti</dc:creator>
      <dc:date>2020-07-22T05:55:42Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9650074#M15885</link>
      <description>&lt;P&gt;This is amazing!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So just to know if I understand correctly. You first import the object, then open a new "form object", put the mesh in, which automatically transforms it into TSpline, then convert those splines into a BRep, is that it?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is pretty cool. Thanks a lot&lt;/P&gt;</description>
      <pubDate>Wed, 22 Jul 2020 20:52:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9650074#M15885</guid>
      <dc:creator>amichaudJ6E3R</dc:creator>
      <dc:date>2020-07-22T20:52:04Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9650107#M15886</link>
      <description>&lt;P&gt;So I just saw this previous post from Brian Ekins saying that Fusion automatically transforms Splines to BRep once you leave Form mode. So you basically had transform the mesh to Tspline and the second conversation was done by itself. Right?&lt;/P&gt;</description>
      <pubDate>Wed, 22 Jul 2020 21:06:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9650107#M15886</guid>
      <dc:creator>amichaudJ6E3R</dc:creator>
      <dc:date>2020-07-22T21:06:13Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Obj. file</title>
      <link>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9651549#M15887</link>
      <description>&lt;P&gt;That's right. It is processed in this way.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;QuadMesh → TSpline : TSpline2BRepCommand&lt;BR /&gt;TSpline → BRepBody : formFeature.finishEdit()&lt;/P&gt;</description>
      <pubDate>Thu, 23 Jul 2020 14:24:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/insert-obj-file/m-p/9651549#M15887</guid>
      <dc:creator>kandennti</dc:creator>
      <dc:date>2020-07-23T14:24:22Z</dc:date>
    </item>
  </channel>
</rss>

