1分鐘小技巧 | 如何在 Rhino 中按照不同圖紙配置的設(shè)置批量打印
有學(xué)員在討論區(qū)提問(wèn):

這個(gè)問(wèn)題可以總結(jié)為:如何在 Rhino 中按照不同圖紙配置的設(shè)置批量打印。

目前 Rhino 的批量打印是將所有的圖紙配置同時(shí)按照相同的紙張規(guī)格打印在一個(gè)pdf中,跳過(guò)了每個(gè)圖紙配置單獨(dú)的設(shè)置(例如紙張大小等),就會(huì)出現(xiàn)上述問(wèn)題。
接下來(lái)提供一個(gè)解決方案供有相同需求的用戶參考:
1. 輸入指令?EditPythonScript?啟動(dòng)?Rhino Python 腳本編輯器,或者通過(guò)菜單呼出。

2.?將下方的代碼復(fù)制并粘貼到 Rhino Python 編輯器窗口,點(diǎn)擊運(yùn)行按鈕,然后選擇一個(gè)輸出目標(biāo)文件夾,稍作等待,讓腳本運(yùn)行完成。
import Rhino
import scriptcontext as sc
from scriptcontext import doc
import System.Drawing
import rhinoscriptsyntax as rs
FolderPath = rs.BrowseForFolder()
def createSinglePDF(view):
? ? pdf = Rhino.FileIO.FilePdf.Create()
? ? dpi = 300
? ? inch = 25.4
? ? width = (view.PageWidth)/inch
? ? height = (view.PageHeight)/inch
? ? size = System.Drawing.Size(width*dpi,height*dpi)
? ? settings = Rhino.Display.ViewCaptureSettings(view, size, dpi)
? ? pdf.AddPage(settings)
? ? filename = FolderPath + '\\' + view.PageName + '.pdf'
? ? pdf.Write(filename)
for i in sc.doc.Views:
? ? if type(i) is Rhino.Display.RhinoPageView:
? ? ? ? createSinglePDF(i)


3. 最后檢查打印結(jié)果是否正確。
這個(gè)方法可以將每個(gè)圖紙配置打印為一個(gè)單獨(dú)的PDF.

如果運(yùn)行沒(méi)有問(wèn)題,你可以在 Rhino 中自定義一個(gè)按鈕,把下面的代碼貼進(jìn)去,這樣使用起來(lái)更加方便。
NoEcho -_RunPythonScript (
import Rhino
import scriptcontext as sc
from scriptcontext import doc
import System.Drawing
import rhinoscriptsyntax as rs
FolderPath = rs.BrowseForFolder()
def createSinglePDF(view):
? ? pdf = Rhino.FileIO.FilePdf.Create()
? ? dpi = 300
? ? inch = 25.4
? ? width = (view.PageWidth)/inch
? ? height = (view.PageHeight)/inch
? ? size = System.Drawing.Size(width*dpi,height*dpi)
? ? settings = Rhino.Display.ViewCaptureSettings(view, size, dpi)
? ? pdf.AddPage(settings)
? ? filename = FolderPath + '\\' + view.PageName + '.pdf'
? ? pdf.Write(filename)
for i in sc.doc.Views:
? ? if type(i) is Rhino.Display.RhinoPageView:
? ? ? ? createSinglePDF(i)
)

PS:這個(gè)解決方案參考了下面的這個(gè)帖子,有興趣也可以看看。
?? https://discourse.mcneel.com/t/print-layouts-to-pdfs-one-layout-to-one-pdf/39744/21
歡迎分享這篇文章給你身邊的小伙伴。

如果你在使用?Rhino?和?Grasshopper?時(shí)遇到問(wèn)題,可以前往?Rhino?中文討論區(qū)發(fā)帖提問(wèn)哦~



