• Login
sketchucation logo sketchucation
  • Login
🔌 Quick Selection | Try Didier Bur's reworked classic extension that supercharges selections in SketchUp Download

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

Scheduled Pinned Locked Moved Plugins
69 Posts 25 Posters 60.1k Views 25 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.
  • T Offline
    TIG Moderator
    last edited by 29 Apr 2011, 17:24

    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

    1 Reply Last reply Reply Quote 0
    • B Offline
      Builder Boy
      last edited by 29 Apr 2011, 20:03

      Sponge-like object:

      Capture1.PNG

      All my plugins

      1 Reply Last reply Reply Quote 0
      • D Offline
        driven
        last edited by 30 Apr 2011, 01:23

        this is great,

        some odd behavior on the Mac... when run from plugins (like you should) I get this

        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

        (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

        
        /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...
        the dialog keeps disappearing behind SU, but that needs show_modal on Macs
        this is a 'normal' load i.e. image-no dialog

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

        1 Reply Last reply Reply Quote 0
        • N Offline
          notareal
          last edited by 30 Apr 2011, 07:25

          @diggsey said:

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

          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](http://www.thearender.com/), Thea support | [kerkythea.net](http://www.kerkythea.net/) -team member

          1 Reply Last reply Reply Quote 0
          • N Offline
            notareal
            last edited by 30 Apr 2011, 08:20

            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](http://www.thearender.com/), Thea support | [kerkythea.net](http://www.kerkythea.net/) -team member

            1 Reply Last reply Reply Quote 0
            • T Offline
              TIG Moderator
              last edited by 30 Apr 2011, 08:59

              You already have 'pi' [in lowercase] as a function?Capture.PNG

              TIG

              1 Reply Last reply Reply Quote 0
              • T Offline
                thomthom
                last edited by 30 Apr 2011, 10:30

                @diggsey said:

                @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

                1 Reply Last reply Reply Quote 0
                • D Offline
                  Diggsey
                  last edited by 30 Apr 2011, 12:42

                  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.

                  1 Reply Last reply Reply Quote 0
                  • T Offline
                    TIG Moderator
                    last edited by 30 Apr 2011, 12:58

                    Thanks 😄

                    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

                    1 Reply Last reply Reply Quote 0
                    • D Offline
                      Diggsey
                      last edited by 30 Apr 2011, 13:20

                      Ah, I knew I'd forgotten something 😄

                      I've updated the first post. It shouldn't show those errors anymore.

                      1 Reply Last reply Reply Quote 0
                      • T Offline
                        TIG Moderator
                        last edited by 30 Apr 2011, 13:27

                        Cool.
                        The 'rand' function is also interesting...Capture.PNG

                        TIG

                        1 Reply Last reply Reply Quote 0
                        • D Offline
                          Diggsey
                          last edited by 30 Apr 2011, 14:03

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

                          Check out this graph:

                          http://i59.photobucket.com/albums/g314/diggsey/th_face.jpg

                          Equation = min(((max(abs(y)-(2sqrt(z+4)) ,(x+0.5abs((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+2abs(1.5y)+(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.

                          1 Reply Last reply Reply Quote 0
                          • D Offline
                            driven
                            last edited by 30 Apr 2011, 14:29

                            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

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

                            1 Reply Last reply Reply Quote 0
                            • D Offline
                              Diggsey
                              last edited by 30 Apr 2011, 14:32

                              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.

                              1 Reply Last reply Reply Quote 0
                              • N Offline
                                notareal
                                last edited by 30 Apr 2011, 14:51

                                @tig said:

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

                                Also now in axes... get improvement with other functions too 😄

                                Welcome to try [Thea Render](http://www.thearender.com/), Thea support | [kerkythea.net](http://www.kerkythea.net/) -team member

                                1 Reply Last reply Reply Quote 0
                                • D Offline
                                  driven
                                  last edited by 30 Apr 2011, 15:04

                                  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.

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

                                  1 Reply Last reply Reply Quote 0
                                  • N Offline
                                    notareal
                                    last edited by 30 Apr 2011, 15:19

                                    Got some inspiration from http://abdelhamid394.blogspot.com/


                                    surfacegen_SU.jpg

                                    Welcome to try [Thea Render](http://www.thearender.com/), Thea support | [kerkythea.net](http://www.kerkythea.net/) -team member

                                    1 Reply Last reply Reply Quote 0
                                    • P Offline
                                      Pixero
                                      last edited by 1 May 2011, 07:08

                                      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.

                                      1 Reply Last reply Reply Quote 0
                                      • D Offline
                                        Diggsey
                                        last edited by 1 May 2011, 11:32

                                        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?

                                        1 Reply Last reply Reply Quote 0
                                        • J Offline
                                          Jim
                                          last edited by 1 May 2011, 12:12

                                          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. 😞

                                          Hi

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

                                          Advertisement