New Set of (Old) Wishes for V6

Hi All, I have finally compiled a small set of wishes and suggestions I kept on napkins and sticky notes for past few months working on various projects. Here they are, in one post, no particular importance order. Some are brand new, some might have been discussed before, just hoping they can make their way higher on the pile and into V6:

General:

  1. BoxEdit: add ‘Uniform’ checkbox to Scale input: it would grey-out the Y and Z and use X for all 3 directions
  2. TextDot: depth sorting within Dots: would it be possible to have dots still drawn in front of all other geometry but maintain correct depth sorting within them?
  3. UI: LayerMaterial – ability to right-click in Layer palette on material and copy->paste into another layer material
  4. Snap to Mesh Edges
  5. ExtractPipedCurve: what is the benefit of having it as a separate command? Could it be obsolete and ExtractRenderMesh work on PipedCurves as well (as it does on SoftenedEdges, Displacement…)
  6. Rotate (2D and 3D): when Copy is ON, another option to keep copying using the same rotate angle (added to the last one) – sort of manual ArrayPolar mode (similar to Copy->FromLastPoint=Yes; UseLastDistance=Yes ; UseLastDirection=Yes)
  7. Import Blocks Behavior: letting user decide what happens if the imported file has block definitions named the same as in the main file. A radio-button dialog for each conflicting block name should appear, and let user decide: 1) Use Original Definition, 2) Update with New Definition, 3) AutoRename New Blocks. There should also be ApplyToAll button to avoid having to click 5463532 times with complex files with many blocks.
  8. Viewport: ability to lock view manipulation (Indicated by Viewport Name color change?). Scriptable.
  9. Import Manager (‘Merge’ File?): Ability to import only selected content from Rhino file (by Layer, selected Block Definitions, by Object Type, By Name, Materials) – a lot of possible combinations here.
  10. Global Texture Mapping – as a part of Display Mode. Enable custom global mapping per display-mode that would apply to all objects. Optionally (checkbox): except for the objects with their own custom mapping
  11. Asset Tracking: An asset manager dialog that would display all the linked files (blocks, worksessions, bitmaps etc.) and also indicate the missing ones, so they can be selected and paths updated by the user.

RhinoScript:

  1. Methods to control CurvePiping settings and EdgeSoftening
  2. Rhino.ObjectByType – add optional argument: array of initial set of objects to take into account
4 Likes

Oh, one more, for the Render commands: can they autocomplete / get some documentation?

For example: RenderConvertOldStyleMaterials
Is there a way to use this command to change all OldStyle materials in the scene to new, RDK materials? It prompts for object selection and then the message says: “One or more objects have a material source other than “basic” assigned.”

Hi @pascal

I was wondering if any of these can make it to ‘The Pile’. Probably not the best idea to put all of the various suggestions in one post, since I know they would need to be looked at and evaluated by different people at RMA, but didn’t want to add to many topics in Serengeti for each one separately.
Just don’t want this to get buried on the discourse yet : ) I was really trying to limit myself with the list…

Ok, I have revised the list based on the changes implemented so far in V6. Also deleted the less critical ones hoping the list will look less overwhelming :wink:
(The curve-piping related ones would be very useful to have these days…)

1) BoxEdit:
1.a ‘Uniform’ checkbox to Scale input: it would grey-out the Y and Z and use X for all 3 directions.
1.b 'Pivot: add Block Instertion Point checkbox (would apply only to block instances)

2) UI: LayerMaterial – ability to right-click in Layer palette on material dot and copy->paste into another layer material (with option to make a copy or instance)

3) ExtractPipedCurve: ExtractRenderMesh to work on PipedCurves as well (as it does on other mesh modifiers: SoftenedEdges, Displacement…)

4) Import Manager (‘Merge’ File?): Ability to import only selected content from Rhino file (by Layer, selected Block Definitions, by Object Type, By Name, Materials) – a lot of possible combinations here.

5) RhinoScript:: methods to control CurvePiping and EdgeSoftening settings

6) TextDots: depth sorting within Dots: would it be possible to have dots still drawn in front of all other geometry but maintain correct depth sorting within them?

7) Asset Tracking: An asset manager dialog that would display all the linked files (blocks, worksessions, bitmaps etc.) and also indicate the missing ones, so they can be selected and paths updated by the user.

1 Like

Hi Jarek- thanks, I’ve added or commented a few bug track items. Not sure about #3, I guess the command can pay attention and do the right thing when a curve (no render meshes in the usual sense in Rhino) is included in the selection.

-Pascal

Thanks Pascal, yeah, for #3 the ExtractRenderMesh should get all the "virtual’ meshes as it does with the thickened, softened, displaced and shutlined ones. I guess because piping is the only one that is based on curves it may be ignored right now. ExtractPipedCurve may still stay as-is, just the main “Render Meshes” command to get it as well…

thanks again–

jarek

You can already right-click on a layer and pick “Match Properties…”. Does this suffice?

Hi Dale, yes, using it often, too - just sometimes I want only the material, and color/linetypes etc. unaffected.
Plus, with material, the wish of being able to make a copy (not: instance) would save time to click the “duplicate” button in layer material editor. It’s easy to forget and change the same material all over, plus anything that limits working with MaterialEditor is a plus, since it is usually painfully slow…

–jarek

Jarek, how do you envision the UI for this? As you say it could get complicated, depending on what combinations are decided upon. I monkeyed with a python that is a start on this idea, but, well, It’s hard to know where to stop- the original request that I started from was to import layers - the layers themselves, not the objects. But objects by layer is also perfectly reasonable…

At any rate, I kind of stalled out for now, but if you have an idea of the list of objects you’d like (not all are possible, it looks like. For instance - so far, anyway - I do see how to import just lights, or named CPlanes, using RhinoCommon), I can, maybe, get a useful prototype working.

-Pascal

See if RhinoScript’s new FilterObjects method is what you are asking for…

Yep : ) that was taken off from the original list…

Hi @pascal,

I will do some more specific thinking and get back to you with some ideas. thanks –

jarek

@Jarek, did you ever try the new GetKey method in V6?

Dale - yes, I tried it and seems to work well!
The only thing I would suggest, if possible, is making it also return mouse buttons, like the other AsyncKeyState method does. Currently whenever any mouse button is pressed it returns Null.

many thanks,

–jarek

Hi @pascal,

I saw the exposing CurvePiping and other ‘mesh’ modifiers addition is closed in YouTrack ( https://mcneel.myjetbrains.com/youtrack/issueMobile/RH-31916 ) but don’t see any new methods in latest WIP RhinoScript. Are they going to be available in the further releases ?

–jarek

Hi Jarek - at the moment, it is exposed in RhinoCommon only as far as I know, I don’t think it’s been RhinoScriptified, is that correct, @dale?

-Pascal

Hi Pascal - I see. Yes, the original wish was to RhinoScriptify it. I guess exposing it in RhinoCommon was a first step but hoping for the next one :slight_smile:

–jarek

@Jarek, @pascal, I’ve re-opened the issue…

– Dale

1 Like

RH-31913 is fixed in the latest WIP

BoxEdit block insertion point works well! Thank you…
My only comment would be the UI as radio button is confusing when dealing with mixed selection of non-blocks and blocks - I guess if BlockInsertionPoint is picked, non-block objects use BoundingBox… so a checkbox would make more sense for the BlockInsertionPoint option.

–jarek