{"id":7733,"date":"2023-03-24T16:40:17","date_gmt":"2023-03-24T07:40:17","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7733"},"modified":"2026-01-13T15:28:44","modified_gmt":"2026-01-13T06:28:44","slug":"sketchup-plugin-%ea%b0%9c%eb%b0%9c%ed%95%98%ea%b8%b0-with-ruby","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7733","title":{"rendered":"SketchUp Plugin \uac1c\ubc1c\ud558\uae30 with VSCode"},"content":{"rendered":"<h1>SketchUp Plugin \uac1c\ubc1c\ud558\uae30 with VSCode<\/h1>\n<p><a href=\"http:\/\/arx119.egloos.com\/m\/11407259\">\ucc38\uc870<\/a><\/p>\n<h2>SketchUp \uc124\uce58<\/h2>\n<p>\uc544\ub798 \ub0b4\uc6a9\uc740 SketchUp Pro 2020 \uc744 \uae30\uc900\uc73c\ub85c \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<h2>VSCode \uc124\uce58<\/h2>\n<p>\ucd5c\uc2e0\ubc84\uc804\uc744 \uc124\uce58\ud569\ub2c8\ub2e4.<\/p>\n<h2>Ruby \uc124\uce58<\/h2>\n<p>SketchUp \uc124\uce58 \ud6c4 <code>Ruby Console<\/code> \uc744 \uc2e4\ud589\ud55c \ud6c4,<br \/>\n\uba54\ub274 &gt; Window &gt; <code>&quot;#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}&quot;<\/code> \ub97c \uc2e4\ud589\ud574 \uc8fc\uba74 \ud604\uc7ac \uc2a4\ucf00\uce58\uc5c5\uc774 \uc2e4\ud589\uc911\uc778 \ub8e8\ube44 \ubc84\uc804\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc2e4\ud589\uc911\uc778 \ub8e8\ube44 \ubc84\uc804\uc744 \uc124\uce58\ud574 \uc90d\ub2c8\ub2e4.(<a href=\"https:\/\/rubyinstaller.org\/downloads\/archives\/\">\uc5ec\uae30<\/a>)<\/p>\n<h2>VSCode \ud50c\ub7ec\uadf8\uc778 \uc124\uce58<\/h2>\n<p><del><code>Ruby for Visual Studio Code<\/code><\/del> <code>Ruby LSP<\/code> \ub97c \uc124\uce58\ud569\ub2c8\ub2e4.<\/p>\n<h2>Hello, World<\/h2>\n<p>VSCode \uc5d0\uc11c \uc544\ub798 \ud3f4\ub354\ub97c \uc5f4\uc5b4\uc90d\ub2c8\ub2e4.<\/p>\n<p><code>C:\\Users\\\uc0ac\uc6a9\uc790\uacc4\uc815\\AppData\\Roaming\\SketchUp\\SketchUp \ubc84\uc804\\SketchUp\\Plugins<\/code><\/p>\n<p>\uc544\ub798 \ud30c\uc77c\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<p>my_devtool.rb<\/p>\n<pre><code class=\"language-ruby\">require &quot;sketchup.rb&quot;\nrequire &quot;extensions.rb&quot;\n\nmy_devtool_loader = SketchupExtension.new &quot;My Devtool Loader&quot;, &quot;my_devtool\/main.rb&quot;\nmy_devtool_loader.copyright= &quot;Copyright 2023 skyer9&quot;\nmy_devtool_loader.creator= &quot;skyer9&quot;\nmy_devtool_loader.version = &quot;1.0&quot;\nmy_devtool_loader.description = &quot;My Devtool&quot;\nSketchup.register_extension my_devtool_loader, true<\/code><\/pre>\n<p>my_devtool\/main.rb<\/p>\n<pre><code class=\"language-ruby\">require &quot;sketchup.rb&quot;\n\nmodule My_devtool\n\n    PLUGIN_ROOT ||= File.dirname(__FILE__)\n\n    def self.reload\n        load (File.join(PLUGIN_ROOT, &quot;my_devtool.rb&quot;))\n        load (File.join(PLUGIN_ROOT, &quot;my_devtool\/main.rb&quot;))\n    end\n\n    def self.hello\n        puts &quot;Hello, world!&quot;\n    end\nend\n\nunless file_loaded?(__FILE__)\n    mymenu = UI.menu(&quot;Plugins&quot;).add_submenu(&quot;My Devtool&quot;)\n    mymenu.add_item(&quot;Reload plugins&quot;) {My_devtool::reload}\n    mymenu.add_item(&quot;Hello, World!&quot;) {My_devtool::hello}\n    file_loaded(__FILE__)\nend<\/code><\/pre>\n<p>SketchUp \uc744 \uc7ac\uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n<p>\uba54\ub274\uac00 \ucd94\uac00\ub41c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uace0, Ruby Console \uc744 \uc2e4\ud589\ud6c4 \uba54\ub274\ub97c \uc2e4\ud589\ud558\uba74 \uacb0\uacfc\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Hello, world! \ubb38\uc790\uc5f4\uc744 \ubcc0\uacbd\ud574 \uac00\uba74\uc11c Reload plugins \ub97c \ud574\ubcf4\uba74 \ubb38\uc790\uc5f4\uc774 \ubcc0\uacbd\ub418\ub294 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SketchUp Plugin \uac1c\ubc1c\ud558\uae30 with VSCode \ucc38\uc870 SketchUp \uc124\uce58 \uc544\ub798 \ub0b4\uc6a9\uc740 SketchUp Pro 2020 \uc744 \uae30\uc900\uc73c\ub85c \uc124\uba85\ud569\ub2c8\ub2e4. VSCode \uc124\uce58 \ucd5c\uc2e0\ubc84\uc804\uc744 \uc124\uce58\ud569\ub2c8\ub2e4. Ruby \uc124\uce58 SketchUp \uc124\uce58 \ud6c4 Ruby Console \uc744 \uc2e4\ud589\ud55c \ud6c4, \uba54\ub274 &gt; Window &gt; &quot;#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}&quot; \ub97c \uc2e4\ud589\ud574 \uc8fc\uba74 \ud604\uc7ac \uc2a4\ucf00\uce58\uc5c5\uc774 \uc2e4\ud589\uc911\uc778 \ub8e8\ube44 \ubc84\uc804\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc2e4\ud589\uc911\uc778 \ub8e8\ube44 \ubc84\uc804\uc744 \uc124\uce58\ud574 \uc90d\ub2c8\ub2e4.(\uc5ec\uae30) VSCode \ud50c\ub7ec\uadf8\uc778 \uc124\uce58 Ruby\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7733\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44],"tags":[],"class_list":["post-7733","post","type-post","status-publish","format-standard","hentry","category-sketchup"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7733"}],"version-history":[{"count":11,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7733\/revisions"}],"predecessor-version":[{"id":11311,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7733\/revisions\/11311"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}