SketchUcation Plugin Store

 

 

[Plugin] SurfaceGen (0.9.0b) — 28 April 2012

Re: [Plugin] SurfaceGen

Postby notareal » Fri Apr 29, 2011 4:23 pm

Nice! Can't wait some more complex math sculptures... and naturally even more functionality, like with K3DSurf.

Little test...
Please, register (free) to access all the attachments on the forums.
Last edited by notareal on Fri Apr 29, 2011 5:01 pm, edited 1 time in total.
Welcome to try Thea Render, Thea support | kerkythea.net -team member
notareal
Thea Render
 
Posts: 946
Joined: Tue Nov 13, 2007 9:54 pm
Location: Oulu, Finland
Name: notareal

Re: [Plugin] SurfaceGen

Postby TIG » Fri Apr 29, 2011 4:42 pm

Diggsey wrote:I've tried doing everything possible and can't seem to get any output in the ruby console from either plugin. Can you tell me exactly how to reproduce it?
For example...
Error: #<NoMethodError: undefined method `curve' for #<Sketchup::Group:0xa9d06fc>>
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:17:in `can_select_curve?'
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:32:in `can_select_curve_selection?'
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:352

When right clicking a tagged 'surfacegen-group'.
Explode the special surgfacegen-group and right-click gives
Error: #<NoMethodError: undefined method `curve' for #<Sketchup::ComponentInstance:0xb440344>>
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:17:in `can_select_curve?'
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:32:in `can_select_curve_selection?'
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:352
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:17:in `call'
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:17

Erase that 'bounds' Instance then Select the surface...
Error: #<NoMethodError: undefined method `curve' for #<Sketchup::Face:0xad7783c>>
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:17:in `can_select_curve?'
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:32:in `can_select_curve_selection?'
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:352
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:17:in `call'
C:/Program Files/Google/Google SketchUp 8/Plugins/recurve.rb:17

These all relate to 'recurve' reaction to 'surfacegen' entities ?
I did have a surgacegen error but I can't get it to reproduce now :?
TIG
User avatar
TIG
Global Moderator
 
Posts: 13903
Joined: Mon Nov 12, 2007 7:24 pm
Location: Northumbria UK
Name: TIG
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: architecture
Level of SketchUp: Advanced

Re: [Plugin] SurfaceGen

Postby d12dozr » Fri Apr 29, 2011 4:42 pm

Diggsey wrote:I've no idea how to make such complicated structures as those ones you linked to, but you can get some interesting shapes by just mixing up a few of the built in functions:

sin, cos, tan, sinh, cosh, tanh, asin, acos, atan, asinh, acosh, atanh, atan2, hypot, sqrt, cbrt, log, log2, log10, ln, exp

and constants:

e, pi

Thank you for this, and considering my suggestions too!
"There is a man in the world who will never be turned down... he is the man who delivers the goods."
d12dozr
Top SketchUcator
 
Posts: 1915
Joined: Mon Feb 09, 2009 8:43 am
Location: Minnesota
Name: Marcus
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: product design
Level of SketchUp: Advanced

Re: [Plugin] SurfaceGen

Postby Pilou » Fri Apr 29, 2011 5:55 pm

In the V6
We can draw the "Box" but dialog's window don't opening ;)
No error message, nothing in the Ruby console
Frenchy Pilou
Is beautiful that please without concept!
Speedy Galerie
User avatar
Pilou
Top SketchUcator
 
Posts: 10027
Joined: Wed Jan 23, 2008 10:33 pm
Operating system: Windows
SketchUp version: 6
License type: Free
SketchUp use: hobby
Level of SketchUp: Advanced

Re: [Plugin] SurfaceGen

Postby Diggsey » Fri Apr 29, 2011 6:08 pm

@notareal
That's really nice! What's the equation you used?

@TIG
Make sure you have the latest version of Recurve. I fixed that bug with the last update which is why I couldn't reproduce the error. If you ever get the SurfaceGen error again let me know.

@Pilou
Just re-select the group with the select tool. It seems that the SelectionObserver doesn't fire when the selection is changed in code.
Diggsey
 
Posts: 37
Joined: Tue Aug 11, 2009 7:46 pm
Name: Diggory James Joshua Blake

Re: [Plugin] SurfaceGen

Postby TIG » Fri Apr 29, 2011 6:24 pm

You are right, in that when I get v1.4 of 'recurve' I no longer get these errors with 'surfacegen'. However, I had v1.3 [with SUpv8] and there were no major changes except for making it SUpv6 friendly ?
Anyway... no more error messages... I'll try to break it ;)
TIG
User avatar
TIG
Global Moderator
 
Posts: 13903
Joined: Mon Nov 12, 2007 7:24 pm
Location: Northumbria UK
Name: TIG
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: architecture
Level of SketchUp: Advanced

Re: [Plugin] SurfaceGen

Postby Builder Boy » Fri Apr 29, 2011 9:03 pm

Sponge-like object:

Capture1.PNG
Please, register (free) to access all the attachments on the forums.
Builder Boy
 
Posts: 88
Joined: Wed Oct 28, 2009 9:57 pm
Name: Michael

Re: [Plugin] SurfaceGen

Postby driven » Sat Apr 30, 2011 2:23 am

this is great,

some odd behavior on the Mac... when run from plugins (like you should) I get this
Code: Select all
Error: #<ArgumentError: Cannot convert argument to Sketchup::Point3d>
/Library/Application Support/Google SketchUp 8/SketchUp/Plugins/SURFACEGEN_Dir/surfacegen_tool.rb:266:in `add'
/Library/Application Support/Google SketchUp 8/SketchUp/Plugins/SURFACEGEN_Dir/surfacegen_tool.rb:266:in `getExtents'


if I put the surfacegen.rb into the folder do a restart and then load from Ruby Code Editor, I get this

Code: Select all
(eval):428: warning: don't put space before argument parentheses
"Run aborted (error has occurred)"
(eval):428: warning: don't put space before argument parentheses
(eval):10: warning: already initialized constant SURFACEGEN_DIR
(eval):11: warning: already initialized constant GRAPH_SIZE
(eval):12: warning: already initialized constant WINDOW_HEIGHT
(eval):13: warning: already initialized constant ATTR_DICTIONARY
"Run aborted (error has occurred)"


but if I restart again and use as_pluginloader.rb to load it I get
Code: Select all
/Library/Application Support/Google SketchUp 8/SketchUp/plugins/SURFACEGEN_Dir/surfacegen.rb:428: warning: don't put space before argument parentheses


it works, but has no tool button image...
surfacegen_mac.png

button image-no dialog.png
Please, register (free) to access all the attachments on the forums.
driven
Top SketchUcator
 
Posts: 1409
Joined: Fri May 01, 2009 11:50 pm
Name: John
Operating system: Mac
SketchUp version: 8
License type: Pro
SketchUp use: engineering and mechanical design
Level of SketchUp: Intermediate

Re: [Plugin] SurfaceGen

Postby notareal » Sat Apr 30, 2011 8:25 am

Diggsey wrote:@notareal
That's really nice! What's the equation you used?

Code: Select all
F(x,y,z) = 2-(cos(x+(1+sqrt(5))/2*y)+cos(x-(1+sqrt(5))/2*y)+cos(y+(1+sqrt(5))/2*z)+cos(y-(1+sqrt(5))/2*z)+cos(z-(1+sqrt(5))/2*x)+cos(z+(1+sqrt(5))/2*x))*16/(x*x+y*y+z*z)
[x]: -5, 5
[y]: -5, 5
[z]: -5, 5

There is plenty more at the k3dsurf forum.
Welcome to try Thea Render, Thea support | kerkythea.net -team member
notareal
Thea Render
 
Posts: 946
Joined: Tue Nov 13, 2007 9:54 pm
Location: Oulu, Finland
Name: notareal

Re: [Plugin] SurfaceGen

Postby notareal » Sat Apr 30, 2011 9:20 am

Perhaps you could add some more functionality; like functions min, max and abs. Also allow use of arithmetic operations and pi in axes, like -2*pi.
Welcome to try Thea Render, Thea support | kerkythea.net -team member
notareal
Thea Render
 
Posts: 946
Joined: Tue Nov 13, 2007 9:54 pm
Location: Oulu, Finland
Name: notareal

Re: [Plugin] SurfaceGen

Postby TIG » Sat Apr 30, 2011 9:59 am

You already have 'pi' [in lowercase] as a function?
Capture.PNG
Please, register (free) to access all the attachments on the forums.
TIG
User avatar
TIG
Global Moderator
 
Posts: 13903
Joined: Mon Nov 12, 2007 7:24 pm
Location: Northumbria UK
Name: TIG
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: architecture
Level of SketchUp: Advanced

Re: [Plugin] SurfaceGen

Postby thomthom » Sat Apr 30, 2011 11:30 am

Diggsey wrote:@Pilou
Just re-select the group with the select tool. It seems that the SelectionObserver doesn't fire when the selection is changed in code.

The SelectionObserver has always been very buggy: http://www.thomthom.net/software/sketchup/observers/
Thomas Thomassen — SketchUp Monkey & Coding addict
List of my plugins and link to the CookieWare fund
User avatar
thomthom
Global Moderator
 
Posts: 17545
Joined: Tue Nov 13, 2007 12:47 pm
Location: Trondheim, Norway
Name: thomthom
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: architecture
Level of SketchUp: Advanced

Re: [Plugin] SurfaceGen

Postby Diggsey » Sat Apr 30, 2011 1:42 pm

Just uploaded a fairly major update to the first post!

@driven
This should fix the issues with macs. It now uses cross-platform methods to locate and load resource, and uses show_modal rather than show on macs with the WebDialog.

@notareal
The axes now let you use an expression such as 2*pi

@d12dozr
Helpful error message are now shown when an expression is invalid.
Diggsey
 
Posts: 37
Joined: Tue Aug 11, 2009 7:46 pm
Name: Diggory James Joshua Blake

Re: [Plugin] SurfaceGen

Postby TIG » Sat Apr 30, 2011 1:58 pm

Thanks :D

Code: Select all
Error: #<ArgumentError: Cannot convert argument to Sketchup::Point3d>
C:/Program Files/Google/Google SketchUp 8/Plugins/SURFACEGEN_Dir/surfacegen_tool.rb:270:in `add'
C:/Program Files/Google/Google SketchUp 8/Plugins/SURFACEGEN_Dir/surfacegen_tool.rb:270:in `getExtents'
One minor error in getExtents in surfacegen_tool.rb
Line #270 result.add @p0 if @state >= 0
can raise an error so adjusting it to
return if !@p0 or @p0.class!=Geom::Point3d; result.add @p0 if @state >= 0 might help - you could also add similar validity checks on the other points that are added to the extents ?
TIG
User avatar
TIG
Global Moderator
 
Posts: 13903
Joined: Mon Nov 12, 2007 7:24 pm
Location: Northumbria UK
Name: TIG
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: architecture
Level of SketchUp: Advanced

Re: [Plugin] SurfaceGen

Postby Diggsey » Sat Apr 30, 2011 2:20 pm

Ah, I knew I'd forgotten something :)

I've updated the first post. It shouldn't show those errors anymore.
Diggsey
 
Posts: 37
Joined: Tue Aug 11, 2009 7:46 pm
Name: Diggory James Joshua Blake

Re: [Plugin] SurfaceGen

Postby TIG » Sat Apr 30, 2011 2:27 pm

Cool.
The 'rand' function is also interesting...
Capture.PNG
Please, register (free) to access all the attachments on the forums.
TIG
User avatar
TIG
Global Moderator
 
Posts: 13903
Joined: Mon Nov 12, 2007 7:24 pm
Location: Northumbria UK
Name: TIG
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: architecture
Level of SketchUp: Advanced

Re: [Plugin] SurfaceGen

Postby jim4366 » Sat Apr 30, 2011 2:53 pm

I'm sure it's simple but..
Can I re-size the user window? Can't see the generate button.
Please, register (free) to access all the attachments on the forums.
jim4366
 
Posts: 51
Joined: Sat Jul 04, 2009 1:01 pm
Location: Kitchener, ON, Canada
Name: Jim
Operating system: Windows
SketchUp version: 8
License type: Free
SketchUp use: hobby
Level of SketchUp: Intermediate

Re: [Plugin] SurfaceGen

Postby Diggsey » Sat Apr 30, 2011 3:03 pm

Just updated again fixing a small bug with the expression parser.

Check out this graph:


Equation = min(((max(abs(y)-(2*sqrt(z+4)) ,(x+0.5*abs((abs(y)+4)/3.5)/(1+(((abs(y)+4)/3.5)^2-2)^2)/2 *2/(1+(z-2)^2)+abs(y/1.5)^3.5/7 ) )*max( max( abs(x+0.15+(y/0.7)^2)+(z-1.3)/1.4,max(z-2.3, max( abs(x+0)/2.4 -1+2*abs(1.5*y)+(z+0.1)/2 , -z ))) ,x-0.8+z/2)-0.1 )*(abs(x+y^2/3)-0.2+abs(abs(z+1.8)-(0.5-(y/2)^2) )^1.2 )-0.1 ),( (x+1.2+abs(y)/10)^2+(abs(y)-1.1)^2/2.5+(z-2.3)^2/1.8-0.64))
x: -3 to 1
y: -4 to 4
z: -4 to 5.4


@TIG
Yes you can use any built in ruby function;)

@jim
I can't make the window resizable because it is shown and hidden by resizing it to a fixed value and zero respectively, and there is no API function to get the size of the window to save it. However, you can easily change the height of the window. Open surfacegen.rb in notepad and change the line "WINDOW_HEIGHT = 320" to about "WINDOW_HEIGHT = 350". You can try different values until you get what you want.
Diggsey
 
Posts: 37
Joined: Tue Aug 11, 2009 7:46 pm
Name: Diggory James Joshua Blake

Re: [Plugin] SurfaceGen

Postby driven » Sat Apr 30, 2011 3:29 pm

yes,

working on the mac...

I don't know if I downloaded before or after your latest tweak,
is there a version number somewhere on the files?

another thing, is it possible to have a 'use last' settings option?

playing around with the box size on the head requires [re]inputting the data each time
cheers
john
driven
Top SketchUcator
 
Posts: 1409
Joined: Fri May 01, 2009 11:50 pm
Name: John
Operating system: Mac
SketchUp version: 8
License type: Pro
SketchUp use: engineering and mechanical design
Level of SketchUp: Intermediate

Re: [Plugin] SurfaceGen

Postby Diggsey » Sat Apr 30, 2011 3:32 pm

If you need to use the same settings as last time just copy and paste the graph, and then change the settings you need to. All the settings are stored as attributes of the graph so will be copied with it. If you need to change the size you can use the scale tool just as easily as creating a new graph.
Diggsey
 
Posts: 37
Joined: Tue Aug 11, 2009 7:46 pm
Name: Diggory James Joshua Blake

Re: [Plugin] SurfaceGen

Postby notareal » Sat Apr 30, 2011 3:51 pm

TIG wrote:You already have 'pi' [in lowercase] as a function?

Also now in axes... get improvement with other functions too :)
Welcome to try Thea Render, Thea support | kerkythea.net -team member
notareal
Thea Render
 
Posts: 946
Joined: Tue Nov 13, 2007 9:54 pm
Location: Oulu, Finland
Name: notareal

Re: [Plugin] SurfaceGen

Postby driven » Sat Apr 30, 2011 4:04 pm

BTW.. the varying size of content seen by jim is most likely due to your using [ font-size: 8pt; ] as although 1px=0.75pt different browsers treat pt oddly,

with safari, in SU, on my mac 8pt is reading as 8px and everything fits if a bit small.
driven
Top SketchUcator
 
Posts: 1409
Joined: Fri May 01, 2009 11:50 pm
Name: John
Operating system: Mac
SketchUp version: 8
License type: Pro
SketchUp use: engineering and mechanical design
Level of SketchUp: Intermediate

Re: [Plugin] SurfaceGen

Postby jim4366 » Sat Apr 30, 2011 4:15 pm

Open surfacegen.rb in notepad and change the line "WINDOW_HEIGHT = 320" to about "WINDOW_HEIGHT = 350".


Thanks. 380 let's me see the generate button. Hope it's not a bother, but also the width. Can that be increased?
Actually, no need. It was because I have the font size of win 7 bumped up one step.
So it's okay. Thanks again.
Last edited by jim4366 on Sat Apr 30, 2011 4:37 pm, edited 1 time in total.
jim4366
 
Posts: 51
Joined: Sat Jul 04, 2009 1:01 pm
Location: Kitchener, ON, Canada
Name: Jim
Operating system: Windows
SketchUp version: 8
License type: Free
SketchUp use: hobby
Level of SketchUp: Intermediate

Re: [Plugin] SurfaceGen

Postby notareal » Sat Apr 30, 2011 4:19 pm

Got some inspiration from http://abdelhamid394.blogspot.com/
Please, register (free) to access all the attachments on the forums.
Welcome to try Thea Render, Thea support | kerkythea.net -team member
notareal
Thea Render
 
Posts: 946
Joined: Tue Nov 13, 2007 9:54 pm
Location: Oulu, Finland
Name: notareal

Re: [Plugin] SurfaceGen

Postby Pixero » Sun May 01, 2011 8:08 am

This is very cool.
Two questions:
Is there any noise available? If not that would be a great addition.
I've tried with rand but that isn't noise. :(

A few links to good sites with functions and equations for surfaces would also help getting up to speed.
User avatar
Pixero
Premium Member
Premium Member
 
Posts: 1284
Joined: Wed Nov 14, 2007 2:58 pm
Location: Halmstad, Sweden
Name: Jan Sandström
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: architecture
Level of SketchUp: Advanced

Re: [Plugin] SurfaceGen

Postby Diggsey » Sun May 01, 2011 12:32 pm

I've updated the first post with version 0.8.

@Pixero
What exactly do you mean by noise? Surely just adding (rand-0.5) will put noise on the graph?
Diggsey
 
Posts: 37
Joined: Tue Aug 11, 2009 7:46 pm
Name: Diggory James Joshua Blake

Re: [Plugin] SurfaceGen

Postby Jim » Sun May 01, 2011 1:12 pm

Thanks, Diggsey.

Just a minor annoyance. Since the dialog steals the focsus, whenever I select a Surface, my SU shortcuts don't work. For example, select the Surface to move it - press the 'm' shortcut to Move it - can't Move it because the dialog got the keypress. :(
Jim
Global Moderator
 
Posts: 4126
Joined: Mon Nov 12, 2007 10:13 pm
Location: NEOH
Name: Jim
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: other
Level of SketchUp: Intermediate

Re: [Plugin] SurfaceGen

Postby Diggsey » Sun May 01, 2011 1:18 pm

Unfortunately, I don't think there's a way to give focus back to SketchUp from ruby. (Someone correct me if I'm wrong!)
Diggsey
 
Posts: 37
Joined: Tue Aug 11, 2009 7:46 pm
Name: Diggory James Joshua Blake

Re: [Plugin] SurfaceGen

Postby Jim » Sun May 01, 2011 1:20 pm

I don't think so either, and I realize a small change in workflow is all that's required - but as the saying goes "old habits die hard." No worries.
Jim
Global Moderator
 
Posts: 4126
Joined: Mon Nov 12, 2007 10:13 pm
Location: NEOH
Name: Jim
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: other
Level of SketchUp: Intermediate

Re: [Plugin] SurfaceGen

Postby TIG » Sun May 01, 2011 1:46 pm

If you pick a surfacegen-entity the surfacegen-dialog appears.
Minimize that surfacegen-dialog.
The focus will then return to the SKP window.
So now you can use shortcuts etc to Move the selected entity etc.
Restore the surfacegen-dialog to change the surfacegen-entity's settings... :geek:
TIG
User avatar
TIG
Global Moderator
 
Posts: 13903
Joined: Mon Nov 12, 2007 7:24 pm
Location: Northumbria UK
Name: TIG
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: architecture
Level of SketchUp: Advanced

SketchUcation One-Liner Adverts

by Ad Machine » 5 minutes ago

Need Authorised SketchUp Training by experts in various disciplines? Check out our Training details.

Ad Machine
Robot
 
Posts: 2012

Next

Return to Plugins

Who is online

Users browsing this forum: FatihCakir, fred.dy, MarOmir, MSN Bot, Nikopol, nkutty, plessis and 8 guests