热门标签

打印 上一主题 下一主题

[未解答] 请教 GHPYTHON的问题

[复制链接]
查看: 6290|回复: 6

1

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
跳转到指定楼层
楼主
发表于 2019-6-7 22:39:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhangvip0755 于 2019-6-8 10:16 编辑

1、以下是我按照犀牛命令做的一个GH电池的代码:import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
import Rhino.Geometry as rg
import ghpythonlib.components as gc

l = []
LL = []

if C1 and C2:
    if Arc == True:
        tx = 'Arc'
        tx1 = '圆弧'
    else:
        tx = 'Line'
        tx1 = '直线'

    sc.doc = Rhino.RhinoDoc.ActiveDoc
    rs.EnableRedraw(False)

    l.append(rs.CopyObject(C1, [0,0,0]))
    l.append(rs.CopyObject(C2, [0,0,0]))
    if Flp1:
         rs.ReverseCurve(l[0])
    if Flp2:
         rs.ReverseCurve(l[1])
    com = "_-Connect E={2} E={3} _-SelId {0} E={2} E={3} _-SelId {1}".format(l[0],l[1],tx,tx1)
    rs.Command(com, False)
    LL.append(sc.doc.Objects.Find(l[0]).Geometry)
    LL.append(sc.doc.Objects.Find(l[1]).Geometry)
    rs.DeleteObjects(l)
    Pt = gc.CurveXCurve(LL[0],LL[1])[0]
    rs.EnableRedraw(True)
    sc.doc = ghdoc

以上代码运行正常,可是RHINO的提示栏还是有一条:‘已加入 1 条曲线至选取集合。’的信息提示出来,这是不应该的,不知道为什么?

2、在GHPYTHON中输入代码:
import rhinoscriptsyntax as rs
k = ghc.ConstructPoint(0,0,0)
ghc.TextTag3D(u,x,v,y,z)


然后设置好输入端,所输入的文字始终无法在屏幕上显示!怎么解决?




无标题.jpg (41.13 KB, 下载次数: 238)

无标题.jpg

无标题1.jpg (264.92 KB, 下载次数: 247)

无标题1.jpg
收藏 分享
回复

使用道具 举报

18

主题

166

帖子

984

积分

超级版主

Rank: 8Rank: 8

积分
984
沙发
发表于 2019-6-8 14:16:31 | 只看该作者
第一个问题正常的吧,看你用了sc.doc = Rhino.RhinoDoc.ActiveDoc打通了GH的空间和rhino的空间,并且调用了rhino自身的命令,可能是这个造成的。
第二个问题,gh中有些电池是不支持调用的,也属于正常。
[db:签名]
回复

使用道具 举报

1

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
板凳
 楼主| 发表于 2019-6-8 17:50:24 | 只看该作者
非常感谢版主的回复!!!
1、我用其它rhino命令做运算器时没有发现这个问题,按好我的理解 rs.command 的ECHO输入只要是False,RHINO的命令提示行就不会显示信息,而这次大部分都没有显示,只显示了最后一条。要么是BUG,也许还有什么更好的方法;
2、我一致相信,只要ghpythonlib.components 里有的运算器可调用,就是有效的,按照您的回复是不一定,如果是这样,真的挺可惜的,这个答案还需要继续确定。。
再次感谢版主百忙之中的回复!
回复

使用道具 举报

18

主题

166

帖子

984

积分

超级版主

Rank: 8Rank: 8

积分
984
地板
发表于 2019-6-9 12:57:12 | 只看该作者
本帖最后由 筑梦NARUTO 于 2019-6-9 12:58 编辑
zhangvip0755 发表于 2019-6-8 17:50
非常感谢版主的回复!!!
1、我用其它rhino命令做运算器时没有发现这个问题,按好我的理解 rs.command 的E ...

第二个问题是肯定有电池不支持调用的,比如你试试Display栏下别的电池,基本上都不行。这些都需要调用rhinocommon自己写.

第一个问题我不确定是因为我很少调用rhino的命令,建议能用rhinocommon的就用rhinocommon
[db:签名]
回复

使用道具 举报

1

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
5#
 楼主| 发表于 2019-6-9 13:12:46 | 只看该作者
明白!谢谢!
回复

使用道具 举报

1

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
6#
 楼主| 发表于 2019-6-20 10:05:36 | 只看该作者
再请教 筑梦NARUTO 版主一个挺菜的问题,当然是关于rhinocommon的问题:
以下分别是python和C#代码,实现同一个目的,只不过python在判断为主程序后直接就调用了函数。
import Rhino
import scriptcontext
import System.Guid

def AddBrepBox():
    pt0 = Rhino.Geometry.Point3d(0, 0, 0)
    pt1 = Rhino.Geometry.Point3d(10, 10, 10)
    box = Rhino.Geometry.BoundingBox(pt0, pt1)
    brep = box.ToBrep()
    rc = Rhino.Commands.Result.Failure
    if( scriptcontext.doc.Objects.AddBrep(brep) != System.Guid.Empty ):
        rc = Rhino.Commands.Result.Success
        scriptcontext.doc.Views.Redraw()
    return rc

if( __name__ == "__main__" ):
    AddBrepBox()

但是C#的对应方法没有调用:
partial class Examples
{
  public static Rhino.Commands.Result AddBrepBox(Rhino.RhinoDoc doc)
  {
    Rhino.Geometry.Point3d pt0 = new Rhino.Geometry.Point3d(0, 0, 0);
    Rhino.Geometry.Point3d pt1 = new Rhino.Geometry.Point3d(10, 10, 10);
    Rhino.Geometry.BoundingBox box = new Rhino.Geometry.BoundingBox(pt0, pt1);
    Rhino.Geometry.Brep brep = box.ToBrep();
    Rhino.Commands.Result rc = Rhino.Commands.Result.Failure;
    if( doc.Objects.AddBrep(brep) != System.Guid.Empty )
    {
      rc = Rhino.Commands.Result.Success;
      doc.Views.Redraw();
    }
    return rc;
  }
}

那么!我该如何调用它,具体是:AddBrepBox(Rhino.RhinoDoc doc)的输入项是什么?
Examples.AddBrepBox(??),这个括弧里应该输入什么?

谢谢!


回复

使用道具 举报

1

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
7#
 楼主| 发表于 2019-6-26 14:30:50 | 只看该作者
知道了!调用方法是:
Examples.AddBrepBox(doc)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩推荐

Rhino 6 的授权管理模式的调整与转换

2020-08-20 图文教学

2020冬季 Rhino 建筑造型系统面授课程

2020-03-21 面授课程

课程介绍|Rhino工业/艺术设计曲面造型高级

2020-03-20 面授课程

2020暑期 Grasshopper参数化系统面授课程

2020-03-20 面授课程

VisualARQ 2.7 发布更新

2020-02-17 新闻

VisualARQ 2.6 发布更新

2019-12-12 新闻

ShapeMap–复杂形体的表面纹理贴合参数化插

2019-11-04 新闻

图文教学 | Rhino 6 细分建模 BARCELONA 椅

2019-06-30 图文教学

Rhino3D(犀牛)中文网

  • 深圳:0755-29642189
  • 上海:021-56496412
  • 成都:028-61592400
  • support@shaper3d.com

关注我们

Copyright   ©2007-2017  Rhino3D犀牛中文网  Powered by©Discuz!     ( 粤ICP备12051517号-5