• Login
sketchucation logo sketchucation
  • Login
πŸ€‘ SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

[Plugin] Import OBJ with Materials v2.1 20131118

Scheduled Pinned Locked Moved Plugins
279 Posts 87 Posters 378.6k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    TIG Moderator
    last edited by TIG 14 Jul 2009, 23:24

    *(c) TIG 2009-2013 in parts

    obj_importer.rb*

    Note: Based on Jim Foltz's 'obj_import.rb'* AND with Whaat's UVW texture mapping ideas... Many thanks!

    BUT it's now with added materials with opacity/texture, also units
    setting and YZ axes swap dialogs.

    On running it a dialog asks you to select units [pick from list] the
    file uses any 'units' in the .obj's header as the default value,
    if not then default=Inches.

    The vt info in the .obj file is used for UVW texture mapping.
    There's a warning in the console if .obj's .mtl or any texture files
    are missing.
    If the .mtl is missing or incomplete the #default material# is used.
    If a texture file is missing the material's colour/opacity is used.

    The zoom goes to extents at the end.

    A closing dialog asks if you want to swap the YZ axes - Yes/No reply -
    some .obj files are created flipped like that... so if the import
    appears flipped over Yes will right it...
    The 'swap YZ axes' has a one step undo.
    The imported materials and geometry in the OBJ groups is only undoable
    in multi-steps - instead simply erase the OBJ imported groups
    and delete any new materials...

    *** IT CAN TAKE A L_O_N_G TIME TO LOAD A BIG OBJ FILE
    WITH PERHAPS MANY THOUSANDS OF FACES ***
    [perhaps >> 1 minute per Mb ?]

    Sometimes very complex OBJ shapes don't receive their textures at all.
    Some OBJ files have tiny numbers: then faces might not be created:
    if so, retry with larger 'units', you can scale group(s) down afterwards.
    Some OBJ files have tiny face planar discrepancies: then some faces
    might get triangulated to compensate: if so, retry with smaller 'units'
    and scale group(s) up afterwards.
    Some complex files might need a bit of manual healing: they can also
    have erroneous vertices - so it's recommended you use 'Fix Problems'
    accessed from the 'Model Info > Statistics' dialog -
    especially if the result takes a long time to process or
    have divided faces forced to form geometry or if it feels jittery
    when orbiting around the model etc...
    Some complex files with excessive smoothing etc might fail to import.

    View textured results in 'Monochrome' to see any reversed faces...

    Use:

    1. Menu > Plugins > OBJ Importer > Import OBJ [with Textures]
    2.                           > Import OBJ [no Materials]
      
    3.                           > Import OBJ [as Mesh]
      

    Option 1. Imports faces with mapped textures.
    Option 2. Imports faces without materials [but materials added to model].
    Option 3. Imports a mesh without materials [but materials added to model].

    Open the Ruby Console before running to see additional reporting...

    Version:
    1.0 20090714 First release.
    1.1 20090715 Existing Materials re-used/make variant option added.
    Swap Y & Z axes ? Yes/No, option added.
    1.2 20090723 Name changed to 'obj_importer.rb' / 'Import OBJ'
    Proper UV texture mapping added.
    Added dialog geometry & texture mapping Units.
    1.3 20090728 Submenu added with '..no Materials' and '...as Mesh'
    options. Material/usemtl duplicated entries trapped.
    Failure to import geometry - warning message added.
    Scaling errors corrected.
    Model.start_action()...commit_action removed as it was
    causing errors on complex files.
    1.4 20100406 Different format obj file text now accepted.
    1.5 20100816 Missing group in obj trapped [with "g OBJ"].
    1.6 20100825 Negative face indices allowed.
    1.7 20100825 Fill from mesh changes.
    1.8 20100825 Trapped for spaces in image-names/paths.
    1.9 20110223 Errors with occasional reversed faces resolved.
    2.0 20130321 Blender-quads now import as two tri-facets.
    The OBJ file must contain header-text "# Blender" or similar.
    2.1 20131118 Import of OBJ files using a -ve counter for f vertices within
    sub-groups fixed. View now refreshes with each group completion.
    ###PayPalButton
    http://sketchucation.com/resources/pluginstore?pln=obj_importer
    Download from the SketchUcation Plugin Store or AutoInstall using the toolset within SketchUp itself
    http://sketchucation.com/resources/plugin-store-download

    TIG

    1 Reply Last reply Reply Quote 0
    • K Offline
      Khai
      last edited by 14 Jul 2009, 23:31

      hmm a suggestion for a future release would be the option to swap the Z and Y axis on import.

      1 Reply Last reply Reply Quote 0
      • C Offline
        Chris Fullmer
        last edited by 14 Jul 2009, 23:35

        And thanks!

        Lately you've been tan, suspicious for the winter.
        All my Plugins I've written

        1 Reply Last reply Reply Quote 0
        • C Offline
          CadFather
          last edited by 14 Jul 2009, 23:58

          another very useful gem TIG - ThankYou.....

          1 Reply Last reply Reply Quote 0
          • E Offline
            EarthMover
            last edited by 15 Jul 2009, 01:34

            Thanks TIG, this will come in very handy! Thanks to Jim as well for his initial contribution.

            3D Artist at Clearstory 3D Imaging
            Guide Tool at Winning With Sketchup
            Content Creator at Skapeup

            1 Reply Last reply Reply Quote 0
            • M Offline
              MALAISE
              last edited by 15 Jul 2009, 07:58

              Thanks TIG, to enhance Jim's plugin

              Quite useful when having OBJ library.

              MALAISE πŸ‘ πŸ‘

              La Connaissance n'a de valeur que partagΓ©e

              1 Reply Last reply Reply Quote 0
              • R Offline
                richcat
                last edited by 15 Jul 2009, 09:55

                Thanks TIG πŸ‘ & Jim πŸ‘

                1 Reply Last reply Reply Quote 0
                • T Offline
                  TIG Moderator
                  last edited by 15 Jul 2009, 09:57

                  Here's v1.1
                  http://forums.sketchucation.com/viewtopic.php?p=172790#p172790

                  Existing Materials re-used/make variant option added.
                  Swap Y & Z axes ? Yes/No, option added.

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • C Offline
                    Chris Fullmer
                    last edited by 15 Jul 2009, 15:31

                    I'm confused Bagatelo. What are you asking? This is a plugin that will import .obj into SU. The inverse would be an .obj exporter.

                    Chris

                    Lately you've been tan, suspicious for the winter.
                    All my Plugins I've written

                    1 Reply Last reply Reply Quote 0
                    • K Offline
                      Khai
                      last edited by 15 Jul 2009, 15:49

                      @tig said:

                      Here's v1.1
                      http://forums.sketchucation.com/viewtopic.php?p=172790#p172790

                      Existing Materials re-used/make variant option added.
                      Swap Y & Z axes ? Yes/No, option added.

                      thank you!!!!!!!!

                      1 Reply Last reply Reply Quote 0
                      • K Offline
                        Khai
                        last edited by 15 Jul 2009, 17:18

                        okies the Swap Z/Y is working perfectly πŸ˜„

                        the sizing is not atm 😞 (tried importing OBJ's from trueSpace, UVmapper and Hexagon) it's almost there tho...

                        Edit

                        Thanks to the notes inside the Ruby I was able to reset my units to Metres and now things are coming in the right size πŸ˜„

                        1 Reply Last reply Reply Quote 0
                        • W Offline
                          Whaat
                          last edited by 16 Jul 2009, 01:50

                          Hi TIG,

                          I can't quite tell from your description if your script imports UVs correctly. If you are looking to add this feature, I was working on an OBJ importer awhile ago that imported materials and UVs. If you would like the code, let me know and you can have it. I don't think I'll ever get around to releasing it officially.

                          Thanks for another great script!

                          SketchUp Plugins for Professionals

                          1 Reply Last reply Reply Quote 0
                          • T Offline
                            TIG Moderator
                            last edited by 16 Jul 2009, 08:04

                            @whaat said:

                            Hi TIG,

                            I can't quite tell from your description if your script imports UVs correctly. If you are looking to add this feature, I was working on an OBJ importer a while ago that imported materials and UVs. If you would like the code, let me know and you can have it. I don't think I'll ever get around to releasing it officially.

                            Thanks for another great script!

                            My tool imports materials and textures. It doesn't deal with UVs as most of the example OBJs I have didn't have that info in their MTLs. Thus any imported material has it's colour and opacity set correctly, AND also has the correct texture added BUT without any UVs scaling etc - it uses the default 10" square version... However if you already have a pre-existing material with a matching name that has UVs set etc it asks if you want to use it or make a new variant - if you answer Yes it uses the existing material...

                            Am I right in understanding you, that some OBJ/MTLs have UV mapping info ? SUp exported OBJ/MTLs don't seem to ? Please PM me your half-baked UV code and I'll look at incorporating it [with credit to you, as appropriate]... Thanks for the offer.

                            TIG

                            1 Reply Last reply Reply Quote 0
                            • K Offline
                              Khai
                              last edited by 16 Jul 2009, 11:05

                              yup UV information is a core part of the OBJ Format.. makes it very useful for transfering between programs, such as Maya to trueSpace to Max....

                              1 Reply Last reply Reply Quote 0
                              • T Offline
                                TIG Moderator
                                last edited by 16 Jul 2009, 12:43

                                @khai said:

                                yup UV information is a core part of the OBJ Format.. makes it very useful for transfering between programs, such as Maya to trueSpace to Max....

                                Where is it stored in the files ?

                                TIG

                                1 Reply Last reply Reply Quote 0
                                • K Offline
                                  Khai
                                  last edited by 16 Jul 2009, 12:56

                                  I think it's stored as the VT entries.

                                  ah yes here we go

                                  http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/ - Full OBJ Format Spec

                                  @unknownuser said:

                                  vt u v w

                                  Vertex statement for both polygonal and free-form geometry.
                                  
                                  Specifies a texture vertex and its coordinates. A 1D texture
                                  requires only u texture coordinates, a 2D texture requires both u
                                  and v texture coordinates, and a 3D texture requires all three
                                  coordinates.
                                  
                                  u is the value for the horizontal direction of the texture.
                                  
                                  v is an optional argument.
                                  
                                  v is the value for the vertical direction of the texture. The
                                  default is 0.
                                  
                                  w is an optional argument.
                                  
                                  w is a value for the depth of the texture. The default is 0.
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • B Offline
                                    bagatelo
                                    last edited by 16 Jul 2009, 16:06

                                    @chris fullmer said:

                                    I'm confused Bagatelo. What are you asking? This is a plugin that will import .obj into SU. The inverse would be an .obj exporter.

                                    Chris

                                    Yes, I mistake. I have think about EXPORT model with obj file types. But .3ds is very good.

                                    I try to import this model ( http://www.evermotion.org/modelshop/show_product/sculpture-01-am34/1806/0/0/ ) into sketchup and the plugin don't work properly. Export with 3ds Files from MAX result crash in Sketchup.

                                    FBX files maybe can be de very best option.

                                    While the cat's away, the mice will play

                                    1 Reply Last reply Reply Quote 0
                                    • T Offline
                                      TIG Moderator
                                      last edited by 16 Jul 2009, 16:40

                                      @khai said:

                                      I think it's stored as the VT entries.

                                      ah yes here we go

                                      http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/ - Full OBJ Format Spec

                                      @unknownuser said:

                                      vt u v w

                                      Vertex statement for both polygonal and free-form geometry.
                                      
                                      Specifies a texture vertex and its coordinates. A 1D texture
                                      requires only u texture coordinates, a 2D texture requires both u
                                      and v texture coordinates, and a 3D texture requires all three
                                      coordinates.
                                      
                                      u is the value for the horizontal direction of the texture.
                                      
                                      v is an optional argument.
                                      
                                      v is the value for the vertical direction of the texture. The
                                      default is 0.
                                      
                                      w is an optional argument.
                                      
                                      w is a value for the depth of the texture. The default is 0.
                                      

                                      Thanks - I see it now... wait for update...

                                      TIG

                                      1 Reply Last reply Reply Quote 0
                                      • T Offline
                                        TIG Moderator
                                        last edited by 16 Jul 2009, 19:37

                                        @bagatelo said:

                                        @chris fullmer said:

                                        I'm confused Bagatelo. What are you asking? This is a plugin that will import .obj into SU. The inverse would be an .obj exporter.

                                        Chris

                                        Yes, I mistake. I have think about EXPORT model with obj file types. But .3ds is very good.

                                        I try to import this model ( http://www.evermotion.org/modelshop/show_product/sculpture-01-am34/1806/0/0/ ) into sketchup and the plugin don't work properly. Export with 3ds Files from MAX result crash in Sketchup.

                                        FBX files maybe can be de very best option.

                                        Since I'm not going to pay $35 for a model of a small statue I can't see how the actual file is structured - looks like it might be very complex though !!! The current OBJ Importersare quite limited...

                                        TIG

                                        1 Reply Last reply Reply Quote 0
                                        • A Offline
                                          avariant
                                          last edited by 17 Jul 2009, 18:47

                                          Cool, thanks TIG. I've been using Jim's importer for a long time.

                                          One thing I've encountered with materials. You are assuming that the 'd' tag comes after the Kd tag, but it doesn't necessarily. It can show up anywhere in the list. The obj format doesn't require a specific order. So, if 'd' comes first, the plugin is crashing.

                                          1 Reply Last reply Reply Quote 0
                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • 5
                                          • 13
                                          • 14
                                          • 1 / 14
                                          1 / 14
                                          • First post
                                            16/279
                                            Last post
                                          Buy SketchPlus
                                          Buy SUbD
                                          Buy WrapR
                                          Buy eBook
                                          Buy Modelur
                                          Buy Vertex Tools
                                          Buy SketchCuisine
                                          Buy FormFonts

                                          Advertisement