V6 Goal: Make2d overhaul


(Pascal Golay) #21

Hi Jorgen - grouping will do it if the goal is to avoid moving hidden objects in the group- all objects in a group are affected even if they are not visible. I’m not voting on whether that grouping in make2d is a good idea or not, just clarifying that point…


(Margaret Becker) #22


In the Rhino interface this command is spelled Make2D with a capital D. It would be nice to be consistent.


I think blocks would be too much if groups keep track of invisible parts. You generally only have one copy so the workflow is basically just as with a group, if you don’t know or don’t want to use the block editor but just explode the block instead.

If you are unsure about the general user preference, please at least make grouping an option. I generally group my make2Ds but sometimes forget… :smile:


Rhino 5: In case objects are separate (not joined) and share tangent edges, the tangent edges are shown. Often it is desirable to also remove those tangent edges in the Make2D result. For Rhino 6, could you add another option such as Show/Hide implicit tangent edges.

(Greg Arden) #25

Could you please post an example.


@GregArden , please find the example attached.
adf.3dm (220.1 KB)


Hi @GregArden
I’d like to have the silhouettes and “interior” edges on separate layers since these are usually from different line-types in illustrations.
Another feature which is adding some sort of depth is to shorten edges and silhouettes which are partly covered so that the lines does not touch the silhouette. I also tend to shorten edges to simulate highlights. See attached…
And one more wish: In addition to visible and hidden it would be nice to have a layer structure with lines visible through transparent objects.

(Greg Arden) #28

Hi Jess, I’m currently working on new make2d computations. One of the key goals is to generate enough additional information so that any requests can be satisfied by some .net programming to the Rhino SDK.

Your examples have a couple interesting cases:

  1. I have type information on each curve to indicate if it is a local silhouette, like the right side of the "h" or a scene silhouette like the left side of the "R".
  2. I don't currently have alll the connectivity information that you need to decide if curves connect to other curves. This is a good example of why this information is needed.
  3. For your case of transparent objects. Would it be sufficient to replace transparent objects with wireframe representations before running make2d. Say you run DupEdges on a transparent object, hide the original, then run make2d. Is that what you want??
Greg Arden


Hi Greg,

Your workaround works for simple objects, but if the transparent object is round or freeform then you’ll have to run a separate Make2D and do some _CurveBoolean with the background objects.

Also the curves behind transparent objects should have a different look and therefore must be separated from visible lines. That can be a real mess with architectural scenes.

(Greg Arden) #30

I’m still trying to understand what you would like for transparent objects. So it sounds like transparent objects should produce silhouettes? Also the curves which are currently classified as visible or hidden would need to be classified as

  1. Visible - not occluded at all
  2. visible but behind one or more layers of transparent surfaces.
  3. hidden - occluded by at least one opaque object.

Is that what you have in mind?


Hi Greg,

Yes! - about the layer structure.
Transparent objects should produce standard 2D lines. I can adjust the look by the source layer.

Thanks, Jess

Edit: P.S. The shortening of covered lines might be done as linetypes. There should be something like shortened at start / end of the curve or both. Then the regions remains closed for hatches and so on.


Hey @GregArden,
I’ve got another case of failing geometry.

Version 5 SR10 64-bit (5.10.41107.12445, 07.11.2014) will generate an image with inverted Z-Order culling.
Work In Progress (6.0.14322.10041, 18.11.2014) will generate various images of incompleteness depending on tolerance setting.

141201 inverting Make2d R5, Failing edges WIP.3dm (581.2 KB)

(Greg Arden) #33

The bug is here. I’m working on WIP. Interesting that the missed long line is not even on the Hidden layer.


Hi @GregArden, all,

I wanted to share what we need from an overhauled make2D engine.

  • We want Make2D to work as an output of views and/or layout when we export to thinks like AI or PDF. in other words, I don’t what to see curves trhown all over my 3D viewport laying on teh ground. I want to use the Make2D engine to create 2D artwork out of rhino, where I need it.

  • We want to have linework + fills. So each 3D patch should also output a closed 2D shape with a fill. Not just disconnected lines. I want to have two layers:

  • one with the current single lines

  • one with just fills for each patch

here’s an example of what I mean by filled closed shapes…

starting with this file…

also attached here as .3dm make2D_as_close_curves_gf_141201.3dm (1.9 MB)

I want to output an .ai file that has all these closed shapes:

and if I were to move the shapes apart it would look like this…

I collored those fills manually, but I really want rhino to:

A. minimally look at the average RGB of each patch on its current viewmode and give that as an RGB value for each fill.
B. ideally create a gradient fill closely matching the 3D shading.

here’s the .ai file for your entertainment… (oh crap, discourse will not let me upload .ai files:


so here they are zipped: make2D_illustrator_files_gf_141202.zip (36.5 KB)

if you have any questions please let me know. I’ll be happy to elaborate, or do a live screenshare session to discuss further. This is important for us, and I’m sure you have teh talent, drive and patience to make it all work :smile:



V6 Goal: True PDF Export
(Bob McNeel) #35



I’d say ‘that depends’. It is the point from which a potentially huge options matrix grows. If you want to be able to add colour fills etc in other software, two closed curves is what you want. If it’s a line illustration in the classic style, the ends of the rearmost box outline should stop short of the foremost box outline - as though the front one has a mask applied around it, like Jess describes. In a similar way, it would be nice if these outline silhouettes could be assigned a heavier line weight than lines on the surface of the box. Pascals silhouette curve (sub?)layer could address this.

What’s the reason for closed ‘interior’ curves? Just curious!

This is a pet hate of mine. I inherit a lot of DXF/DWG drawings created by solid modellers in my work and they are horrible to work with. What looks like a single straight line turns out to be 10, 20, maybe 100 segments, sometimes overlapping. The originators of the drawings have no interest in parting with their 3D models, so the 2D stuff is the best I get. Weeding them (and exploded hatches) is an extremely tedious, boring job. Please make Rhinos output as elegant and line-efficient as possible!

If Rhino’s Make2D output fails to make a contiguous outline (as is currently often the case), but the line segments are object ‘tagged’ as Greg describes, what would happen when Rhino is then unable to join everything up to make a closed outline?


I would like to point you guys on a different aspect :
Rhino it’s not considering the European projection as reported here Make 2D - 3rd angle projection USA & UK
Please fix it, at certain point.

(Greg Arden) #38

I understand what you want. Originally I was planning to compute the topological information needed to identify these regions as part of the Make2d calculation. As I was working on the HiddenLineDrawing this feature got left behind since it took some effort to get it working and I didn’t really know if it was a useful to anyone. Now I’m about ready to put out an SDK for HiddenLineDrawing calculations and it doesn’t include support for this feature. This toplological information is also what is needed for @Jess above.

So what I’m thinking is that I’ll try to add enough to the SDK so that It can handle this topololgy feature as I get it implemented. Initially this information will not get computed but hopefully later I can get this function added.

Once the calculations are there we can talk about how to add functionality to Rhino. But at least someone could make a work-in-progress plugin that does what you want.



As long as we don’t get vector hatches out of Rhino, getting the closed interiors will allow us to add them easily in a 2D vector package.

Yes, by all means. If that happens instantaneously, I’m all for it. But I don’t think it works that way and that’s my point. There are two reasons for wanting 2D output, one is to have curves that can be used ‘for production’ like it seems to me you are wanting from your originators. The other is for illustration purposes (production drawings resorting under this category). [Though I have to add that recently I’ve been impressed by the 2D vector export from NX that is both instantaneous and precise.]

I’m not sure I understand this one. As far as I can tell, it should just be renamed to 1st and 3rd angle projection.


That is only true if the closed curves have all the same color. If you have each surface with a different color this will become a hassle in a 2d vector package (illustrator cs6). At least in illustrator if you want to invert a close curve to a hatch is easily achieved if only if all the curves have the same color if not Illustrator wont allow you to invert them all at the same time. It will require that you do one color at a time. My work around for this has always been a small python script that creates a hatch for every closed curve and assigns the color to it…

ps. this might have been fixed in Illustrator CC but I don’t own a license so I am not sure.