{"id":2959,"date":"2026-03-18T21:57:53","date_gmt":"2026-03-18T12:57:53","guid":{"rendered":"https:\/\/y42u.net\/tec001\/?p=2959"},"modified":"2026-03-18T21:57:54","modified_gmt":"2026-03-18T12:57:54","slug":"qcad%e3%81%ab%e6%8c%87%e5%ae%9a%e5%ba%a7%e6%a8%99%e3%81%b8%e3%81%ae%e7%a7%bb%e5%8b%95%e6%a9%9f%e8%83%bd%e3%82%92%e8%bf%bd%e5%8a%a0","status":"publish","type":"post","link":"https:\/\/y42u.net\/tec001\/2026\/03\/18\/qcad%e3%81%ab%e6%8c%87%e5%ae%9a%e5%ba%a7%e6%a8%99%e3%81%b8%e3%81%ae%e7%a7%bb%e5%8b%95%e6%a9%9f%e8%83%bd%e3%82%92%e8%bf%bd%e5%8a%a0\/","title":{"rendered":"QCAD\u306b\u6307\u5b9a\u5ea7\u6a19\u3078\u306e\u79fb\u52d5\u6a5f\u80fd\u3092\u8ffd\u52a0"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">QCAD\u306b\u6307\u5b9a\u5ea7\u6a19\u3078\u306e\u79fb\u52d5\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3057\u305f\u3002JavaScript\u3067\u30e1\u30cb\u30e5\u30fc\u767b\u9332\u3001\u8ffd\u52a0\u6a5f\u80fd\u5b9f\u884c\uff1d\u5ea7\u6a19\u79fb\u52d5\u30c0\u30a4\u30a2\u30ed\u30b0\u8868\u793a\u3057\u3066\u3001\u6307\u5b9a\u5ea7\u6a19\u3078\u306e\u753b\u9762\u79fb\u52d5\u3084\u3001\u62e1\u5927\u30fb\u7e2e\u5c0f\u3092\u884c\u3046\u6a5f\u80fd\u3067\u3059\u3002\u8cc7\u6599\u304c\u53e4\u304b\u3063\u305f\u308a\u3001\u30b5\u30f3\u30d7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u5c11\u306a\u304b\u3063\u305f\u308a\u3068\u8272\u3005\u30c9\u30bf\u30d0\u30bf\u3057\u307e\u3057\u305f\u304c\u3001\u4e00\u5fdc\u52d5\u4f5c\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:70% auto\"><figure class=\"wp-block-media-text__media\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"665\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.01.jpg?resize=1024%2C665&#038;ssl=1\" alt=\"\" class=\"wp-image-2964 size-full\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.01.jpg?resize=1024%2C665&amp;ssl=1 1024w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.01.jpg?resize=300%2C195&amp;ssl=1 300w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.01.jpg?resize=40%2C26&amp;ssl=1 40w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.01.jpg?resize=768%2C498&amp;ssl=1 768w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.01.jpg?resize=1536%2C997&amp;ssl=1 1536w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.01.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">\uff11\u3002\u300cM\u96d1\u591a\u300d\u300cQcadAdd\u300d\u300c\u5ea7\u6a19\u79fb\u52d5\u3068\u30ba\u30fc\u30e0\u300d\u3092\u5b9f\u884c<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:70% auto\"><figure class=\"wp-block-media-text__media\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"638\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.42.jpg?resize=1024%2C638&#038;ssl=1\" alt=\"\" class=\"wp-image-2962 size-full\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.42.jpg?resize=1024%2C638&amp;ssl=1 1024w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.42.jpg?resize=300%2C187&amp;ssl=1 300w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.42.jpg?resize=40%2C25&amp;ssl=1 40w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.42.jpg?resize=768%2C478&amp;ssl=1 768w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.42.jpg?resize=1536%2C957&amp;ssl=1 1536w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.07.42.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">\uff12\u3002\u5ea7\u6a19\u30b8\u30e3\u30f3\u30d7\u30c0\u30a4\u30a2\u30ed\u30b0\u304c\u8868\u793a\u3055\u308c\u308b\u3002<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:70% auto\"><figure class=\"wp-block-media-text__media\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"590\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.35.jpg?resize=1024%2C590&#038;ssl=1\" alt=\"\" class=\"wp-image-2961 size-full\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.35.jpg?resize=1024%2C590&amp;ssl=1 1024w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.35.jpg?resize=300%2C173&amp;ssl=1 300w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.35.jpg?resize=40%2C23&amp;ssl=1 40w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.35.jpg?resize=768%2C443&amp;ssl=1 768w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.35.jpg?resize=1536%2C886&amp;ssl=1 1536w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.35.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">\uff13\u3002\u79fb\u52d5\u3059\u308b\u5ea7\u6a19\u3092\u30ab\u30f3\u30de\u533a\u5207\u308a\u3067\u6307\u5b9a\u3057\u307e\u3059\u3002\u6307\u5b9a\u5f8c\u300c\u3053\u306e\u5ea7\u6a19\u3078\u30b8\u30e3\u30f3\u30d7\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u3001\u753b\u9762\u304c\u79fb\u52d5\u3057\u307e\u3059\u3002<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:70% auto\"><figure class=\"wp-block-media-text__media\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"619\" src=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.58.jpg?resize=1024%2C619&#038;ssl=1\" alt=\"\" class=\"wp-image-2963 size-full\" srcset=\"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.58.jpg?resize=1024%2C619&amp;ssl=1 1024w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.58.jpg?resize=300%2C181&amp;ssl=1 300w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.58.jpg?resize=40%2C24&amp;ssl=1 40w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.58.jpg?resize=768%2C464&amp;ssl=1 768w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.58.jpg?resize=1536%2C928&amp;ssl=1 1536w, https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.08.58.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">\uff14\u3002\u62e1\u5927\u3001\u7e2e\u5c0f\u30dc\u30bf\u30f3\u3067\u753b\u9762\u8868\u793a\u30b5\u30a4\u30ba\u3092\u5909\u66f4\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u5f8c\u306b\u3001\u5b9f\u969b\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u4f5c\u6210\u306e\u65b9\u6cd5\u3084\u30e1\u30cb\u30e5\u30fc\u914d\u7f6e\u65b9\u6cd5\u3092\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-jetpack-markdown\"><p><strong>\u5bfe\u8c61\u74b0\u5883<\/strong>: QCAD Professional 3.32.6 \/ Qt 6.x \/ macOS arm64<\/p>\n<hr>\n<h2>1. \u30d5\u30a1\u30a4\u30eb\u69cb\u6210\u306e\u539f\u5247<\/h2>\n<p>QCAD \u306e AddOn \u30b9\u30ad\u30e3\u30f3\uff08<code>AddOn.getAddOns()<\/code>\uff09\u306f\u4ee5\u4e0b\u306e\u898f\u5247\u3067\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u81ea\u52d5\u691c\u51fa\u3059\u308b\u3002<\/p>\n<pre><code>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d\/\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d.js\n<\/code><\/pre>\n<h3>&#x2705; \u6b63\u3057\u3044\u69cb\u6210<\/h3>\n<pre><code>scripts\/Misc\/\n  QcadAdd\/\n    QcadAdd.js            \u2190 AddOn\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u308b\uff08\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d\u3068\u4e00\u81f4\uff09\n    MoveAndZoom\/\n      MoveAndZoom.js      \u2190 AddOn\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u308b\uff08\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d\u3068\u4e00\u81f4\uff09\n<\/code><\/pre>\n<h3>&#x274c; \u52d5\u4f5c\u3057\u306a\u3044\u69cb\u6210<\/h3>\n<pre><code>scripts\/Misc\/\n  QcadAdd\/\n    MoveAndZoom.js        \u2190 \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u76f4\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u7121\u8996\u3055\u308c\u308b\n<\/code><\/pre>\n<hr>\n<h2>2. QCAD\u672c\u4f53\u3078\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u914d\u7f6e<\/h2>\n<p>QCAD Pro \u306e scripts \u30d5\u30a9\u30eb\u30c0\u306f\u4ee5\u4e0b\u306e\u30d1\u30b9\u306b\u3042\u308b\uff1a<\/p>\n<pre><code>\/Applications\/QCAD-Pro.app\/Contents\/Resources\/scripts\/\n<\/code><\/pre>\n<blockquote>\n<p><strong>readme.txt \u3088\u308a<\/strong>: \u3053\u306e\u30d5\u30a9\u30eb\u30c0\u306b\u914d\u7f6e\u3057\u305f\u30b9\u30af\u30ea\u30d7\u30c8\u306f\u30d7\u30e9\u30b0\u30a4\u30f3\u3088\u308a\u512a\u5148\u3055\u308c\u308b\u3002<\/p>\n<\/blockquote>\n<h3>\u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u30ea\u30f3\u30af\u3067\u958b\u767a\u30d5\u30a9\u30eb\u30c0\u3092\u63a5\u7d9a\u3059\u308b\u65b9\u6cd5<\/h3>\n<pre><code class=\"language-bash\">cd \/Applications\/QCAD-Pro.app\/Contents\/Resources\/scripts\/Misc\/\nln -s \/path\/to\/MyProject\/QcadAdd QcadAdd\n<\/code><\/pre>\n<p>\u3053\u308c\u306b\u3088\u308a\u958b\u767a\u30d5\u30a9\u30eb\u30c0\u3092\u76f4\u63a5 QCAD \u306b\u8a8d\u8b58\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002<\/p>\n<hr>\n<h2>3. \u5fc5\u9808\u30d5\u30a1\u30a4\u30eb\u306e\u69cb\u6210<\/h2>\n<h3>3-1. \u30e2\u30b8\u30e5\u30fc\u30eb\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\uff08\u4f8b: <code>QcadAdd\/QcadAdd.js<\/code>\uff09<\/h3>\n<p>\u30e1\u30cb\u30e5\u30fc\u968e\u5c64\u3092\u5b9a\u7fa9\u3059\u308b\u3002<code>Misc<\/code> \u306e\u4e0b\u306b\u30b5\u30d6\u30e1\u30cb\u30e5\u30fc\u3092\u4f5c\u6210\u3059\u308b\u5834\u5408\uff1a<\/p>\n<pre><code class=\"language-javascript\">include(&quot;scripts\/Misc\/Misc.js&quot;);\n\nfunction QcadAdd(guiAction) {\n    Misc.call(this, guiAction);\n}\n\nQcadAdd.prototype = new Misc();\nQcadAdd.includeBasePath = includeBasePath;\n\nQcadAdd.getMenu = function() {\n    var menu = EAction.getSubMenu(\n        Misc.getMenu(),\n        99000,          \/\/ \u30b0\u30eb\u30fc\u30d7\u30bd\u30fc\u30c8\u9806\uff08\u5927\u304d\u3044\u307b\u3069\u5f8c\uff09\n        100,            \/\/ \u30bd\u30fc\u30c8\u9806\n        QcadAdd.getTitle(),\n        &quot;QcadAddMenu&quot;   \/\/ \u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u540d\uff08\u30e1\u30cb\u30e5\u30fc\u9805\u76ee\u767b\u9332\u6642\u306b\u4f7f\u7528\uff09\n    );\n    return menu;\n};\n\nQcadAdd.getTitle = function() { return &quot;QcadAdd&quot;; };\nQcadAdd.prototype.getTitle = function() { return QcadAdd.getTitle(); };\n\nQcadAdd.init = function(basePath) {\n    QcadAdd.getMenu();  \/\/ \u30e1\u30cb\u30e5\u30fc\u3092\u4f5c\u6210\u3059\u308b\u3060\u3051\u3067\u3088\u3044\n};\n<\/code><\/pre>\n<h3>3-2. \u30a2\u30af\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb\uff08\u4f8b: <code>QcadAdd\/MoveAndZoom\/MoveAndZoom.js<\/code>\uff09<\/h3>\n<pre><code class=\"language-javascript\">include(&quot;scripts\/EAction.js&quot;);\n\nfunction MoveAndZoom(guiAction) {\n    EAction.call(this, guiAction);\n}\n\nMoveAndZoom.prototype = new EAction();\n\n\/\/ \u2605 \u5fc5\u9808: \u89aa\u30af\u30e9\u30b9\u306e beginEvent \u3092\u5fc5\u305a\u547c\u3076\nMoveAndZoom.prototype.beginEvent = function() {\n    EAction.prototype.beginEvent.call(this);  \/\/ \u2190 \u3053\u308c\u304c\u306a\u3044\u3068\u30e1\u30cb\u30e5\u30fc\u304b\u3089\u52d5\u304b\u306a\u3044\n    \/\/ \u51e6\u7406...\n    this.terminate();\n};\n\nMoveAndZoom.init = function(basePath) {\n    var action = new RGuiAction(&quot;\u30e1\u30cb\u30e5\u30fc\u8868\u793a\u540d&quot;, RMainWindowQt.getMainWindow());\n    action.setRequiresDocument(true);\n    action.setScriptFile(basePath + &quot;\/MoveAndZoom.js&quot;);\n    action.setGroupSortOrder(99000);\n    action.setSortOrder(0);\n    action.setWidgetNames([&quot;QcadAddMenu&quot;]);  \/\/ \u2190 \u30e2\u30b8\u30e5\u30fc\u30eb\u5b9a\u7fa9\u306e\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u540d\u3068\u4e00\u81f4\u3055\u305b\u308b\n};\n<\/code><\/pre>\n<hr>\n<h2>4. \u3088\u304f\u3042\u308b\u30cf\u30de\u308a\u30dd\u30a4\u30f3\u30c8\u3068\u89e3\u6c7a\u7b56<\/h2>\n<h3>\u2460 <code>beginEvent<\/code> \u3067 <code>EAction.prototype.beginEvent.call(this)<\/code> \u304c\u629c\u3051\u3066\u3044\u308b<\/h3>\n<ul>\n<li><strong>\u75c7\u72b6<\/strong>: \u30e1\u30cb\u30e5\u30fc\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3082\u4f55\u3082\u8d77\u304d\u306a\u3044\uff08\u30b5\u30a4\u30ec\u30f3\u30c8\u5931\u6557\uff09<\/li>\n<li><strong>\u539f\u56e0<\/strong>: \u89aa\u30af\u30e9\u30b9\u306e\u521d\u671f\u5316\u304c\u884c\u308f\u308c\u305a\u3001QCAD \u5185\u90e8\u72b6\u614b\u304c\u672a\u8a2d\u5b9a\u306e\u307e\u307e\u4e2d\u65ad\u3059\u308b<\/li>\n<li><strong>\u89e3\u6c7a<\/strong>: \u5fc5\u305a\u5148\u982d\u884c\u306b <code>EAction.prototype.beginEvent.call(this);<\/code> \u3092\u8ffd\u52a0\u3059\u308b<\/li>\n<\/ul>\n<h3>\u2461 <code>getDocumentInterface is not defined<\/code><\/h3>\n<ul>\n<li><strong>\u75c7\u72b6<\/strong>: \u30e1\u30cb\u30e5\u30fc\u304b\u3089\u5b9f\u884c\u3059\u308b\u3068\u30a8\u30e9\u30fc\u3001Script Console \u304b\u3089\u306f\u52d5\u304f<\/li>\n<li><strong>\u539f\u56e0<\/strong>: <code>getDocumentInterface()<\/code> \u306f <code>library.js<\/code> \u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u95a2\u6570\u3002AddOn \u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3067\u306f\u672a\u5b9a\u7fa9\u306b\u306a\u308b\u5834\u5408\u304c\u3042\u308b<\/li>\n<li><strong>\u89e3\u6c7a<\/strong>: \u4ee5\u4e0b\u306b\u7f6e\u304d\u63db\u3048\u308b<\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">\/\/ &#x274c; \u52d5\u304b\u306a\u3044\u5834\u5408\u304c\u3042\u308b\nvar di = getDocumentInterface();\n\n\/\/ &#x2705; \u5e38\u306b\u52d5\u4f5c\u3059\u308b\nvar di = RMainWindowQt.getMainWindow().getDocumentInterface();\n\n\/\/ &#x2705; beginEvent \u5185\u3067\u306f this \u304b\u3089\u53d6\u5f97\u3067\u304d\u308b\nvar di = this.getDocumentInterface();\n<\/code><\/pre>\n<h3>\u2462 <code>QcadAdd.js<\/code> \u304c\u5b58\u5728\u3057\u306a\u3044\u3068\u30d5\u30a9\u30eb\u30c0\u3054\u3068\u7121\u8996\u3055\u308c\u308b<\/h3>\n<ul>\n<li><strong>\u75c7\u72b6<\/strong>: \u30e1\u30cb\u30e5\u30fc\u306b\u4f55\u3082\u8868\u793a\u3055\u308c\u306a\u3044<\/li>\n<li><strong>\u539f\u56e0<\/strong>: AddOn \u30b9\u30ad\u30e3\u30f3\u306f <code>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d\/\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d.js<\/code> \u304c\u306a\u3044\u5834\u5408\u305d\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u7121\u8996\u3059\u308b<\/li>\n<li><strong>\u89e3\u6c7a<\/strong>: \u5fc5\u305a\u30e2\u30b8\u30e5\u30fc\u30eb\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\uff08<code>QcadAdd\/QcadAdd.js<\/code>\uff09\u3092\u4f5c\u6210\u3059\u308b<\/li>\n<\/ul>\n<h3>\u2463 <code>setMenuPath<\/code> \u306f\u30e1\u30cb\u30e5\u30fc\u3092\u4f5c\u6210\u3057\u306a\u3044<\/h3>\n<ul>\n<li><strong>\u75c7\u72b6<\/strong>: <code>action.setMenuPath(&quot;Misc\/QcadAdd&quot;)<\/code> \u3092\u8a2d\u5b9a\u3057\u3066\u3082\u8868\u793a\u3055\u308c\u306a\u3044<\/li>\n<li><strong>\u539f\u56e0<\/strong>: <code>setMenuPath<\/code> \u306f\u65e2\u5b58\u30e1\u30cb\u30e5\u30fc\u3078\u306e\u914d\u7f6e\u6307\u5b9a\u3002\u4e8b\u524d\u306b <code>getSubMenu<\/code> \u3067\u30e1\u30cb\u30e5\u30fc\u3092\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b<\/li>\n<li><strong>\u89e3\u6c7a<\/strong>: \u30e2\u30b8\u30e5\u30fc\u30eb\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\u3067 <code>getMenu()<\/code> \/ <code>getSubMenu()<\/code> \u3092\u4f7f\u3044\u30e1\u30cb\u30e5\u30fc\u3092\u5148\u306b\u4f5c\u6210\u3057\u3001<code>setWidgetNames([&quot;QcadAddMenu&quot;])<\/code> \u3067\u53c2\u7167\u3059\u308b<\/li>\n<\/ul>\n<h3>\u2464 <code>RGuiAction<\/code> \u306e\u7b2c2\u5f15\u6570\u306b <code>null<\/code> \u3092\u6e21\u3055\u306a\u3044<\/h3>\n<pre><code class=\"language-javascript\">\/\/ &#x274c;\nvar action = new RGuiAction(&quot;\u540d\u524d&quot;, null);\n\n\/\/ &#x2705;\nvar action = new RGuiAction(&quot;\u540d\u524d&quot;, RMainWindowQt.getMainWindow());\n<\/code><\/pre>\n<hr>\n<h2>5. \u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u30e2\u30fc\u30c9\u30ec\u30b9\uff08\u975e\u30d6\u30ed\u30c3\u30ad\u30f3\u30b0\uff09\u306b\u3059\u308b\u65b9\u6cd5<\/h2>\n<p><code>dialog.exec()<\/code> \u306f\u30e2\u30fc\u30c0\u30eb\uff08QCAD \u306e\u901a\u5e38\u64cd\u4f5c\u304c\u30d6\u30ed\u30c3\u30af\u3055\u308c\u308b\uff09\u3002<br>\n\u30e2\u30fc\u30c9\u30ec\u30b9\u306b\u3059\u308b\u306b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3059\u308b\uff1a<\/p>\n<pre><code class=\"language-javascript\">var appWin = RMainWindowQt.getMainWindow();\n\n\/\/ Qt.Tool: \u30e1\u30a4\u30f3\u30a6\u30a3\u30f3\u30c9\u30a6\u306b\u8ffd\u5f93\u3001\u5e38\u306b\u624b\u524d\u306b\u8868\u793a\nvar dialog = new QDialog(appWin, Qt.Tool);\n\n\/\/ GC\u9632\u6b62\u306e\u305f\u3081static\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u4fdd\u6301\uff08\u5fc5\u9808\uff09\nMyAction._dialog = dialog;\n\n\/\/ \u591a\u91cd\u8d77\u52d5\u9632\u6b62\nif (MyAction._dialog &amp;&amp; !MyAction._dialog.isHidden()) {\n    MyAction._dialog.raise();\n    MyAction._dialog.activateWindow();\n    return;\n}\n\n\/\/ exec() \u306e\u4ee3\u308f\u308a\u306b show() \u3092\u4f7f\u3046\ndialog.show();  \/\/ \u2190 \u30d6\u30ed\u30c3\u30af\u305b\u305a\u5373\u5ea7\u306b\u8fd4\u308b\n\n\/\/ \u9589\u3058\u308b\u30dc\u30bf\u30f3\nbtnClose.clicked.connect(function() { dialog.close(); });\n<\/code><\/pre>\n<blockquote>\n<p><strong>\u6ce8\u610f<\/strong>: <code>show()<\/code> \u5f8c\u306b\u95a2\u6570\u304c\u7d42\u4e86\u3057\u3066\u3082 <code>_dialog<\/code> \u306b\u53c2\u7167\u3092\u4fdd\u6301\u3057\u3066\u3044\u306a\u3044\u3068<br>\nGC\uff08\u30ac\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\uff09\u3067\u30c0\u30a4\u30a2\u30ed\u30b0\u304c\u5373\u5ea7\u306b\u7834\u68c4\u3055\u308c\u308b\u3002<\/p>\n<\/blockquote>\n<hr>\n<h2>6. \u30b9\u30af\u30ea\u30d7\u30c8\u66f4\u65b0\u5f8c\u306e\u53cd\u6620\u65b9\u6cd5<\/h2>\n<table>\n<thead>\n<tr>\n<th>\u65b9\u6cd5<\/th>\n<th>\u64cd\u4f5c<\/th>\n<th>\u5099\u8003<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>QCAD\u518d\u8d77\u52d5<\/strong><\/td>\n<td>\u30a2\u30d7\u30ea\u3092\u7d42\u4e86\u3057\u3066\u518d\u8d77\u52d5<\/td>\n<td>\u78ba\u5b9f<\/td>\n<\/tr>\n<tr>\n<td><strong>AddOn\u30ea\u30b9\u30c8\u518d\u30b9\u30ad\u30e3\u30f3<\/strong><\/td>\n<td>Tools \u2192 Run Script \u3067 <code>-rescan<\/code><\/td>\n<td>\u65b0\u898f\u30d5\u30a1\u30a4\u30eb\u3092\u8a8d\u8b58\u3055\u305b\u308b\u3068\u304d<\/td>\n<\/tr>\n<tr>\n<td><strong>Script Console \u304b\u3089\u518d\u30ed\u30fc\u30c9<\/strong><\/td>\n<td><code>include(&quot;scripts\/Misc\/QcadAdd\/MoveAndZoom\/MoveAndZoom.js&quot;)<\/code><\/td>\n<td>\u65e2\u5b58\u30af\u30e9\u30b9\u306e\u66f4\u65b0\u306e\u307f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr>\n<h2>7. \u30c7\u30d0\u30c3\u30b0\u306e\u30b3\u30c4<\/h2>\n<pre><code class=\"language-javascript\">\/\/ beginEvent \u5185\u3067\u30b9\u30c6\u30fc\u30bf\u30b9\u30d0\u30fc\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u51fa\u3059\nEAction.handleUserMessage(&quot;MyAction: \u8d77\u52d5\u4e2d...&quot;);\n\n\/\/ \u30a8\u30e9\u30fc\u3092\u53ef\u8996\u5316\u3059\u308b\ntry {\n    \/\/ \u51e6\u7406\n} catch(e) {\n    EAction.handleUserWarning(&quot;\u30a8\u30e9\u30fc: &quot; + e.message);\n    print(&quot;ERROR: &quot; + e);  \/\/ Script Console\u306b\u51fa\u529b\n}\n<\/code><\/pre>\n<p>Script Console\uff08Tools \u2192 Script Console\uff09\u3067\u306f <code>print()<\/code> \u306e\u51fa\u529b\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/p>\n<hr>\n<h2>8. \u53c2\u8003: \u5b8c\u5168\u306a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u4f8b<\/h2>\n<pre><code>\/Applications\/QCAD-Pro.app\/Contents\/Resources\/scripts\/Misc\/\n  QcadAdd\/              \u2190 \u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u30ea\u30f3\u30af\u3067\u3082\u53ef\n    QcadAdd.js          \u2190 \u30e2\u30b8\u30e5\u30fc\u30eb\u5b9a\u7fa9\uff08\u30e1\u30cb\u30e5\u30fc\u4f5c\u6210\uff09\n    MoveAndZoom\/\n      MoveAndZoom.js    \u2190 \u30a2\u30af\u30b7\u30e7\u30f3\u672c\u4f53\n    AnotherTool\/\n      AnotherTool.js    \u2190 \u8ffd\u52a0\u30a2\u30af\u30b7\u30e7\u30f3\n<\/code><\/pre>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\uff19\uff0e\u5b8c\u5168\u306a\u30b9\u30af\u30ea\u30d7\u30c8\u4f8b<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ MoveAndZoom\/MoveAndZoom.js\ninclude(\"scripts\/EAction.js\");\n\nfunction MoveAndZoom(guiAction) {\n    EAction.call(this, guiAction);\n}\n\nMoveAndZoom.prototype = new EAction();\n\nMoveAndZoom.prototype.beginEvent = function() {\n    try {\n        EAction.prototype.beginEvent.call(this);\n        EAction.handleUserMessage(\"MoveAndZoom: \u8d77\u52d5\u4e2d...\");\n        var di = this.getDocumentInterface();\n        MoveAndZoom.showDialog(di);\n    } catch(e) {\n        EAction.handleUserWarning(\"MoveAndZoom \u30a8\u30e9\u30fc: \" + e.message);\n        print(\"MoveAndZoom.beginEvent ERROR: \" + e);\n    }\n    this.terminate();\n};\n\nMoveAndZoom.showDialog = function(di) {\n    \/\/ \u65e2\u306b\u958b\u3044\u3066\u3044\u308b\u5834\u5408\u306f\u524d\u9762\u306b\u51fa\u3059\u3060\u3051\n    if (MoveAndZoom._dialog &amp;&amp; !MoveAndZoom._dialog.isHidden()) {\n        MoveAndZoom._dialog.raise();\n        MoveAndZoom._dialog.activateWindow();\n        return;\n    }\n\n    if (!di) {\n        di = RMainWindowQt.getMainWindow().getDocumentInterface();\n    }\n    var appWin = RMainWindowQt.getMainWindow();\n    if (!di) return;\n\n    var dialog = new QDialog(appWin, Qt.Tool);\n    MoveAndZoom._dialog = dialog; \/\/ GC\u9632\u6b62 &amp; \u591a\u91cd\u8d77\u52d5\u30c1\u30a7\u30c3\u30af\u7528\n    dialog.setWindowTitle(\"\u5ea7\u6a19\u30b8\u30e3\u30f3\u30d7\");\n    dialog.setMinimumWidth(500);\n\n    var layout = new QVBoxLayout(dialog);\n    layout.addWidget(new QLabel(\"\u5ea7\u6a19 (X, Y) \u3092\u8cbc\u308a\u4ed8\u3051:\"));\n    var editCoords = new QLineEdit(dialog);\n    editCoords.setPlaceholderText(\"37971.89, -18162.86\");\n    layout.addWidget(editCoords);\n\n    var statusEdit = new QTextEdit(dialog);\n    statusEdit.setReadOnly(true);\n    statusEdit.setMaximumHeight(100);\n    statusEdit.setPlainText(\"\u5f85\u6a5f\u4e2d...\");\n    layout.addWidget(statusEdit);\n\n    var btnMove = new QPushButton(\"\u3053\u306e\u5ea7\u6a19\u3078\u30b8\u30e3\u30f3\u30d7 (\u73fe\u5728\u306e\u500d\u7387)\", dialog);\n    btnMove.setMinimumHeight(45);\n    layout.addWidget(btnMove);\n\n    var zoomLayout = new QHBoxLayout();\n    var btnZoomIn  = new QPushButton(\"\u62e1\u5927 (+)\", dialog);\n    var btnZoomOut = new QPushButton(\"\u7e2e\u5c0f (-)\", dialog);\n    btnZoomIn.setMinimumHeight(35);\n    btnZoomOut.setMinimumHeight(35);\n    zoomLayout.addWidget(btnZoomIn);\n    zoomLayout.addWidget(btnZoomOut);\n    layout.addLayout(zoomLayout);\n\n    var btnClose = new QPushButton(\"\u9589\u3058\u308b\", dialog);\n    layout.addWidget(btnClose);\n\n    \/\/ --- \u30b8\u30e3\u30f3\u30d7\u51e6\u7406 ---\n    btnMove.clicked.connect(function() {\n        try {\n            var rawText = (typeof editCoords.text === \"function\") ? editCoords.text() : editCoords.text;\n            var parts = rawText.split(\/&#91;,\\s\\t\\n]+\/).filter(function(e) { return e.length > 0; });\n\n            if (parts.length >= 2) {\n                var x = parseFloat(parts&#91;0]);\n                var y = parseFloat(parts&#91;1]);\n\n                if (!isNaN(x) &amp;&amp; !isNaN(y)) {\n                    var currentDi = RMainWindowQt.getMainWindow().getDocumentInterface();\n                    var doc = currentDi.getDocument();\n                    var target = new RVector(x, y);\n\n                    \/\/ 1. \u9078\u629e\u89e3\u9664\n                    if (typeof currentDi.deselectAll === \"function\") {\n                        currentDi.deselectAll();\n                    }\n\n                    \/\/ 2. \u70b9\u306e\u4f5c\u6210\n                    var op = new RAddObjectsOperation();\n                    var point = new RPointEntity(doc, new RPointData(target));\n                    point.setSelected(true);\n                    op.addObject(point);\n                    currentDi.applyOperation(op);\n\n                    \/\/ 3. \u73fe\u5728\u306e\u8868\u793a\u30b5\u30a4\u30ba\u3092\u53d6\u5f97\u3057\u3066\u540c\u3058\u500d\u7387\u306e\u307e\u307e\u4e2d\u5fc3\u79fb\u52d5\n                    var view = currentDi.getLastKnownViewWithFocus();\n                    if (!isNull(view) &amp;&amp; typeof view.zoomTo === \"function\") {\n                        var vw = view.getWidth();\n                        var vh = view.getHeight();\n                        var factor = view.getFactor(); \/\/ pixels per model unit\n                        var halfW = (vw \/ 2) \/ factor;\n                        var halfH = (vh \/ 2) \/ factor;\n                        var box = new RBox(\n                            new RVector(x - halfW, y - halfH),\n                            new RVector(x + halfW, y + halfH)\n                        );\n                        view.zoomTo(box, 0);\n                        statusEdit.setPlainText(\"\u6210\u529f: (\" + x + \", \" + y + \") \u3078\u30b8\u30e3\u30f3\u30d7\u3057\u307e\u3057\u305f\u3002\");\n                    } else if (typeof currentDi.zoomToSelection === \"function\") {\n                        currentDi.zoomToSelection();\n                        statusEdit.setPlainText(\"\u6210\u529f &#91;zoomToSelection]: (\" + x + \", \" + y + \")\");\n                    } else {\n                        statusEdit.setPlainText(\"\u8b66\u544a: \u30ba\u30fc\u30e0\u624b\u6bb5\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002\");\n                    }\n\n                    currentDi.regenerateViews();\n                    if (typeof currentDi.repaintViews === \"function\") {\n                        currentDi.repaintViews();\n                    }\n                }\n            }\n        } catch (err) {\n            statusEdit.setPlainText(\"\u30a8\u30e9\u30fc:\\n\" + err.name + \"\\n\" + err.message);\n        }\n    });\n\n    \/\/ --- ZoomIn \/ ZoomOut ---\n    function doZoom(isIn) {\n        try {\n            var zdi   = RMainWindowQt.getMainWindow().getDocumentInterface();\n            var zview = zdi.getLastKnownViewWithFocus();\n            if (!isNull(zview)) {\n                if (isIn) {\n                    zview.zoomIn();\n                } else {\n                    zview.zoomOut();\n                }\n                if (typeof zdi.repaintViews === \"function\") zdi.repaintViews();\n                statusEdit.setPlainText(isIn ? \"\u62e1\u5927\u3057\u307e\u3057\u305f\u3002\" : \"\u7e2e\u5c0f\u3057\u307e\u3057\u305f\u3002\");\n            } else {\n                statusEdit.setPlainText(\"\u8b66\u544a: \u30d3\u30e5\u30fc\u304c\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3002\");\n            }\n        } catch(e) {\n            statusEdit.setPlainText(\"\u30ba\u30fc\u30e0\u30a8\u30e9\u30fc: \" + e.message);\n        }\n    }\n\n    btnZoomIn.clicked.connect(function()  { doZoom(true);  });\n    btnZoomOut.clicked.connect(function() { doZoom(false); });\n\n    btnClose.clicked.connect(function() { dialog.close(); });\n    dialog.show();\n};\n\nMoveAndZoom.init = function(basePath) {\n    var action = new RGuiAction(\"\u5ea7\u6a19\u79fb\u52d5\u3068\u30ba\u30fc\u30e0\", RMainWindowQt.getMainWindow());\n    action.setRequiresDocument(true);\n    action.setScriptFile(basePath + \"\/MoveAndZoom.js\");\n    action.setGroupSortOrder(99000);\n    action.setSortOrder(0);\n    action.setWidgetNames(&#91;\"QcadAddMenu\"]);\n};\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ QcadAdd.js\ninclude(\"scripts\/Misc\/Misc.js\");\n\nfunction QcadAdd(guiAction) {\n    Misc.call(this, guiAction);\n}\n\nQcadAdd.prototype = new Misc();\nQcadAdd.includeBasePath = includeBasePath;\n\nQcadAdd.getMenu = function() {\n    var menu = EAction.getSubMenu(\n        Misc.getMenu(),\n        99000, 100,\n        QcadAdd.getTitle(),\n        \"QcadAddMenu\"\n    );\n    return menu;\n};\n\nQcadAdd.getTitle = function() {\n    return \"QcadAdd\";\n};\n\nQcadAdd.prototype.getTitle = function() {\n    return QcadAdd.getTitle();\n};\n\nQcadAdd.init = function(basePath) {\n    QcadAdd.getMenu();\n};\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>QCAD\u306b\u6307\u5b9a\u5ea7\u6a19\u3078\u306e\u79fb\u52d5\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3057\u305f\u3002JavaScript\u3067\u30e1\u30cb\u30e5\u30fc\u767b\u9332\u3001\u8ffd\u52a0\u6a5f\u80fd\u5b9f\u884c\uff1d\u5ea7\u6a19\u79fb\u52d5\u30c0\u30a4\u30a2\u30ed\u30b0\u8868\u793a\u3057\u3066\u3001\u6307\u5b9a\u5ea7\u6a19\u3078\u306e\u753b\u9762\u79fb\u52d5\u3084\u3001\u62e1\u5927\u30fb\u7e2e\u5c0f\u3092\u884c\u3046\u6a5f\u80fd\u3067\u3059\u3002\u8cc7\u6599\u304c\u53e4\u304b\u3063\u305f\u308a\u3001\u30b5\u30f3\u30d7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u5c11\u306a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2965,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","sitemap_hide":"","_veu_custom_css":"","veu_display_promotion_alert":"common","vkexunit_cta_each_option":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[11,1],"tags":[197,196],"class_list":["post-2959","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-amablog","category-uncategorized","tag-javascript","tag-qcad"],"veu_head_title_object":{"title":"","add_site_title":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/y42u.net\/tec001\/wp-content\/uploads\/2026\/03\/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2026-03-18-21.53.45.png?fit=69%2C54&ssl=1","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/posts\/2959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/comments?post=2959"}],"version-history":[{"count":2,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/posts\/2959\/revisions"}],"predecessor-version":[{"id":2967,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/posts\/2959\/revisions\/2967"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/media\/2965"}],"wp:attachment":[{"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/media?parent=2959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/categories?post=2959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/y42u.net\/tec001\/wp-json\/wp\/v2\/tags?post=2959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}