Ruby 创建一个插件,将文本放入.txt文件
我正在用Ruby创建一个插件。 此时,我无法在.txt文件中插入添加到Sketchup模型的坐标 这是我的代码:Ruby 创建一个插件,将文本放入.txt文件,ruby,text,module,stdout,sketchup,Ruby,Text,Module,Stdout,Sketchup,我正在用Ruby创建一个插件。 此时,我无法在.txt文件中插入添加到Sketchup模型的坐标 这是我的代码: require 'sketchup.rb' SKETCHUP_CONSOLE.show rescue Sketchup.send_action("showRubyPanel:") $stdout = File.new('file.txt', 'w') module HWmakemyownplug def self.fileplug model = Sketchup.ac
require 'sketchup.rb'
SKETCHUP_CONSOLE.show rescue Sketchup.send_action("showRubyPanel:")
$stdout = File.new('file.txt', 'w')
module HWmakemyownplug
def self.fileplug
model = Sketchup.active_model
#Make some coordinates.
coordinates = [[2,0,39],[0,0,1],[1,1,0]]
#Add the points in Sketchup. This works!
coordinates.each { |point| model.active_entities.add_cpoint(point) }
#Puts the coordinates to the textfile 'file.txt'. This doesn't work!
$stdout.puts(coordinates)
end #def self.fileplug
end #module makemyownplug
if (!file_loaded?(__FILE__))
#Add to the SketchUp tools menu
extensions_menu = UI.menu("Plugins")
extensions_menu.add_item("testtesttest") { HWmakemyownplug::fileplug }
# Let Ruby know we have loaded this file
file_loaded(__FILE__)
end
当我点击菜单>插件>测试时,必须打印坐标。您忘记在$stdout.put(坐标)之后关闭文件
$stdout.close此时$stdout.put(坐标)不起作用,我得到一个空文件为什么要将文件句柄分配给
$stdout
。最好将其指定给局部变量。否则,您会弄乱标准输出,从而影响其他扩展。此外,请查看打开文件的块参数版本,以确保文件始终正确关闭。