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

[Plugin] 2dBoolean ver1.3.1 beta UPDATE 20 dec 2013

Scheduled Pinned Locked Moved Plugins
88 Posts 8 Posters 48.8k Views 8 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.
  • E Offline
    EarthMover
    last edited by 26 Aug 2011, 00:48

    Very nice Jolran. I'll test it out and give a report back.

    Thank you! πŸ‘

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

    1 Reply Last reply Reply Quote 0
    • J Offline
      jolran
      last edited by 26 Aug 2011, 08:22

      Well. I have found the 1 plugin that cause the crashes. Unfortunately I can't remember where it belongs to.

      It's scrambled so there is no additional info. Anyway ldd.rbs is the name of the file.
      I'll update it in the starting info.

      1 Reply Last reply Reply Quote 0
      • J Offline
        jolran
        last edited by 26 Aug 2011, 08:48

        @unknownuser said:

        You must have a script loading that's messing with the group base class methods ???

        Haven't got a clue yet. I guess the only way is to test where 2dboolean will crash?
        Doing it 'by halves' as you say.

        @unknownuser said:

        I'll test it out and give a report back.

        Please do, Earthmover!

        A part from this tool's bugs and issues, it would be nice to hear reported info about how big file sizes and performances are in a "real life" projects. When using edges instead of materials in Layout and so on.

        1 Reply Last reply Reply Quote 0
        • T Offline
          TIG Moderator
          last edited by 26 Aug 2011, 09:09

          The 'ldd*' greps to Ledas's 'Driving Dimensions', which probably does mess with several base classes, perhaps ill-advisedly - the earlier .rb versions I've seen certainly did! ...
          As far as I can see your tool is not doing anything at all 'awkward' then I suggest that you PM the DD author about this issue...
          I loaded the latest DD with the .rbs files into v7 and it breaks your tool AND my EEbyRails etc and my olde Mirror tool - which also use some group copy code too... So there could be potentially many issues uncovered here πŸ˜’
          I'll PM Dmitry Ushakov...

          TIG

          1 Reply Last reply Reply Quote 0
          • J Offline
            jolran
            last edited by 26 Aug 2011, 10:35

            Well there you go. Driving Dimension it was. If I remember correctly I uninstalled DD because of some crashes, this file must have been left behind. I will update this in the starting page.

            @unknownuser said:

            I'll PM Dmitry Ushakov...

            Yes please. That would be good. I'm sure he would want to know, since it's not breaking only the 2dboolean script.

            Thank you.

            1 Reply Last reply Reply Quote 0
            • J Offline
              jolran
              last edited by 26 Aug 2011, 10:41

              BTW(If you would read this). Is it working for you, Pilou?

              1 Reply Last reply Reply Quote 0
              • P Offline
                pilou
                last edited by 26 Aug 2011, 11:08

                I obtain that with the V6, but I don't very well understood what must be inside the rectangle ? 😳
                An image, a texture, a color...? (here it's a texture)
                Result is on the right
                luddites.jpg

                Frenchy Pilou
                Is beautiful that please without concept!
                My Little site :)

                1 Reply Last reply Reply Quote 0
                • T Offline
                  TIG Moderator
                  last edited by 26 Aug 2011, 11:21

                  In your example the 'face' is the blank top of the box, the 'group' is the face with the grouped 'image' material.
                  Select both then run the tool
                  The result is that the grouped 'image' is trimmed to fit on the select face
                  If the grouped 'image' were smaller and arrayed like tiles then the whole lot would would be trimmed...like this Capture.PNG

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • J Offline
                    jolran
                    last edited by 26 Aug 2011, 12:56

                    Ok. I should have made a better tutorial about this. Sorry 😳 .

                    Tig has illustrated the whole purpose of the tool.

                    It might not be clear WHY use this tool when you visually can get the same result from a material IN Sketchup. BUT when used with Layout to simulate vector color and edges, for printing you will get much more precision in quality.
                    And edges can be used with styles. So some pretty nice sketchy effects can be made.

                    This tool wasent originaly designed to use whole faces to texture and color things, it's an intersect tool for edgepatterns.
                    From that perspective, modeling all those edge-patterns each time can be very tedious, so hence this tool..

                    The main difference compared to Sketchups internal intersect tool is that the face materials are kept, by turning them into a cutting component.

                    I'm experiencing a little inconsistency in the intersections(you can call it a bug), so I will have a look at that.
                    Faces with holes dont get erased at times.

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      pilou
                      last edited by 26 Aug 2011, 13:20

                      πŸ’š
                      So I have made the exact inverse πŸ˜„
                      Now all works like a charm in the V6! πŸ‘
                      Bravo! 😎
                      Except you have created a group (the initial group floating in the space with texture in my case now empty but always present! )
                      that you must kill after the process!
                      You can only kill it with the Outliner! 😲

                      luddites_bis.jpg

                      Frenchy Pilou
                      Is beautiful that please without concept!
                      My Little site :)

                      1 Reply Last reply Reply Quote 0
                      • J Offline
                        jolran
                        last edited by 26 Aug 2011, 15:10

                        Nice Pilou. From judging at your pictures, that is the desired behavior of the plugin.

                        What do you mean exactly? There is a group I have forgoten to delete? 😲 Or maybe that you cannot select the component, except then in the outliner? The second alternativ was corrected by defn.invalidate_bounds.
                        But maybe that method doesent work on SU6. Do you have this problem on all su versions?

                        If you doubleclick the component in the outliner (to enter the group) and then exit again, the boundingbox will be reset.
                        But that is just a workaround if this method doesent work on older su versions.

                        Thanks for the feedback Pilou πŸ‘
                        Please test in on holes and such.. It should work on all standard axis(Su views), but sometimes it fails on "in between" angles. I'm working on a solution to resque if the calculation fails.

                        1 Reply Last reply Reply Quote 0
                        • T Offline
                          TIG Moderator
                          last edited by 26 Aug 2011, 15:31

                          If you have an 'empty' group [or definition] that's been made or just emptied within a start/commit block, then it should be auto-deleted at the 'commit' [this is also a way to remove just one definition from the model - empty its entities...] πŸ€“

                          TIG

                          1 Reply Last reply Reply Quote 0
                          • J Offline
                            jolran
                            last edited by 26 Aug 2011, 16:57

                            I did not know that. Good info. Garbage collection? Well in this case all the groups and defs are made within the block, so all good? Of course the group or definition would have to empty..

                            1 Reply Last reply Reply Quote 0
                            • T Offline
                              TIG Moderator
                              last edited by 26 Aug 2011, 17:29

                              Of course if you have references to the groups etc then a simple group.erase! or inside a start/commit block the group.entities.erase_entities(group.entities.to_a) will both remove that one group [or instance OR definition when entities go!]... or groups[0]/parent.entities.erase_entities(groups) [where 'groups' is an array of all temporary groups]... will all work !

                              TIG

                              1 Reply Last reply Reply Quote 0
                              • J Offline
                                jolran
                                last edited by 26 Aug 2011, 18:47

                                Cool. So you can erase the group by erasing it's entities while inside a start/commit block? That could be useful, thanks.

                                1 Reply Last reply Reply Quote 0
                                • J Offline
                                  jolran
                                  last edited by 27 Aug 2011, 14:34

                                  Small update. Now If you have a component that have gluing behavior you don't have to select a face to run the plugin. I noticed you run into situations quite often where that is needed. Like when the face is covered and you can not select it. πŸ˜„

                                  This will not work with groups.

                                  1 Reply Last reply Reply Quote 0
                                  • J Offline
                                    jolran
                                    last edited by 27 Aug 2011, 18:53

                                    I think I know why faces in holes don't get erased.

                                    Face.classify point only deals with points/vertices. So if there is a face in a hole inside the face(inner edge loop). Erasing the vertices from face.classify point outside(holes included) does not erase the face in the hole at all times πŸ˜•

                                    Don't know how to solve that one yet.. But at least I know what's wrong.

                                    I reckon the plugin is kinda useless, unless I fix this. So it's got high priority now.

                                    1 Reply Last reply Reply Quote 0
                                    • J Offline
                                      jolran
                                      last edited by 28 Aug 2011, 09:27

                                      I think I am close fixing this hole problem.

                                      So I have made a collection of verticies(from face.clone) That binds the innerloops in faceclone(faces to go)

                                      I want to use that collection to erase the faces in the boolean group.
                                      This does not work 😞

                                      (@verts=vertex collection) need to be instance variable or it will get deleted..

                                      cents.to_a.each{|e| 
                                      		       if e.class==Sketchup;;Face and e.outer.loop==@verts.loops
                                      		          gp2faces2 << e
                                      			  end
                                      			}           
                                      			
                                      			cents.erase_entities(gp2faces2)
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • T Offline
                                        TIG Moderator
                                        last edited by 28 Aug 2011, 09:35

                                        @verts is an array ?
                                        e.outer.loop==@verts.loops won't work as an array doesn't have a '.loops' method ??
                                        e.outer.loop==@verts[0].loops[0] might if there's only one loop ???
                                        @verts[0].loops.include?(e.outer.loop) might otherwise ????
                                        Not sure... as you posted 'clipped code'...

                                        TIG

                                        1 Reply Last reply Reply Quote 0
                                        • J Offline
                                          jolran
                                          last edited by 28 Aug 2011, 13:04

                                          Sorry my post was unclear and made in a hurry 😳

                                          Yes it's an array of face.vertices. The one from face.clone, faces to go.

                                          I suppose there are multiple ways of achieving what I want. But I have failed so far.
                                          Will try some combination of @verts[0.loops.include?(e.outer.loop)] as you suggest, see what happends.
                                          There could be scenarios where the faces has multiple "holes", so e.outer.loop==@verts[0.loops[0]] might not work.

                                          Thank you TIG.
                                          Off to try!

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

                                          Advertisement