Shape Bender - preview
-
OH yeah, @Daniel, yes, it should work just fine on a line drawn on a face like in your example. I'm pretty sure that will work. The line and curve selection and reversal portion of the script is pretty stable. I put a lot of time on that while I was sitting around, completely unable to figure out the bending function
-
Wow Chris, very exciting! It's awesome to see this kind of talent! Can't wait for it's release!
-
If you explode a group and then regroup its entities immediately then that new group's orientation is square to the world axes. If it's an instance then explode and group it's entities, ditto ?
Alternatively an instance's transformation could be applied to your cutting plane(s) (face?)...
A transformation includes the scaling ? Exploding it freezes the geometry entities with the previous scaling as if they were drawn in the world originally ??
.
-
@tig said:
If you explode a group and then regroup its entities immediately then that new group's orientation is square to the world axes. If it's an instance then explode and group it's entities, ditto ?
I never tried it because I presumed that it would run into errors if the group was inadvertently touching other objects. I didn't SU to do any auto breaking and joining of edges and faces, thereby messing up my selection set. If the group is laid directly on top of the line it is aligned to, if I explode the group, will that line interfere? I'll play with it and see what kind of results I can expect.
@tig said:
Alternatively an instance's transformation could be applied to your cutting plane(s) (face?)...
Aha! I bet I could figure that out. My intent was to make it so it could occur on any axis, with any group/component. I think that I could transform the plane to be perpendicular the original line's orientation, then line it up and transform it to meet the groups transformation....Sounds do-able.
@tig said:
A transformation includes the scaling ? Exploding it freezes the geometry entities with the previous scaling as if they were drawn in the world originally ??
I think this is where I'll begin, is by trying to explode and re-group to force the component to align to the world axis. It would save me some headaches at this stage, but it would be an improvement over the current condition where the user has to do it manually.
Great ideas TIG, you've been a huge help to me with these scripts,
Chris
-
@unknownuser said:
I never tried it because I presumed that it would run into errors if the group was inadvertently touching other objects. I didn't SU to do any auto breaking and joining of edges and faces, thereby messing up my selection set.
If you group the selection of raw geometry it should be 'orthogonal' to the axes anyway. Or if it's a rotated/scaled group/instance then make a group containing that and then explode it - the new contents of the 'parent' group entities never get 'loose' either ???
-
@tig said:
Or if it's a rotated/scaled group/instance then make a group containing that and then explode it - the new contents of the 'parent' group entities never get 'loose' either ???
Ahh, I think that is a good option.
Right now I'm having a hard time applying a transformation on entities inside a group. Is that known to be problematic? I'm hoping its just one of the bugs in my code.
-
That's an excellent play by play there TIG, thanks for that! That gave some great ideas, and some encouragement to see that these scripts do get fairly convoluted. They just feel simple because like you say, all that happens so quickly.
Chris
-
great work chris...looking forward to it
great description of the process tig...we "average users" really have no idea what's going on inside these scripts. but we love 'em anyway!
-
It IS mind numbing doing that kind of thing...
See my ComponentInstance-add_entities.rb for some ideas on how I work round it.
If you stop-framed it at each stage you'd see that [ignoring the extra bits for making copies etc needed if entities are copied into the definition rather than moved, or the Outliner window glitch fixer...] it...Gets the transformation of the relevant component-instance ['self'].
Makes a group of the given entities.
Gets the transformation of that entities-group.
Makes a group and adds an instance of the component-instance-definition and the entities-group [using the same transformations].
Gets the transformation of that group.
Makes a new group and adds an instance of the component-instance-definition and an instance of the entities-group [we can add a group into a group using group2.entities.add_instance(group1.definition,transformation2)]
Transforms [translates] the copy-group to the ORIGIN using the component-instance's transformation reversed.
Explodes the copy-group and gets the transformations of that temporary-group* and that temporary component-instance.
Makes another new-group at the ORIGIN - then adds an instance of the component-instance-definition placed at the ORIGIN and an instance of the entities-group transformed by the transformation of the temporary-group* and its initial transformation...
It explodes the component-instance and the entities-group within the new group.
It turns that new-group into a new component instance, names it, erases it etc and replaces the definition of the original component-instance with the new component's definition.
If copy-flag set 'true' then it explodes a copy of the entities-group back as they were - otherwise the entities are erased from the model and live on only inside the definition...
If unique-flag NOT set 'true' - it replaces ALL other such instances and removes the earlier [now unused] definition from the model - having given the new definition the old one's name, description etc...
It also erases all of the temporary groups chaff etc...ALL done in the twinkling of an eye...
Phew !!!
BUT it works... -
Chris, very exciting! It's awesome to see this kind of talent! Can't wait for it's release!
thanks!!
-
Gee, I don't know why but since SU7 came out late last year we've seen more development through extensions that it makes me think Google needs to put a net over you lot and drag you all the way to boulder, build you a penthouse and feed you beer and pretzels till the next release....!!!!
I bow to all you guys, you know who you are...
-
@utiler said:
Gee, I don't know why but since SU7 came out late last year we've seen more development through extensions that it makes me think Google needs to put a net over you lot and drag you all the way to boulder, build you a penthouse and feed you beer and pretzels till the next release....!!!!
I bow to all you guys, you know who you are...
i agree to an extent but then again, you gotta remember one of the things that makes sketchup so good.. it's simplicity
if it started being cram packed with features, it would lose that edge and begin looking like all the other stuff out there.i do think google really needs to offer more support for the script writers though. give them what they need so they can really go to town. beer & pretzels too
also, it would be nice if they(google) could find a way to compensate the writers for their time and efforts.another option would be to use some of these newer rubies in the pro version. the original writers could definitely get paid then and there would be a better separation between the pro and free versions while the free version would maintain it's simplicity for new or sporadic users.
-
Exactly what i was thinking Jeff, couldn't agree more!!!
I believe the future Pro version should incorporate scripts from Whaat, Fredo6, Chris, TIG..... I'm going to stope there out of respect for not naming someone!!SU Pro should be different and how better to do so than by rewardint those who spend countless hours on these scripts for mostly a pat on their back from their peers...
I think the lest thing to come out of such a "pro' version would be that through a collaborative effort, the wonderfully simple UI of SketchUp would be maintained.... -
Maybe you must also consider than some coders write Plugs only for their pleasure?
-
@unknownuser said:
Maybe you must also consider than some coders write Plugs only for their pleasure?
oh yeah, i'm pretty sure that's a main reason behind the scripts being written..
sort of like crossword puzzle freaks (which i am). that's also a reason why i won't even begin to try to understand the ruby language.. i just don't have the time to be addicted to it and knowing me, i would be..
still, if the coders are doing things that attract new SU users then i don't see why they shouldn't be compensated.. (or maybe it's the other way around?? the fact that ruby can be used with SU is what attracts the writers??)
-
I have to admit, I am also one of those that gets "addicted" to things like programming. So for me it is all about the fun of learning, and making SU do things it just has never done before (though most of my scripts are re-writes of existing scripts). That being said, I would love to actually make a few bucks off scripts in the future. But that would require finding a script idea useful enough that people would pay for.....
Chris
-
I just like to "make stuff work".
Which is why I love LEGO. -
Maybe you scripters should set up a donation system (if you haven't already). I don't see why compensation for your efforts shouldn't come directly from the community, rather than from the community via Google.
I suspect that among the SU community, there would be enough users prepared to make a voluntary payment for a script they enjoy. I'm only guessing here...
-
It is possible to set up a donation system. Fredo now has one. Smustard is also an alternative. You can host there and choose to release for free or sell it at a price. I have a few free ones there now, and I plan on putting more there in the future. I feel that they get a lot of eyes from across the internet on their site, not just the users on this board.
So really there are options to sell our scripts, or be compensated. Maybe in time I'll go that route,
Chris
PS. Anyone who keeps reading these new posts hoping one will be an update on shape bender....
Shape bender is coming along pretty well. I've got a lot the big bugs worked out. I've got a great User Interface in place now (much thanks to Fredo for a couple of hints on that front). There is really only a couple of things left to work out now - at least for the first round of user testing. But it will still take time. I've got a busy school week ahead of me. It's getting close to time to graduate in 1 month....!
-
Advertisement