【问题标题】:Loading Ruby scripts in SketchUp: LoadError: (eval):0:in `load': no such file to load在 SketchUp 中加载 Ruby 脚本:LoadError: (eval):0:in `load': no such file to load
【发布时间】:2016-02-19 13:48:41
【问题描述】:

我一直在尝试手动将 Ruby 脚本加载到 SketchUp 中,使用 load.我总是收到一条错误消息,说该文件不存在,即使它在目录中也是如此。

这是我的代码示例:
load "H:Document\sclf_color_by_z_1.6.1_1.rbz"

和错误信息:

错误:LoadError: (eval):0:in `load': no such file to load -- H:Document clf_color_by_z_1.6.1_1.rbz>
(评估)
(评估):0

【问题讨论】:

    标签: ruby sketchup


    【解决方案1】:

    这里有三个问题:

    1. H:Document\sclf_color_by_z_1.6.1_1.rbz 不是有效路径。在驱动器说明符 H: 之后,您应该有一个分隔符:\ - 就像这样:H:\Document\sclf_color_by_z_1.6.1_1.rbz

    2. 编程时请注意字符串中的转义字符。 \ 就是这样一个角色。 要更正你的字符串,你必须有这样的东西: "H:\\Document\\sclf_color_by_z_1.6.1_1.rbz" https://en.wikibooks.org/wiki/Ruby_Programming/Strings#Escape_sequences 但是请注意,Ruby 的约定是使用正斜杠 - 即使在 Windows 上也是如此:"H:/Document/clf_color_by_z_1.6.1_1.rbz"

    3. 您正在尝试在此处加载 RBZ 文件。这与 RB 文件相同。 RBZ 是一个打包的 SketchUp 扩展(实际上是一个 ZIP 文件)。要以编程方式安装 RBZ,您必须使用 Sketchup.install_from_archive("H:/Document/clf_color_by_z_1.6.1_1.rbz") http://www.sketchup.com/intl/en/developer/docs/ourdoc/sketchup#install_from_archive

    请注意,Sketchup.install_from_archiveload 完全不同——它将扩展永久安装到 SketchUp,而 load 将仅用于该会话。

    只要你有一个你认为应该在磁盘上的文件路径——作为系统是否可以找到它:File.exist?("H:\Document\sclf_color_by_z_1.6.1_1.rbz") 如果返回false,你知道你需要再次仔细检查你的路径,检查语法错误和拼写错误.

    【讨论】:

      【解决方案2】:
      1. 您应该使用File.join() 方法。在你的情况下:

      2. 您不能将load 用于.rbz 文件,但您可以使用Sketchup.install_from_archive(),正如thomthom 所说的那样

      所以在你的情况下你可以简单地做:

      file = File.join( 'H:', 'Document' , 'sclf_color_by_z_1.6.1_1.rbz' )
      Sketchup.install_from_archive file
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多