【Software-vscode】用vscode调试ruby 和 ruby for Sketchup

1.下载安装vscode

2.下载安装ruby

3.启动vscode安装ruby扩展

4.在cmd下使用下面两个命令安装ruby依赖

 

gem install ruby-debug-ide

gem install debase

 

5.测试本地ruby代码

启动vscode--->File(文件)--->Add Folder to Workspace(添加文件夹到工作空间)--->新建文件夹(如:Test)

选中Test工作空间新建一个main.rb文件,写代码

按住ctrl+shift+D快捷键添加Test工作空间的配置

选中Ruby调试环境

ctrl+shift+D 选中Debug Local File(Test)------>F5快捷键开始调试---->成功

  6.测试ruby for sketchup ,官方调试文档

 选中Tasks(任务)->Configuration Tasks(配置任务)->

在tasks.json文件配置如下():

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Debug SketchUp 2017",
            "type": "shell",
            "command": "open -a '/Applications/SketchUp 2017/SketchUp.app' --args -rdebug 'ide port=9527'",
            "windows": {
                "command": "&'C:/Program Files/SketchUp/SketchUp 2017/SketchUp.exe' -rdebug 'ide port=9527'"
            }
        }
    ]
}

修改Test工作空间下launch.json配置文件的端口号也为9527(其实两个文件的端口号要一致且没被其他占用都可以)

{
            "name": "Listen for rdebug-ide",
            "type": "Ruby",
            "request": "attach",
            "cwd": "${workspaceRoot}",
            "remoteHost": "127.0.0.1",
            "remotePort": "9527",
            "remoteWorkspaceRoot": "${workspaceRoot}"
        },

然后Tasks--->Run Tasks --->选中Debug Sketchup 2017 启动了Sketchup

ctrl+shift+D 打开调试选中 listen for rdebug-ide(Test)-----> F5开始调试运行

在SU 控制台加载main.rb文件或把main.rb放入Plugins中,添加断点开始调试即可

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
要在 SketchUp 中使用 SketchUp Ruby Vue 插件通过 `sketchup-bridge` 拖动模型,你需要进行以下步骤: 1. 首先,在 Vue 组件中引入 `sketchup-bridge`,并创建一个 `bridge` 对象: ```javascript import * as SketchupBridge from 'sketchup-bridge'; export default { data() { return { bridge: null }; }, created() { this.bridge = new SketchupBridge.Bridge(); } }; ``` 2. 在 Vue 组件中创建一个拖曳区域,用于拖曳模型: ```html <template> <div class="drop-zone" @dragover.prevent @drop="onDrop"> Drop model here </div> </template> ``` 3. 在 Vue 组件中编写一个处理拖曳操作的方法: ```javascript methods: { onDrop(event) { event.preventDefault(); const file = event.dataTransfer.files[0]; const reader = new FileReader(); reader.onload = event => { const base64Data = event.target.result.split(',')[1]; const filename = file.name; this.bridge.sendCommand('add_model', { filename, base64Data }); }; reader.readAsDataURL(file); } } ``` 上面的代码将在拖曳操作结束时将模型的文件名和 base64 编码的数据发送到 SketchUp 中。 4. 在 SketchUp 中,你需要创建一个 Ruby 插件,并将其添加到 SketchUp 中。你可以使用 SketchUp Extension Warehouse 或手动创建和安装插件。 5. 在插件中,你需要创建一个 `Sketchup::Http::RequestHandler` 对象,用于处理从 Vue 组件发送到 SketchUp 的请求。 ```ruby module MyPlugin class RequestHandler < Sketchup::Http::RequestHandler def handle_request(request, response) if request.post? && request.path == '/add_model' data = JSON.parse(request.body) filename, base64_data = data['filename'], data['base64Data'] model = Sketchup.active_model entities = model.active_entities definition = entities.add_instance('path/to/model.skp', Geom::Transformation.new) definition.name = filename definition.set_attribute('my_plugin', 'base64_data', base64_data) response.headers['Content-Type'] = 'application/json' response.body = JSON.dump({ success: true }) end end end end ``` 上面的代码将在拖曳操作结束时将从 Vue 组件发送的文件名和 base64 编码的数据解析为 SketchUp 中的模型,并将其添加到场景中。 6. 在插件中,你还需要创建一个 `Sketchup::Http::CommandHandler` 对象,用于处理从 `bridge.sendCommand` 发送到 SketchUp 的命令: ```ruby module MyPlugin class CommandHandler < Sketchup::Http::CommandHandler def handle_command(command, params, _) if command == 'add_model' filename, base64_data = params['filename'], params['base64Data'] model = Sketchup.active_model entities = model.active_entities definition = entities.add_instance('path/to/model.skp', Geom::Transformation.new) definition.name = filename definition.set_attribute('my_plugin', 'base64_data', base64_data) end end end end ``` 上面的代码将在 `bridge.sendCommand` 中发送的 `add_model` 命令中解析模型数据,并将其添加到场景中。 以上就是使用 SketchUp Ruby Vue 插件通过 `sketchup-bridge` 拖动模型到 SketchUp 的基本步骤。你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿来小同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值