BUG: Issue with RH-53677 (BlendSrf)

This request exists all over the place. Mostly called parametric tree, parts tree of something like that…

There are a number of them available in Rhino at this time.

  1. MatrixGold and others for Jewelry Parametrics
  2. Orca3d and ExpressMarine for Hulls and ships.
  3. Architectural - Visual ARQ, APE and Grasshopper in Revit, Grasshopper in Tekla
  4. Grasshopper for Freeform Parametrics

All of these have various ways to optimize, split the components and different ways they interact. Each engine above needs to be specific to the modeling task to try and keep performance at least somewhat reasonable.

At this point we are not sure what is in Rhino 9.

Rhino 8 content cache has more options in tracking components in Rhino. We can work on example in another thread if that is of interest.

I guess it is full parametric modeling, which would be a wonderful and much-requested feature to add to Rhino. GH has always felt like an overly complicated parametric workaround.

At least in the jewelry plugin space, it’s not the same thing. Jewelry plugins are fancy automation scripts that create a specific type of geometry with a few numerical inputs.

That History Visualizer is generic. It’s a GUI front end for the CRhinoHistoryRecordTable. We won’t see that type of functionality exposed in plugins until RhinoCommon has full access to that table.

I want to echo the importance of having a tree (management of feature dependency over time that is robust to changes at any point in time). Designing complicated parts without this is crazy. One must be very very good––like sculpting a rock (cannot add more rock if carved away too much) rather than with clay (can always add more clay).

One reason GH is much more appealing to me (99% time, Rhino window is there to visualize GH geometry only) is that its interface organizes features in a tree.

I wouldn’t confuse parametric modeling with a robust history. To me they are different things and often the aformentioned word makes the McNeel developers turn around and say that’s not their thing. The discussion around this in Rhino would be very different if McNeel hadn’t neglected the little history support they already have and instead made it robust, with geometric ID matching and “nested history”…

3 Likes

A report of a BlendSrf with History problem in V8.7 Blend Surface history inverts directions in Rhino 8

One of the bugs associated with this topic: RH-81297 is fixed in Rhino 8 Service Release 6.

1 Like

That’s not visible to us, prob because it’s a typo. Are we actually in the 80k range now?

Whoops. That should be visible now.

What release is RH-81297 fixed in? I have yet to get this example to work, and I’m on 8.6.24101.5001.

@dan It’s not fixed in the SRC 8.7.24128.12261 either.

@EricM Did you rebuild the blendsrf? The fix is made in History recording

Yes, I rebuilt the blend srf.

hmm, the sample from that YT works here

I downloaded the sample file I posted way back when and did this (changed size of curve with BoxEdit):

2024.05.13.Rhino_0NGeBKVsy1

Rhino 8 SR7 2024-5-7 (Rhino 8, 8.7.24128.12261, Git hash:master @ 8bdee88d60977877d72ecc80dd756656929e0efb)
License type: Commercial, build 2024-05-07
License details: Cloud Zoo

Windows 10 (10.0.19045 SR0.0) or greater (Physical RAM: 64GB)
.NET 7.0.18

Computer platform: DESKTOP 

Standard graphics configuration.
  Primary display and OpenGL: NVIDIA GeForce RTX 4090 (NVidia) Memory: 24GB, Driver date: 3-12-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 551.86
    > Accelerated graphics device with 4 adapter port(s)
        - Windows Main Display attached to adapter port #0

OpenGL Settings
  Safe mode: Off
  Use accelerated hardware modes: On
  Redraw scene when viewports are exposed: On
  Graphics level being used: OpenGL 4.6 (primary GPU's maximum)
  
  Anti-alias mode: 4x
  Mip Map Filtering: Linear
  Anisotropic Filtering Mode: High
  
  Vendor Name: NVIDIA Corporation
  Render version: 4.6
  Shading Language: 4.60 NVIDIA
  Driver Date: 3-12-2024
  Driver Version: 31.0.15.5186
  Maximum Texture size: 32768 x 32768
  Z-Buffer depth: 24 bits
  Maximum Viewport size: 32768 x 32768
  Total Video Memory: 24564 MB

Rhino plugins that do not ship with Rhino
  C:\Users\EricM\Documents\Dev\RhinoCopy\Leo.dll	"Leo"	1.0.0.0
  C:\Program Files\XNurbsRhino8\XNurbsRhino8.rhp	"XNurbs"	
  C:\Program Files\Cyberstrak\R8\CS_ModelingPlugIn.rhp	"Cyberstrak Modeling PlugIn"	

Rhino plugins that ship with Rhino
  C:\Program Files\Rhino 8\Plug-ins\Commands.rhp	"Commands"	8.7.24128.12261
  C:\Program Files\Rhino 8\Plug-ins\WebBrowser.rhp	"WebBrowser"	
  C:\Program Files\Rhino 8\Plug-ins\rdk.rhp	"Renderer Development Kit"	
  C:\Program Files\Rhino 8\Plug-ins\RhinoScript.rhp	"RhinoScript"	
  C:\Program Files\Rhino 8\Plug-ins\AnimationTools.rhp	"AnimationTools"	
  C:\Program Files\Rhino 8\Plug-ins\IdleProcessor.rhp	"IdleProcessor"	
  C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp	"Rhino Render"	8.7.24128.12261
  C:\Program Files\Rhino 8\Plug-ins\RhinoRender.rhp	"Legacy Rhino Render"	
  C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp	"RDK_EtoUI"	8.7.24128.12261
  C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp	"Snapshots"	
  C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp	"MeshCommands"	8.7.24128.12261
  C:\Program Files\Rhino 8\Plug-ins\IronPython\RhinoDLR_Python.rhp	"IronPython"	8.7.24128.12261
  C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp	"RhinoCycles"	8.7.24128.12261
  C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp	"Toolbars"	8.7.24128.12261
  C:\Program Files\Rhino 8\Plug-ins\3dxrhino.rhp	"3Dconnexion 3D Mouse"	
  C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp	"Displacement"	
  C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp	"SectionTools"	


But that looks to be a different issue. In that screenshot at least, it looks like the surface structure of the top surface changes significantly, and so will its edge domain. I don’t believe there is a fix for that (yet). I believe the gh solution that I offered earlier in this thread should be able to handle that case though, did you try that?

Well, yes, the top surface changes (along with the bottom). This bug file, which was logged as RH-81297, has one repro step - Scale2D that one curve.

I don’t understand what was fixed. So far, I can see no difference to BlendSrf’s V6 behavior.

Grasshopper is not an option. I use copy/paste history to drop 20 of these in a file. GH gets way too complicated when you try to match up 20 sets of surfaces to get a blend between them.

(although, it is infuriating to know that gh works without a problem while v8 works like v6)

well, the gh file I sent doesn’t work flawlessly either and is hard to set up in gh. I am not trying to sell it as a solution. I agree that having to do this for many items becomes cumbersome.

What I don’t quite get from your file is that you set up the base shape with a sweep. This makes a huge change to the surface structure when you scale the sweep rail, while it can stay a simple revolve. If you do the latter, then the BlendSrf seems to stay in tact:
BlendSrfBug_revolve.3dm (3.9 MB)

It’s a sweep cause not all stones are round. That is the bezel template for these stones:

the script I wrote does seem to work, so I’ll ask if something can be done to transfer the idea into BlendSrf:

Script? How are you updating History through a script?