[disclaimer- longwinded post coming up.. hope you all don't mind ]
hey Fredo,
i previously hoped the tension adjustments would do the trick but unfortunately, no.
from the model you posted:
kink.jpg
you can see one of the kinks created in that picture.. i should also add that i don't think lofting is really what i'm after.. especially when considering the example skp i've been posting is simplified in that the adjacent surfaces are flat when in actuality, they're often curved as well. i think it's more of a skinning feature i'm into.
i should add though, from your video, all is looking good from the view you're showing until you click on the left section and make it one segment.. that's when the kink happens but for my purposes, i would have to have the ability to make that wall flat as you've done.. further in this post, i get more in to it but it seems like when that wall flattens, the adjacent one should adjust accordingly
in the picture, notice the 'flatwall' and 'waterfall' labels.. the problem (well, not the problem with your plugin or anyone else's) i have with all the available surfacing plugins is that they do not consider what's happening with the adjacent surfaces.. they only pay attention to the outer rails/profiles of the 'patch'.. what i'm trying to do is fill in the waterfall section with a surface that maintains tangency to the flatwall throughout the blend (ie- every spline used throughout the blend is tangent to it's corresponding blend point).. i think one problem i have when discussing this is that i view the sketchup model as guidelines to a hidden structure.. here's the basic looking framing i do and it's this i see when looking at these models.. as in, i actually see each individual spline as these curved 2bys
frame2.jpg
frame1.jpg
in those pictures, every row of ribs maintains tangency/curvature continuity throughout.. thing is, all the blends are radius based and i've been doing radii for 20 years .. sort of getting bored with them not to mention they're somewhat limiting design wise..
i'd like to get into more complex surfacing and that's the reason i've been learning rhino but when it comes down to it, i love sketchup and prefer it for a number of reasons over rhino.. what i can't really understand though is that seemingly most of rhino's horsepower is based around making these types of blends possible and accurate, but, nobody in the sketchup community that i've seen (and i mean nobody ) has ever voiced a desire to make these things happen within sketchup.. i often see people wishing for nurbsketchup but i haven't really figured out why because this is the type of stuff nurbs is good for.. [but more likely than not, people do want this stuff in sketchup but i'm just bad at describing things so no one is ever like 'oh yeah, that would be sweet!" ]
i made a couple of videos which i think are simplified to the point of me being able to describe this stuff visually instead of trying to type it into words..
in the videos, the adjacent surfaces are flat planes and all of the curves are arcs.. the white surface represents the blend and the blue are the adjacent surfaces. (i'm using arcs and flat planes for this example because i think they're much easier to wrap your head around the geometry as opposed to the bezier curves into round walls that i'm hoping to represent)
the first video is supposed to represent the actions of current sketchup surfacing capabilities. the 'patch' will be thrown in there regardless of what the blue surfaces' orientation is.. if the radius of the arc changes, it will bulge out or fold in regardless of if it maintains tangency or not..
the second video shows the patch respecting the adjacent surfaces and always maintaining tangency regardless of the arc's radius.. tangency wise, this is more of the behavior i'm after..
since the examples are arcs and tangency is being maintained throughout, the flat planes must adjust in width in order to allow continuity.. basically, what i'm trying to accomplish, is to not allow the blue surface to change and place them in less accommodating positions.. positions where arcs no longer work and require a complex curve to create the blend while maintaining smoothness throughout the entire structure..
with the example i gave in my previous post, that's pretty much what i've accomplished by drawing templates for the splines' control points using the adjacent surfaces.. those templates ensure the whole surface acts as one instead of dividing it up into multiple parts and each section freely moves with no restraint to the other sections..
but hey, like i said in my previous post, I'm hyped!.. your bezier spline plugin makes it possible to do what i'm talking about here.. albeit, sort of a tedious process but that's a process that forces me to get into the meat of what i'm drawing and hopefully i'll learn a lot about the math behind those curves by drawing these types of blends curve by curve.. if i'm hoping for anything here, it's that i'll learn a lot about these types of blends at the root level and then, after a year or two of doing that, a plugin will be developed that automates much of it for me..
Please, register (free) to access all the attachments on the forums.
Actually, I did cover the case in the initial version of Curviloft where I had 2 Bezier methods. The Method 2 was for using the contour planes to detremine tangency at boundaries of junction. I dropped it when introducing the Orthogonal methods.
I will reinstate the method 2 in a next release. I should also try to make the orthogonal methods work properly in case of S-Curves.
In the mean time here is the result of this Bezier method 2
JHCurviloft3 - Fredo - Bezier Method 2.gif
JH_curviloft3 - Fredo - Bezier method 2.skp
Fredo
PS: I can't make a new release of Curviloft immediately, as I am working on the Loft Along module. If you wish to test in the meanwhile, you can drop the two attached files in the CURVILOFT_Dir_10 folder
CurviloftPalette.rb
CurviloftSpline.rb
Please, register (free) to access all the attachments on the forums.
I think both expressions are right. Now it's a mathematical Question. Theoretically, all bugs can be found. This would require all possible geometric cases are tried with the tool. The problem is to find all the possibilities and the time needed for it. Therefore, it is impossible not to find a bug. This problem is found with any software.
Charly
More dangerous than ignorance is the illusion of knowledge
Anyone can do that, it is very easy. Draw any profile you want, make it a group and copy it several times as shown in the picture below. A further possibility is to move the profiles horizontally or vertically. So you can then try all possible combinations with Curviloft. The imagination knows no boundaries. The possibilities are endless.
Charly
Please, register (free) to access all the attachments on the forums.
Last edited by charly2008 on Mon Aug 30, 2010 6:17 pm, edited 3 times in total.
More dangerous than ignorance is the illusion of knowledge
bezier method 2 is exactly what i was talking about.. very impressive! [which has me wondering.. how many other little ruby experiments do you have laying around on your hard drives ] please include that method in subsequent curviloft releases.
mariocha wrote:Some feedback; the "new" CurviLoftSpline.rb seems to go in an endless loop here. No result. Tried the previous one, works ok.
the newly added method is the one with the arrow pointing to it in this screenshot.. i dunno, i'm not experiencing any looping with it.. maybe upload a .skp showing the problem?
screen 3.jpg
Please, register (free) to access all the attachments on the forums.
Jeff, how do you dock Ruby toolbar buttons to the main toolbar in OSX SU? When I looked at it on my Mac I thought I only had the native buttons available...
thomthom wrote:Jeff, how do you dock Ruby toolbar buttons to the main toolbar in OSX SU? When I looked at it on my Mac I thought I only had the native buttons available...
right click on an empty space of the toolbar then choose 'customize toolbar'.. all of your icons will be available and can be placed up there individually.. (this goes for all osx apps btw)
one thing to note when doing this in sketchup: when you quit sketchup, your custom toolbar will be saved however, when you relaunch, only the native google icons will be up there.. ⌘N (File-> New) will give you a new window and your custom layout with 3rd party plugin icons will appear.. i think it's something to do with when the icons are initialized.. the google ones happen during launch prior to the window being shown whereas the plugins folder is accessed later during launch ?
[edit - i should note as well that google's sandbox tools exhibit the same behavior at the 3rd party plugins so it's not as if they have a certain snip of code allowing them to be accessed earlier.. it's the standard google toolset, views, render style etc.. that will remain upon a fresh launch..
also, if you want to remove icons from the toolbar during customization, just drag them off the toolbar and drop them anywhere else on screen.. they'll poof]
edit2 - oh, here's a post from last year where i made a video showing the customization process: viewtopic.php?p=162762#p162762
Minor issue I've discovered, and perhaps it's caused by my improper application of the plugin. I get reversed surfaces between rails/curves that make up the object to be lofted. I wouldn't mind so much, except that the surface does not remain divided by the rails, so I have to flip a few hundred faces by hand for each reversed area using "view hidden geometry" to make the faces selectable. Example of the output below. Anything I can do or suggestions as to how to prevent this?
seat.jpg
Thanks big time for the plugin, it's really put SU on a whole 'nuther level. I'm finally able to do some modeling I really didn't know how to do in SU before.
Please, register (free) to access all the attachments on the forums.
EscapeArtist wrote:Minor issue I've discovered, and perhaps it's caused by my improper application of the plugin. I get reversed surfaces between rails/curves (...)
Double click on the group for edit, select the surface, then right click and select "orient faces".
EscapeArtist wrote:Minor issue I've discovered, and perhaps it's caused by my improper application of the plugin. I get reversed surfaces between rails/curves that make up the object to be lofted. I wouldn't mind so much, except that the surface does not remain divided by the rails, so I have to flip a few hundred faces by hand for each reversed area using "view hidden geometry" to make the faces selectable. Example of the output below. Anything I can do or suggestions as to how to prevent this?
seat.jpg
Thanks big time for the plugin, it's really put SU on a whole 'nuther level. I'm finally able to do some modeling I really didn't know how to do in SU before.
It should orient faces to be all the same... BIT even then this isn't too problematical... Temporarily View > Hidden Lines 'On'. Edit the Group. Select one face that is correctly oriented, right-click 'Orient' - all connected faces as flipped to match it. Done! [Perhaps View > Hidden Lines 'Off' if desired]
TIG wrote:It should orient faces to be all the same... BIT even then this isn't too problematical... Temporarily View > Hidden Lines 'On'. Edit the Group. Select one face that is correctly oriented, right-click 'Orient' - all connected faces as flipped to match it. Done! [Perhaps View > Hidden Lines 'Off' if desired]
Thanks for the reply. I suppose that this is one of those things in the "D'Oh! Thread" that I missed. Yet another tip that would have saved me tons of time had I known about it before!
As advised by Daniel and TIG, you should use Orient Face to get them all oriented the same way. It is on my list to improve the generation of geometry for Skinning so that all faces are oriented correctly. It is actually not so simple, because one portion of skin can be connected to more than one other.
I'm sure you've already found it... but in my similar scripts they can 'orient' faces consistently using my 'orient_faces' method [that is published around here somewhere and incorporated in modified forms in these tools]. As long as the created edges have no more than two faces you can consistently 'orient' them all to match even if the mesh 'flips' at some points - they might ALL be made the wrong way round compared to what the user expects... but then a simple reverse fixes them all in one go [I also do tricks like assume the topmost face faces upwards and use that to orient the set from - but that's not foolproof either... open shells might concave OR convex!]
The main problem with have with the SU API is that there is no Bulk methods to work on a set of elements for Smoothing, Reversing, Orienting, etc.... (whereas these methods exist in the natural GUI). As a result, doing it by program results in long response time, even longer that to generate the basic mesh geometry. We could ask the SU Google Team to add these methods in a next version, but you know there is no guarantee.
For face orientation, my plan is to calculate the orientation in the algorithm itself (based on the ordering of points in the Geom::PolygonMesh construction).
For the time being, I consider this is not a critical issue for the user, because s/he can always orient, reverse and smoothen instantly the face mesh, even complex, via the native SU GUI (of course, Orient Face should be more known). I assume that users need Curviloft occasionally and do not need to generate 20 meshes by minutes.
I just tried the Skinning feature. At first I thought it failed to create the mesh - but then I realised it had created it, just not in the current context. I was working on some curves inside a component with Hide Rest of Model enabled - so I did not see the mesh getting created.