Printing geometry missing

Hi all,

I have a case where I need to print a preview of geometry from Grasshopper (some filled regions with contour lines that are not baked inside Rhino)

Now for some reason when using Rhino 7 filled region does not print to PDF, besides the fact that they are appearing in Rhino Viewport but not in the Print Preview

With Rhino 6 everything was working fine like is shown on the print preview

I have double-check all print, layout and viewport settings and everything seems to be the same

Did anyone has also similar issues?

Thanks

Hi
Your message hasn’t received any comments because you haven’t provided anything to check.

To understand the problem we need a small, specific example file and the detailed steps needed to repeat the problem.

Many times, in the process of making a small example file, you may stumble over the solution to the issue yourself.

Your original post with screenshots has nothing actionable anyone can help you with.

Hi John,

sorry about it, attached are the files

In princip I don’t think is something related to the Grasshopper or my geometry file
It is something more related to the Rhino PDF printing setup

I also found related discussions

I hope there is some solution to this because I am using Grasshopper to read Tekla and Revit models and then print geometry preview to PDF. Other way I would have to bake
geometry and then the whole process would become more static

Data Example.3dm (1.5 MB)
Data Example.gh (8.7 KB)

1 Like

Thank you for the files, Faruk.
I have filed this issue as item RH-64997.

In the meanwhile, other alternatives would be (a) continue doing this in Rhino 6, or (b) printing to raster. The contents of the detail are printed as raster also in Rhino 6 so doing this would “only” affect geometry on the layout.
-wim

I’m examining this bug and have a question. What is the problem with having the print set to raster for output? I believe the layout geometry will still be vector even when you pick raster. It is only the details that are printed as raster

Hi Steve, thanks a lot for looking in this, yes with raster geometry will be vector

In my case, 99% of the time I am in need to print a preview of geometry from Grasshopper that contains color-filled regions (made with custom preview component) as in the picture below

When printing manually from Rhino, Vector Output was much faster when printing several layouts, and also big advantage was that it was working with Python script I found on the link below

import Rhino
import scriptcontext as sc
import System.Drawing
import rhinoscriptsyntax as rs
import os

def get_layouts():
    layouts = []
    for view in Rhino.RhinoDoc.ActiveDoc.Views:
        if isinstance(view, Rhino.Display.RhinoPageView):
            layouts.append(view)
    return layouts

def layouts_get_by_names(layout_names):
    layouts = []
    for layout_name in layout_names:
        view = Rhino.RhinoDoc.ActiveDoc.Views.Find(layout_name, True)
        if isinstance(view, Rhino.Display.RhinoPageView):
            layouts.append(view)
    return layouts

def mmToInch(num):
    #surely pages are always in mm?
    return num/25.4

if B:
    pdf = Rhino.FileIO.FilePdf.Create()
    dpi = 300
    #loop through all layouts and print to single page pdf
    for i, view in enumerate(layouts_get_by_names(L)):
        #Rhino.RhinoDoc.ActiveDoc.Views.ActiveView.PageHeight
        #Rhino.RhinoDoc.ActiveDoc.Views.ActiveView.PageWidth
        w = mmToInch(view.PageHeight)
        h = mmToInch(view.PageWidth)
        print w
        size = System.Drawing.Size(h*dpi, w*dpi)
        #size = System.Drawing.Size(8.5*dpi,11*dpi)

        settings = Rhino.Display.ViewCaptureSettings(view, size, dpi)
        pdf.AddPage(settings)
    filepath = os.path.join(P, N+".pdf")
    print filepath
    pdf.Write(filepath)

This way I was able to print directly from Grasshopper in Rhino 6

Now when using Rhino 7, for some reason the script does not print filled areas, and also if I want to print manually using Vector Output it does not show them

At the moment I am printing manually with Raster Output and that works besides the fact that the printing time is slower. Probably there are reasons behind this change but for me, it would be much better when the Vector output would work the same as in Rhino 6

Thanks

You could adjust your script to

...
        settings = Rhino.Display.ViewCaptureSettings(view, size, dpi)
        settings.RasterMode = True
        pdf.AddPage(settings)
...

The change was intentional in Rhino 7 and fixed several reported bugs reported. I’m not exactly sure what should be done to support your situation. I have the issue logged as a bug and need to think if there are any ways to make this work for you and everyone else who want the current results.