Rhino3D犀牛中文网

标题: 解决 GhPython 编译以后无法使用 ghdoc 的问题 [打印本页]

作者: Jorin    时间: 2019-3-23 13:41
标题: 解决 GhPython 编译以后无法使用 ghdoc 的问题
问题描述

在用 GhPython 写代码时,有时需要把 scriptcontext.doc 切换到当前的 Rhino 文档,代码执行完毕后再切换回来:

[Python] 纯文本查看 复制代码

import scriptcontext as sc
import Rhino
sc.doc = Rhino.RhinoDoc.ActiveDoc
"""
do something
……
……
"""
sc.doc = ghdoc

直接在 Grasshopper 中的 GhPython Script 电池中使用这个脚本是没有问题的。但当我们编译成看不到源代码的电池以后,就出现了问题:

(, 下载次数: 201)

找不到全局变量 ghdoc

解决方法
造成这个问题的原因是找不到 ghdoc 这个全局变量,所以我们在这里手工初始化 ghdoc:
在 sc.doc = ghdoc 前面加上:
[Python] 纯文本查看 复制代码

import GhPython
ghdoc = GhPython.DocReplacement.GrasshopperDocument()

最后修改过的代码如下:
[Python] 纯文本查看 复制代码

import scriptcontext as sc
import Rhino
import GhPython
sc.doc = Rhino.RhinoDoc.ActiveDoc
"""
do something
……
……
"""
ghdoc = GhPython.DocReplacement.GrasshopperDocument()
sc.doc = ghdoc

现在去编译就不会再有问题了。

作者: 筑梦NARUTO    时间: 2019-3-25 12:18
学习了学习了




欢迎光临 Rhino3D犀牛中文网 (https://rhino3d.asia/) Powered by Discuz! X3.3