×

工业设计互动平台

手机短信,快捷登录

微信登录,快人一步

QQ登录

只需一步,快速开始

GH脚本电池增强编辑器 (gh脚本开发必备工具)

发布于 2014-9-28 5 点赞 10 评论 19434 浏览

本帖最后由 huaxiamengqing 于 2014-9-28 13:41 编辑

感谢各位关注。新加入成员可以查看之前的消息记录。由于用户基础不一,我们要由浅入深,先讲基础操作,再讲工程实例,再到深入GHA开发,以及各种复杂算法。期间可能会穿插着来讲,可以直接回复问题,我们会尽量去解答。您觉得有用,请将此微信号分享给能用得着的朋友。(本微信号文章如有转载请注明作者和出处,如用于商业用途请联系作者)
- - -------------------------------------------------------------
前段时间比较忙,没顾上更新文章,各位多多包涵--
在GH使用脚本的用户,一定要看这篇文章,如果你还在为VB,C#电池编辑器的只能提示而感到蛋疼,那么这篇文章将为你带来福音,一个简单gha可以让你在VS里面写GH里面的脚本代码。
首先,声明,这个插件不是本人所写,是gh官方论坛上一个叫 Mateusz Zwierzycki搞的,思路很简单,但是很实用。
其原理就是监控VS编辑器里面的代码,传递到脚本电池里面实现同步。
同步的实现也很简单,是用自带电池Params.Primitive.File Path实现的,如下图:
08.png
我们知道,这个电池是用来获取文件路径的,但是可能很多人不知道它能根据保存时间同步更新(也就是激活运行一次)如下图:
09.png
注意此处同步不支持带有中文字符的路径。
好了,扫盲过后,我们来看如何实现VS脚本代码传输(再啰嗦一句,不知道VS的可以去下载,VS是微软一个很智能的net代码编译器,一个智能的开发环境)
有三个文件如下图:
10.png
那个GHA文件,你直接拖入到gh的画布里面就加载了,加载后会有一个电池出现在下面
11.png
将你所要编辑的VB或者C#电池拖入到指定位置。
新建一个VS的项目,任何项目都行,然后添加现有项:
07.png
如果你用的是VB电池,添加vbExample.vb如果你用的是C#就添加csExample.cs
然后,如下图修改一下代码否则会报错
06.png
就添加一个MustInherit就行了。
接着,你需要引用必要的Dll文件,否则也不会智能提示(主要的命名空间已经导入了)
必要的dll文件如下图:
02.png
这几个大家应该都熟悉,在什么位置我就不啰嗦了。
这些准备完,我们要在gh中操作了,如下图选择.vb或者.cs文件的路径
05.png .

04.png
OK,这里一定要注意,.vb或者.cs文件的位置已经变了,不是以前的了,已经被复制到你的项目文件下了,一定要引用项目下的那个
12.png
这样所有准备工作就做完了,我们可以在VS里面写代码了
01.png
如果你的Path电池设置了同步,那么按Ctrl+S就可以同步到GH文件里面,否则你要双击FTS电池同步。
03.png
用着的确很爽,下面的原文链接:http://www.grasshopper3d.com/group/milkbox/forum/topics/file-to-script-maths
附件里面有上面所说文件..
欢迎下载本人所写插件:GH幕墙相关算法插件下载地址:http://www.food4rhino.com/project/segghcommon
欢迎加入gh知识传播微信号SecondEffectGroup
精彩分享:
欢迎传播此微信号:SecondEffectGroup
0.jpg
欢迎点击链接加入QQ群【中国RhinoGH插件社区1】:http://jq.qq.com/?_wv=1027&k=S0ALQZ
群号为:82367748



增强脚本编译器.rar

16.95 KB, 下载次数: 371

 [充值]

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

本版积分规则

精彩回复

文明上网理性发言、请文明用语

huaxiamengqing | 设计助理 | 发表于 2014-9-28 14:47:59
本帖最后由 huaxiamengqing 于 2014-9-28 15:01 编辑

很多人反映这个无法使用中文变量,或者中文注释,在脚本电池里面会乱码。
根据经验,应该是解码问题,我用Refector.exe打开代码看果然:
   string str2 = string.Empty;
                using (StreamReader reader = new StreamReader([url=]destination[/url]))
                {
                    [url=]str2[/url] = [url=]reader[/url].ReadToEnd();
                }
作者懒省事,没有指定StreamReader的解码方式,一般如果涉及的语言问题,都指定用默认解码就不会乱码了
一时半会也联系不上作者,果断破解掉更改其中间代码,更改后:
    string text2 = string.Empty;
                using (StreamReader streamReader2 = new StreamReader(empty, Encoding.Default))
                {
                    text2 = streamReader2.ReadToEnd();
                }
这样程序就可以使用中文字符了。
附件是更改后的gha文件,替换掉之前那个就行了。注意名字改一致替换。
15.png

FileToScript(修改可以用中文注释).gha

36.5 KB, 下载次数: 129

 [充值]

1 回复

举报

hongyan0921 | 实习生 | 发表于 2014-11-27 22:46:47
厉害 学习了 向牛人看齐
0 回复

举报

hurry510 | 实习生 | 发表于 2015-5-24 19:04:28
这么有用的东西怎么没人赞啊  看来大多数人还是不用vs的
0 回复

举报

JessieTAT | 实习生 | 发表于 2015-10-20 15:50:56
天啊 赞 [s:178]
0 回复

举报

JessieTAT | 实习生 | 发表于 2015-10-20 16:22:35
请问在哪里可以找到GH那两个.dll文件-。-
0 回复

举报

SHIH_Eng_An | 实习生 | 发表于 2016-8-8 09:22:14
点赞,谢谢楼主
0 回复

举报

po3232812 | 实习生 | 发表于 2016-9-29 10:08:08
6666666666666
0 回复

举报

pollen | 实习生 | 发表于 2017-11-10 16:41:52
楼主在吗???为啥只有VB同步得了,C#完全同步不上呀C:\Users\Administrator\Desktop\Csharp
0 回复

举报

袋鼠 | 实习生 | 发表于 2018-3-30 09:13:16
原来这个是同步器···怪不得···
0 回复

举报

min_zxm | 设计助理 | 发表于 2020-2-25 20:58:16
大神,可以同步了,非常感谢!想多问一句,怎么在VS中调试程序呢?
0 回复

举报