文字的显示怎么实现?

用int也不行啊。。或字符也不行

1 个赞

他需要的类型还是这个"Alignment",给了int以后你需要将其做一个强制转换。
enum列表只是告诉你int和他这几个Alignment的对应原则。

int a;
a=2;
那么(Rhino.DocObjects.TextHorizontalAlignment)a这个表达式对应的就是右对齐


如你所见,你选择的是困难模式,有大量知识点是缺漏的。

1 个赞

所有我认为需要提点你的地方,我都会尽量解答详细。能给链接的我会直接给链接。
Rhinocommon并不是一本写的很好的程序文档。

但如果涉及到if语句都不会写的情况,这类属于搜索引擎都可以轻易搜到信息。
这不属于抄近路,也不属于“现阶段就是这样”能够解释得通的。

针对这两类问题我会以不同的方式回答你,也希望你理解。

1 个赞

理解,感谢老师的耐心 :heart:

显示的所有端口都搞定了,就是bake开关怎么都搞不定 :joy:


谢谢二位老师,学到不少。 :relaxed:
显示文字3.gh (20.3 KB)

Snipaste_2021-07-15_19-33-19
已经回答你了

首先你自己已经成功bake出来了,只是少了个按钮
1
其次月神帮你重新整理了架构


如上图,这个部分就是主程序了
3
再然后我告诉你了if的写法,这是最基础的python语法

同时又介绍了if应该加在bake语句的上面

我连bake的语句都告诉你了

此时你应该做的是整理两句话
if b=true:
Rhino.RhinoDoc.ActiveDoc.Objects.AddText(你的参数)
然后百度一下,得知python的if语句格式是:
6
其实编译器会自动给你的if下一行加空格

把这两句话加入到你的runscript最后即可。

我不是很理解以上几个非常简单的拼凑过程,为什么会怎么都弄不出来。

之前我也是这样试过的
写上面?

1 个赞

A


这头和尾不知道填什么了。

查阅rhinocommon。不要偷懒只看内部的提示。
https://developer.rhino3d.com/api/RhinoCommon/html/Overload_Rhino_DocObjects_Tables_ObjectTable_AddText.htm


有那么多函数可以选择,搞不清Attribute那个的话,你选不带attribute的就可以

1 个赞


还是不行

成功了 :grinning: 但是位置有点问题

是之前放的位置不对

1 个赞

一般情况下不会将bake写到显示模块中,而是会写在主程序。
不过慢慢来,在GH环境写代码比起普通环境难度本来就要大。

1 个赞

多谢了,没有两位老师指点,我还真没辙 :sweat_smile:。现在觉得代码还挺有意思的。

又出问题了,bake按钮按下去,共bake了4份是怎么回事?


显示文字8.gh (13.4 KB)

建议你先学习一下python基础,你写到for循环里了,肯定会bake几份啊。

1 个赞



月神看一下这个代码,一般情况不会在这个重载里面去bake的。一旦在这里试图做bake,固定运行4次。

2 个赞

我的话我会单独定义一个函数来bake,像这样。

还有一个问题就是写过sc.doc = r.RhinoDoc.ActiveDoc,必须要写sc.doc = ghdoc,不然会一直在rhinodoc中操作,也就一直在bake了。

显示文字8.gh (16.3 KB)

比如随便写个添加圆。写了sc.doc = r.RhinoDoc.ActiveDoc就全bake到犀牛里了。
1

然后把sc.doc = r.RhinoDoc.ActiveDoc删掉,这个时候还没有把doc换回ghdoc,就还是一直在bake。
1

写个sc.doc = ghdoc,把doc换成ghdoc就不会bake到犀牛里了。

3 个赞