sketchucation logo sketchucation
    • Login
    โ„น๏ธ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Intersecting 2 Groups Question

    Scheduled Pinned Locked Moved Developers' Forum
    13 Posts 3 Posters 302 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.
    • TIGT Offline
      TIG Moderator
      last edited by

      http://code.google.com/apis/sketchup/docs/ourdoc/entities.html#intersect_with says 'intersect_with' returns 'nil' always... ๐Ÿ˜•

      TIG

      1 Reply Last reply Reply Quote 0
      • K Offline
        kyyu
        last edited by

        @tig said:

        http://code.google.com/apis/sketchup/docs/ourdoc/entities.html#intersect_with says 'intersect_with' returns 'nil' always... ๐Ÿ˜•

        And we all know the are no mistakes in the API docs. ๐Ÿ˜› But seriously, I know in practice that it's not true. I have a plugin that slices up a solid and add the edges returned each time, into an array. Looks something like this:

        while @x < @total
        	int = intersect_with_plane(plane)
        	int.each do |i|
        		@@cary << i
        	end
        	@x += @inc
        	move_plane(plane, @inc)
        end
        
        def intersect_with_plane(plane)
        	t = Geom;;Transformation.new 
        	int = @@plane_ent.intersect_with(true, plane.transformation, @@ent, t, false, @@g)
        end
        
        1 Reply Last reply Reply Quote 0
        • TIGT Offline
          TIG Moderator
          last edited by

          So you are saying that entities.intersect_with() return the geometry that's added ? ๐Ÿ˜•
          I have tested this and I can confirm that you are correct - geo=entities.intersect_with(.....) will return an array 'geo' of any newly made geometry - in direct contravention of what the API notes say ! ๐Ÿ˜ฎ
          Have you posted a comment in the API section ? ๐Ÿ˜’

          TIG

          1 Reply Last reply Reply Quote 0
          • K Offline
            kyyu
            last edited by

            @tig said:

            So you are saying that entities.intersect_with() return the geometry that's added ? ๐Ÿ˜•
            I have tested this and I can confirm that you are correct - geo=entities.intersect_with(.....) will return an array 'geo' of any newly made geometry - in direct contravention of what the API notes say ! ๐Ÿ˜ฎ
            Have you posted a comment in the API section ? ๐Ÿ˜’

            No I haven't posted a comment. I am a beginner, found the docs very confusing at the beginning and don't take them literally. In the past, I've had to test stuff to see what they actually do. Plus I sometimes figure(or partly figure) out something, then forget it and later have to relearn it. On top of that, I don't have a google account. I may be force to get one someday, but I don't like them trying to link to my youtube account. And some lame stuff they did, when I had google video. If I went and posted "It doesn't always return 'nil'", don't think that would be very useful.

            But I can show proof, with an example. You can use that test file I posted above and move the face group up onto the lines group. Then run this script. In the picture, I've selected the 37 edges that were created. You can see in the ruby console, an array was returned with 37 edges.

            model = Sketchup.active_model
            ent = model.entities
            sel = model.selection
            
            face = (ent.to_a.select {|e| e.is_a? Sketchup;;Group and e.name=="face"})[0]
            lines = (ent.to_a.select {|e| e.is_a? Sketchup;;Group and e.name=="lines"})[0]
            puts face; puts lines
            lent = lines.entities
            fent = face.entities
            tr = Geom;;Transformation.new
            ltr = lines.transformation
            ftr = face.transformation
            int = fent.intersect_with(true, ftr, ent, tr, false, lines)
            puts int
            puts int.class
            puts int.length
            

            int returning an array of edges.png

            1 Reply Last reply Reply Quote 0
            • TIGT Offline
              TIG Moderator
              last edited by

              I posted an anonymous comment in the API.
              Put simply, the entities.intersect_with() method returns an array of the newly created geometry [faces/edges] or 'nil' if there is none, the guide is wrong as it says it returns 'nil' [always].

              TIG

              1 Reply Last reply Reply Quote 0
              • K Offline
                kyyu
                last edited by

                Thanks, TIG. Lots of times, a beginner is not cofident enough to jump in there and make too many comments, even on this forum. Did you still need a google account, to post that anonymous comment in the API?

                1 Reply Last reply Reply Quote 0
                • TIGT Offline
                  TIG Moderator
                  last edited by

                  I do have a Google account... but Google Apps has recently messed around with lots of accounts and settings... so I ended up being 'anonymous' anyway ๐Ÿ˜’

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • jolranJ Offline
                    jolran
                    last edited by

                    Very interesting experiment and find. I wonder how missleading sometimes the API really is?
                    And what reference should beginners use if not the API?

                    1 Reply Last reply Reply Quote 0
                    • TIGT Offline
                      TIG Moderator
                      last edited by

                      Use the API site but read the notes at the ends, as there are many corrections by users...
                      If in doubt ask in the Developers' forum - especially if you think you have found something odd.
                      Test your new tools methods in small steps so you can see what is returned or what is made at each step...

                      TIG

                      1 Reply Last reply Reply Quote 0
                      • jolranJ Offline
                        jolran
                        last edited by

                        OK. thanks. I have missed the notes part.

                        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