Bezier Surface Editor is now open source!

It was supposed to be my second commercial extension, but I’ve not been able to maintain it. Recently I’ve focused open my subdivision extension.

Instead of letting it become vapour-ware I’m releasing it for free as-is:
http://extensions.sketchup.com/en/content/bezier-surface

The source is also available under the MIT license at BitBucket:
https://bitbucket.org/thomthom/bezier-surface/overview

Note that this isn’t a finished product so it has it’s limitations and bugs. It’s to be considered a beta product.

10 Likes

Thank you very much, Thomthom! An alpha plugin from you is more useful than other final versions :wink:

Thank you so much! :smiley:

Hi, thom. We are moving now.
Here it is, bezier surface are normally editable. But, ur plugin icon are dissapear.

Any errors in the Ruby Console?
Does it happen to all models? If not, can you share the model?
What SketchUp version and what OS?

Sure i can share my model from picture above. But its happened to all my model, even its start a new sketchup workspace. With no error notifications. I did in SU 2015 and win 7 64bit.

Can i direct upload in here? its my first time posting in this forum. sorry for that.

try_BS_tt.skp (336.5 KB)

ah, one more thing. i’m trying to install and re install BS, and still not working. FYI, the other plugins installed was: soap skin, and ur architect tools,tt_libs, axes & guide tools. Hope its help you to identify the problem. By the way, your work are actually great. thx thom :wink:

When did you open the Ruby Console? Before trying to use Bezier Surface, or after?

Hi again Thomthom. This gif shows how the plugin is not working on my SU2015 64bits on win7 portuguese.

The following was on Ruby console:

Error: #<NoMethodError: undefined method parent' for nil:NilClass> C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/smartdrop.rb:25:in definition’
C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/TT_Lib2/instance.rb:23:in definition' C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/bezier_surface.rb:1129:in update_mesh’
C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/bezier_surface.rb:159:in update' C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/tool_create_patch.rb:142:in onLButtonUp’
Error: #<NoMethodError: undefined method parent' for nil:NilClass> C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/smartdrop.rb:25:in definition’
C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/TT_Lib2/instance.rb:23:in definition' C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/bezier_surface.rb:1129:in update_mesh’
C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/bezier_surface.rb:159:in update' C:/Users/Joao/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/tool_create_patch.rb:142:in onLButtonUp’

I hope this helps and feel free to ask for anything else you might need.

Best regards,

João

The problem here is smartdrop.rb which modifies the SketchUp Ruby API classes. It implements a bugged version of Sketchup::Group.definition.
Please check if there is an updated version that fix that. If it doesn’t request that the author fixes the extension so it confines to its own namespace.

I think you might also use my Raytracer extension as an alternative to “drop” objects:
http://extensions.sketchup.com/en/content/raytracer

Hi Thomthom… Indeed it was I read all the sketchucation thread. Sorry to bother you. I’ll try your raytracer. Thanks again!

Part of that error message is missing. Can you edit your post and instead of using quotation for the error test, use the preformatted text?

Alos, can you go to Preferences > Extensions and check exactly what version number is listed for TT_Lib?

Here’s the update:

TT_lib² version 2.9.13

Error Message:

   Error: #<ArgumentError: invalid byte sequence in UTF-8>
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/TT_Lib2/window.rb:557:in `gsub!'
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/TT_Lib2/window.rb:557:in `build_html'
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/TT_Lib2/window.rb:476:in `show_window'
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/TT_Lib2/toolwindow.rb:25:in `show_window'
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/editor.rb:467:in `show_toolbar'
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/editor.rb:493:in `activate'
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/editor.rb:80:in `select_tool'
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/editor.rb:80:in `edit'
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/observers.rb:90:in `check_active_path'
C:/Users/nash/AppData/Roaming/SketchUp/SketchUp 2015/SketchUp/Plugins/tt_bezier_surface/observers.rb:54:in `onActivePathChanged'

Hi Thomthom,

I’ve installed the plugin (Very nice by the way), but when I click the right mouse button, there’s 2 options in the context menu that seem to be locked. It’s the manipulate and display options. When I click on any of those, I can’t change any option inside. The text is a little faded and the handles option inside manipulate is unticked. Is it normal or I have to do something diferent to change those options? Also there’s this short video that you posted here:Bezier Surface - Development Demo - YouTube , and I can’t get to make those handles show up. Was it from an older version? Or maybe those options I told before?
Thanks for the plugin!

That’s features that are not implemented. I didn’t remove it all before I released the public version.

Handles? That video had no handles - it was just pure control points. The latest version have the handles at the vertex points.

I didn’t mean you removed it, sorry, just thought it was locked for some reason.

I called handles, but I meant the control points. (didn’t know the right way to call it). It seems a bit different from the latest version, I mean that I don’t have those control points showing up, only the handles on the vertexes and the big gizmo that afect the sides or the hole mesh (Those control points seemed to give even more control over the mesh).I was asking if that feature was from an older version.(or maybe a bug in my instalation).

They where from an older development version.
Having said that, I have been wondering if it would be useful to have an editing mode where you control each point freely.
I’ll add a feature request for that.

You might be missing the fact you can select the points individually and use the big gizmo on them and the small green handles in close.

The handles are an abstraction of the underlying control points. The four middle ones are by default automatically computed - though you can enable editing of them from the right click menu.
What he asked for was being able to select all of them individually - like in the early dev-preview video. As it currently is you cannot modify the points that the handles represent directly.

Yeah, ok I see what you mean. I put more patches together to be able to use a middle patch like those middle points.

I also read it as if he might have been selecting the sides a a patch and not just the corners. But probably not.

Hey ThomThom, the Ruby Console returns the following error:

Error: #<NoMethodError: undefined method parent' for nil:NilClass> C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59:in definition’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/TT_Lib2/instance.rb:23:in definition' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:1129:in update_mesh’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:159:in update' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/tool_create_patch.rb:142:in onLButtonUp’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59
Error: #<NoMethodError: undefined method parent' for nil:NilClass> C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59:in definition’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/TT_Lib2/instance.rb:23:in definition' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:1129:in update_mesh’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:159:in update' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/tool_create_patch.rb:142:in onLButtonUp’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59
Error: #<NoMethodError: undefined method parent' for nil:NilClass> C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59:in definition’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/TT_Lib2/instance.rb:23:in definition' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:1129:in update_mesh’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:159:in update' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/tool_create_patch.rb:142:in onLButtonUp’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59
Error: #<NoMethodError: undefined method parent' for nil:NilClass> C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59:in definition’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/TT_Lib2/instance.rb:23:in definition' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:1129:in update_mesh’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:159:in update' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/tool_create_patch.rb:142:in onLButtonUp’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59
Error: #<NoMethodError: undefined method parent' for nil:NilClass> C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59:in definition’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/TT_Lib2/instance.rb:23:in definition' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:1129:in update_mesh’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:159:in update' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/tool_create_patch.rb:142:in onLButtonUp’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59
Error: #<NoMethodError: undefined method parent' for nil:NilClass> C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59:in definition’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/TT_Lib2/instance.rb:23:in definition' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:1129:in update_mesh’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/bezier_surface.rb:159:in update' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/tt_bezier_surface/tool_create_patch.rb:142:in onLButtonUp’
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/SketchyPhysics3/ClassExtensions.rb:59


…and this might also be helpful (additional) info:

  • the plugin did not automatically activate itself (Windows>Preferences>Extensions),
    the box had to be checked manually first before it showed up on the Toolbar Menu

  • first starting mouse-click to define a Bezier Surface is accepted, but it’s the second
    mouse-click which is not, so there is no way to finish an initial step to get it all going


Thanks for your readiness to help anyway…


Oz