sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Material is deleted when cloning

    Scheduled Pinned Locked Moved Developers' Forum
    13 Posts 3 Posters 428 Views 3 Watching
    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.
    • Dan RathbunD Offline
      Dan Rathbun
      last edited by

      I just did the following in SU2014 and got a SPLAT!

      Choose a material that is not in the model.
      Open console.
      test = Sketchup.active_model.materials.current test.name
      Choose a material that IS in the model.
      test2 = Sketchup.active_model.materials.current test2.name
      Everything is fine.
      Now,.. try to get the name of the previous material.
      test.name
      -- > SPLAT

      I'm not here much anymore.

      1 Reply Last reply Reply Quote 0
      • Dan RathbunD Offline
        Dan Rathbun
        last edited by

        Anyway. save the name of the material, and perhaps also it's texture filepath, if it is not yet IN the model.

        Test any material reference for validity before using it. If there is no current material nil may be returned, which evaluates as false.

        if matl && matl.is_a?(Sketchup;;Material)
          # go ahead and use the matl reference in code
          matl_set = Sketchup.active_model.materials
          if matl_set.include?(matl)
            # do something
          end
        end
        

        I'm not here much anymore.

        1 Reply Last reply Reply Quote 0
        • Dan RathbunD Offline
          Dan Rathbun
          last edited by

          The Ruby methods clone and dup, do NOT yet work upon SketchUp API classes.

          We discussed this in previous topics:

          • Clone PolygonMesh
          • Face.clone
          • Re: Temporarility Changing Materials

          I'm not here much anymore.

          1 Reply Last reply Reply Quote 0
          • M Offline
            Marc477
            last edited by

            Thank you, I fixed my problem by processing only materials used in the model:

            
            aMat = Sketchup.active_model.materials.current
            if aMat != nil and Sketchup.active_model.materials.include?(aMat)
               ...
            end
            
            
            
            1 Reply Last reply Reply Quote 0
            • tt_suT Offline
              tt_su
              last edited by

              @dan rathbun said:

              The Ruby methods clone and dup, do NOT yet work upon SketchUp API classes.

              We should improve this. But they would not make sense for Entity based classes as instances are persistent and have to be created via entity.add_*.

              1 Reply Last reply Reply Quote 0
              • tt_suT Offline
                tt_su
                last edited by

                @dan rathbun said:

                I just did the following in SU2014 and got a SPLAT!

                Choose a material that is not in the model.
                Open console.
                test = Sketchup.active_model.materials.current test.name
                Choose a material that IS in the model.
                test2 = Sketchup.active_model.materials.current test2.name
                Everything is fine.
                Now,.. try to get the name of the previous material.
                test.name
                -- > SPLAT

                I cannot reproduce this. Did you submit the splat? Did you include any info I can use to look it up?
                Do you see this consistently? (Can you do a video recording?)

                1 Reply Last reply Reply Quote 0
                • Dan RathbunD Offline
                  Dan Rathbun
                  last edited by

                  I do think I sent in the Splat Report.

                  I do not have video capture software installed (unless it comes with Windows 7?)

                  This was 2 weeks ago... I haven't tried since.

                  I'm not here much anymore.

                  1 Reply Last reply Reply Quote 0
                  • tt_suT Offline
                    tt_su
                    last edited by

                    Did you enter any details into the BugSplat? (So we can search for it.)

                    1 Reply Last reply Reply Quote 0
                    • Dan RathbunD Offline
                      Dan Rathbun
                      last edited by

                      I entered the steps that caused the splat, and then copied from the splat dialog, into the above SCF report.

                      I'm not here much anymore.

                      1 Reply Last reply Reply Quote 0
                      • tt_suT Offline
                        tt_su
                        last edited by

                        SU2014 Win?

                        1 Reply Last reply Reply Quote 0
                        • tt_suT Offline
                          tt_su
                          last edited by

                          Ah! Found the crash report. And I realized I'd overlooked the last step in your instructions - accessing the name of the first material after it was not current any more. It's another bug where Ruby is allowed to get a handle to a transient material. I'm logging a new issue.

                          1 Reply Last reply Reply Quote 0
                          • Dan RathbunD Offline
                            Dan Rathbun
                            last edited by

                            @tt_su said:

                            Ah! Found the crash report. ... I'm logging a new issue.

                            👍

                            I'm not here much anymore.

                            1 Reply Last reply Reply Quote 0
                            • 1 / 1
                            • First post
                              Last post
                            Buy SketchPlus
                            Buy SUbD
                            Buy WrapR
                            Buy eBook
                            Buy Modelur
                            Buy Vertex Tools
                            Buy SketchCuisine
                            Buy FormFonts

                            Advertisement