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

    [Plugin] Simple Loft alpha 0.1b -- UPDATED May-15-09

    Scheduled Pinned Locked Moved Plugins
    251 Posts 88 Posters 148.7k Views 88 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.
    • A Offline
      AcesHigh
      last edited by

      @chris fullmer said:

      So hopefully over the next year or so I'll get a full version released. But I make no promises.

      Chris

      you mean... by 2010???? 😢 😢

      and I was thinking it would be like... next month...

      1 Reply Last reply Reply Quote 0
      • R Offline
        remus
        last edited by

        Theyre very time consuming things, these ruby scripts.

        http://remusrendering.wordpress.com/

        1 Reply Last reply Reply Quote 0
        • Chris FullmerC Offline
          Chris Fullmer
          last edited by

          If I had your math brain Remus, it might be easier. And in fact, what I have in mind to implement should simplify some of the script, while exponenetially increasing the "awesomeness" of it. But seriously, I have to learn some math first.

          And I'm sorry I haven't released the version that accepts splines of any amount of segments. Its still being worked on.....grrrr

          Chris

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

          1 Reply Last reply Reply Quote 0
          • P Offline
            pr0
            last edited by

            Guys, don't know what to tell you, the combination of working plugins by the community especially this one!! and the free transform 2 tools make sketchup more powerful than 3ds max and hopefully soon even rhino. I can't believe it, thanks alot!

            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              @chris fullmer said:

              If I had your math brain Remus, it might be easier.

              Theehee! I just had an image of me and Chris as zombies drooling over Remus' brain. Braaaaaaain! Maaaath-Braaaaaaain!

              Thomas Thomassen — SketchUp Monkey & Coding addict
              List of my plugins and link to the CookieWare fund

              1 Reply Last reply Reply Quote 0
              • S Offline
                silver_shadow
                last edited by

                Great stuff
                What you should look at is this.
                Can you try to let the plugin look for the highest amount of divisions in the selection, say you have 3 curves.
                one has 25 divisions the next one has 10 and the third one has 6. Now instead of going manually of dividing those other curves to 25 divisions, it should re divide those other curves to match the 25 which is the most.

                or

                can someone make a plugin that recognizes a welded line and re divide it. on second thought..its kind of an impossible one request lol

                Pretty cool plugin i must say.

                1 Reply Last reply Reply Quote 0
                • P Offline
                  pibuz
                  last edited by

                  Thank you Chris.
                  This is simply amazing. You're really turning Sketchy into a professional tool.

                  The version Google releases should be called "Google almost-Pro"... 😒

                  GREAT WORK!

                  WEB (ita) - https://filipposcarso.wixsite.com/ordinentropico

                  1 Reply Last reply Reply Quote 0
                  • Chris FullmerC Offline
                    Chris Fullmer
                    last edited by

                    Thanks everyone! Silver, that is what my first idea was, but when I got into programming it, but then I decided to make each spline transpose its endpoints onto each other line. Its has a few added benefits, but its essentially the same idea. And I've got it working.

                    Tig, I think what I've done is similar to what you're showing there - except I have not got it erasing coplanar faces yet. This new overkill method of adding segments is creating so much more geometry than before that it is becoming VERY slow. Checking for coplanar faces at this point might not be desirable.

                    So its working with varying segments counts. Just every once in a while, it will encounter something that will break it. And I haven't quite put my finger on what the problem is. Because I've done some very complex shapes that work, then I'll try something more simple and it won't work. And I play around with it and determine it to be one of the splines will crash it for no apparent reason. So once I figure that out, I'll release it. With a sweet new icon from Free Agent!

                    Chris

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

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

                      Deleting coplanar edges is relatively quick - it just sorts the edges that are dispensable...

                      ### assumes you have made the faces and now have an array of these new edges called 'edges' - that's all that needs checking.
                      edges.each{|e|
                        if e.faces.length == 0 ### for some reason it hasn't faced !!!
                          e.erase! if e.valid?
                        elsif e.faces.length == 2
                          if (e.faces[0].normal == e.faces[1].normal or e.faces[0].normal == Geom;;Vector3d.linear_combination(-1,e.faces[1].normal,1,[0,0,0])) and e.faces[0].material == e.faces[1].material
                            ### you'll probably not need the material check, as it's all new stuff, but it's useful generally so that materials' dividing coplanar edges aren't removed...
                            e.erase! if e.valid?
                          end
                        end
                      }
                      

                      Quickest way without 'a safety-net' is...

                      edges.each|e|e.erase! if e.valid? and e.faces.length==2 and (e.faces[0].normal==e.faces[1].normal or e.faces[0].normal==Geom;;Vector3d.linear_combination(-1,e.faces[1].normal,1,[0,0,0]))
                      ###
                      

                      TIG

                      1 Reply Last reply Reply Quote 0
                      • A Offline
                        AcesHigh
                        last edited by

                        You ruby geniuses should work together in creating ruby awesomeness... speeding up plugin creation... you know... like a softhouse... haha, I have no idea on the workflow of writing rubies, I am just daydreaming 😄

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

                          created with simple loft

                          The grass is always GREENER on the roof.

                          1 Reply Last reply Reply Quote 0
                          • D Offline
                            driven
                            last edited by

                            Hi Chris,

                            I've been having real problems trying to download this for hours, do I need special permissions for your stuff?

                            I can download everything else I've tried today?

                            cheers
                            john

                            learn from the mistakes of others, you may not live long enough to make them all yourself...

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

                              My thinking for joining curves with unequal numbers of edges is this:
                              [list]Let's say curve1 has 3 edges and curve2 has 4 edges
                              Split (divide) each of curve1's edges into 4 equal bits
                              Split (divide) each of curve2's edges into 3 equal bits
                              Taking the pairs of vertices for curve1 and curve2 starting at the same end (find curve1's ends and then pair curve2 start with the nearer of curve1's ends) make edges between the vertices pairs, make diagonals between pairs with one offset so face is triangulated...
                              Use find_faces on the edges and you should now have a form
                              Smooth and erase coplanar edges...HandStichedCurves.jpg

                              TIG

                              1 Reply Last reply Reply Quote 0
                              • Chris FullmerC Offline
                                Chris Fullmer
                                last edited by

                                Nope John, my stuff is just the same as everyone else'e. I don't know why it doesn't ever seem to work for you. If you don't get it downloaded, I can email you a copy later.

                                Chris

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

                                1 Reply Last reply Reply Quote 0
                                • D Offline
                                  driven
                                  last edited by

                                  Still no joy, tried all sort of things from this end, so if you can forward that's great,

                                  I took advantage of selectbylength with xformclone to make a quick, low poly candy-stripe pole and then animate it spinning..link over on that topic..

                                  cheers

                                  john

                                  learn from the mistakes of others, you may not live long enough to make them all yourself...

                                  1 Reply Last reply Reply Quote 0
                                  • I Offline
                                    ideas_arte
                                    last edited by

                                    incredible…. a million thanks..!

                                    😍 😍 😍

                                    1 Reply Last reply Reply Quote 0
                                    • utilerU Offline
                                      utiler
                                      last edited by

                                      This looks like a tutorial subject.....
                                      RoomDivider-SangHoonKim.jpg
                                      http://www.contemporist.com/2009/05/23/the-phenomena-room-divider-by-sang-hoon-kim/

                                      purpose/expression/purpose/....

                                      1 Reply Last reply Reply Quote 0
                                      • A Offline
                                        August
                                        last edited by

                                        Hi Chris,

                                        Echoing everyone else: Sweet tool!

                                        I have some questions based on the sample video and other examples that folks have posted. The feeling I keep getting is that for any set of curves, there is a range of possible solutions that could be the desired result from those curves and it's not clear how the tool decides what to do.

                                        Certainly, like making a Raku pot, one can just keep trying until something nice results, but this algorithm is not random and it would be nice to have an idea of the parameters to be able to predict what the results might be like in a broad sense.

                                        You seem to be making some assumptions about the angle of the surface as it meets the curves. For instance, in the video, you show two curves first connected by 1 segments, resulting in lines, then connected by 10 segments, resulting in Bezier curves. In that example, it looks as if the tool attempts to have the Bezier curves perpendicular (Blue-parallel) at their ends, but other examples where the curves are a bit more staggered in their alignment, the ends of the Beziers are clearly at an angle.

                                        How is that angle determined? There is clearly something a bit complex going on.

                                        In the example with the pleated curtain top and the simple curve at the bottom, when you introduce the middle curve, the surface goes down from the pleats and meets the middle curve smoothly and then in the lower half the pleats reappear and disappear again by the time the surface reaches the bottom curve.

                                        Personally, I would not have predicted from any of the previous examples that the pleats would reappear in the bottom half. But they do, and clearly that is a result of the angle assumptions that you are making. Might there be settings that would restrict the pleats to only appear in the top half, or is the connection in the lower half between the two non-pleated curves likely to be always pleated because the top half is pleated?

                                        The pleats also seem to ripple in the alternate direction from the top half, again because of some assumptions of smoothness and angles being "transmitted" across the middle curve. If there were two intermediate curves, would the middle section have pleats opposite the top section and the bottom section have pleats pointing the same way as the top? From what I see, I think so.

                                        The result of this transmission of the pleating across the smooth curve makes the result seem more like the folds of a bamboo or reed mat or curtain rather than fabric. Fabric would never have those reverse pleats but a bamboo mat, by it's having more stiffness in one direction than the other, would certainly "transmit" the pleats across the middle curve.

                                        This also gets to the heart of a question that was raised about joining two surfaces as an alternative to using closed curves. On 5/15, watkins posted an image of a bowl or flange shape (Full Bowl) that had circular top and and bottom and about 5 hours later showed the results of trying to use half circles to create the same shape. (Half bowl) As watkins said, "The edges are not suitable for joining."

                                        Would the half-bowl be suitable for joining if straight extensions were added to each end of each half-circle curve and then the last column of facets deleted after generating the loft surface? Always? Only under certain circumstances?

                                        Whether it is always or only sometimes depends on the details of what the algorithm is doing, the assumptions it makes about how it positions the Bezier curves and the angles with which those curves meet the original curves. That is what I'm asking about.

                                        Can you clarify?

                                        I hope this helps,
                                        August

                                        “An idea, like a ghost, must be spoken to a little before it will explain itself.”
                                        [floatr:v1mcbde2]-- Charles Dickens[/floatr:v1mcbde2]

                                        1 Reply Last reply Reply Quote 0
                                        • Chris FullmerC Offline
                                          Chris Fullmer
                                          last edited by

                                          @august said:

                                          it's not clear how the tool decides what to do

                                          Perfect, its a trade secret!

                                          Just kidding. I'll try to explain the process I wen through to get the curves working how they are. This should clear up a few things.

                                          The curves I use are bezier curves. You'll need to think of each curve as 4 points, much like Adobe's pen tool. A start point, a start handle, an end point and a handle for the endpoint.

                                          With just 2 splines, I take the centerpoint of each collective spline. Then get the vector between those 2 centerpoints. That is the vector I use on each vertex to find the handle point - just follow the vector 1/2 the distance to the other point that the curve will connect to.

                                          Hmm, it all sounds more complex than it is. I probably will have to do a video to show the workings of it.

                                          I can also say that the reason that the version with 1 segment does not have a curve is that, well, it does have a curve. Its still using the curve calculation, but its only finding the first and last point and drawing straight lines between them. So you can't see any of the curve. If you choose 2 segments and then do it again useing 10 segments, you'll see that the middle point that is created on the 2 segment version will match the middle point on the 10 segment curve.

                                          I'm sure that doesn't answer all the questions. But I'm also not entirely sure what all the questions are. Do you just want to understand how the curves are working? THat is what I think you're asking. I'll just have to do a video to explain that I think. I'll see if I can get one done in the next few days.

                                          Chris

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

                                          1 Reply Last reply Reply Quote 0
                                          • erikBE Offline
                                            erikB
                                            last edited by

                                            great tool !!
                                            Thanks chris

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 5
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 12
                                            • 13
                                            • 7 / 13
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement