sheji2010 发表于 2011-12-1 08:10:43

在SketchUp 8.0上移植Ruby插件的正确方法

本帖最后由 sheji2010 于 2011-12-1 16:20 编辑

SketchUp 8.0更新了Ruby插件解译器 【转载】SketchUp 8.0内建API (应用程式介面)的Ruby解译器,已经从Ruby 1.8.0更新到1.8.6版,这是一个支持程度更好、更稳定的解译器版本。这个版本让API的使用者能够受惠於修正了上百个Ruby的错误,但是1.8.6同时也对Ruby的程式语法要求得更加严格。如果某个插件脚本出现了执行错误的状况,你可能需要跟这个插件的原作者联络,要求插件的新版本』Ruby解译器更新衍生的插件问题 上面那段说明表述了SketchUp 8.0的Ruby控制台使用了新的1.8.6解译器,虽然在"理论上" 1.8.6能解译从前以1.8.0或更早版本写的Ruby script,但是1.8.6的程序语法要求更加严格,当前Ruby插件的众多作者其专业程度参差不齐,编程的语法未必都很严谨,所以无法保证从前那些为SU写的Ruby插件都能在SU 8里正常解译运行。除了外来插件自身的Ruby语法问题之外,由於SketchUp 8.0是个主要版本,安装程序在安装过程中会在SU8安装目录下Plugins和Tools这二个文件夹里装进基於上述1.8.6的『新版本Ruby插件』,这些Ruby插件是运行SU8的某些功能所必要的插件,其中有些属于基本工具插件,例如sketchup.rb, langhandler.rb, extensions.rb等等,许多外来的Ruby插件需要呼叫这些插件来协同运行。由於这些基本插件在SU8更新了版本,故而所有基于旧版本SketchUp所写的外来插件,都无法保证在SU8里一定能正常运行。身为使用者,你必须留意插件间不相容的可能性。至于哪些相容、哪些不相容?现在没有人能明确告诉你,换句话说,你得自己去试出来。因此,如果你打算从旧版本SketchUp的Plugins插件目录里,把原先安装的Ruby插件复制到SU8的插件目录里继续使用,千万不要全选然后一股脑儿整批丢过去,别让SU8的Plugins以及Tools目录里既有的这些插件被旧版本(SU7/SU6)的同名插件覆盖(overwrite)掉。也不要让那些旧版本的sketchup.rb, langhandler.rb, extensions.rb等等基本插件随着别的插件夹带进SU8里来。否则…死也!当你再进入SU8的时候总会遇上什麽麻烦,或许有个错误信息对话框跳出来叫你"猜猜我是谁"。这二年我们曾经历过SU6到SU7的主版本更新,虽然在论坛里不止一次的提醒过注意插件更新的潜在冲突问题,许多人还是当成耳边风。为了怕麻烦,仍然是把整批插件不分青红皂白一股脑儿倒进SU的插件目录里,心存侥幸的认为传闻中"插件冲突"那档事不会那么倒霉的刚好落在自己头上。结果呢?结果就是在论坛上曾经陆陆续续看到有朋友发帖寻求协助处理这类问题,询问看到了错误信息该怎么办?这次我们又遇上从SU7到SU8这次主版本更新,并且Ruby解译器也同时更新了。这两天在论坛的一些回帖里看到有人说:"我不想更新到SU8…我还是坚持使用旧版本的SU7…"等等言语。当你从互联网上下载的模型或组件逐渐都换成了SU8的SKP文件时,你还能坚持继续使用SU7吗?也许你会迟一些时间更新,但是总归要顺从趋势那么做的。移植Ruby插件正确的做法 安装好SU8以后,当你准备要把来自於旧版本SketchUp的Ruby插件移植进新安装的SU8里的时候,为了避免发生插件间相互冲突的问题,正确的做法是:(1)首先把SU8安装时自带的Tools和Plugins二个文件夹做个备份,放在SU8安装目录之外,或者把备份的文件夹更名成SketchUp认不得的文件夹名称。(2) 移植Ruby插件时,"每次只复制一个插件"。接着就得重新进入SU8操作这个插件,测试这个插件是否运行正常。假如发生了冲突或SU崩溃的问题,你就能准确的辨认出就是这个最后加进的插件跟已经安装在Plugins目录里的某个插件发生了冲突。除非你能确定那一头是哪个已安装的插件跟它冲突,否则这个会闖祸插件就别装了,趋吉避凶呗!(3)当你打算从Plugins插件文件夹里移除某个插件的时候,一定得弄清楚这个插件倒底包含了哪些东西。有的Ruby写得很简单,就是一个XXX.rb而已,移除了它就一了百了的清爽了。但是有些插件本身就很复杂,在Plugins目录里除了在有个专用文件夹盛装跟插件相关的诸多程序和图像之外,在Plugins目录里还会有个用於启动插件的Ruby程序(例如ABCD文件夹和abcd.rb),要移除这个插件的时候就得二者同时移除掉。(4) 最好的情况则是某个插件本身带有安装程序,经由安装程序进行安装,当然要移除这样的插件也得经由其自带的卸载程序进行卸载。不过现在可以移植7.0Ruby插件解译器 到8.0里面可以解决这个问题!不过上面有些话还是值得新手参考学习的!地址:请问怎么才能让S8.0支持7的插件
http://www.sketchupvr.com/forum.php?mod=viewthread&tid=240&fromuid=38

绝望先生 发表于 2013-6-18 00:48:41

感谢楼主好人啊

joyme 发表于 2015-6-25 01:26:51

楼主辛苦谢谢分享
页: [1]
查看完整版本: 在SketchUp 8.0上移植Ruby插件的正确方法