FreeCADを便利に使おう AIを利用して「薄い押し出し」系マクロを2つリリース 勉強にもなって一石二鳥?
前回に続き私が欲しいと思ったマクロを2つ(主にAIに)作ってもらったので紹介並びに公開させていただきます。2026年3月時点ではAIにまかせっきりではなく結局は自分も勉強しないとうまく使えない、というお話です。でもすごいことですよね。FreeCADで「薄い押し出し」を使いたいなぁ、というところからやってみましたが、とても楽しい。今後も少しずつ勉強していきたいと思います。
限界について
まずはじめにLimitationから。私にはプログラムを作る能力はありません。システムエンジニアではもちろんありませんし、当ブログをご覧いただければわかります通りガジェットや3Dプリンターで色々作るのが好きなだけの人です。
今回のマクロもちょっと学んだりはしましたが基本コードは書いていませんし、レビューもできないため間違いや無駄があってもそれを上手に認識することができません。とりあえず私の環境、WindowsとMacのFreeCADで動作することは確認していますがなんの保証はできませんのでご了承下さい。
FreeCADのマクロ機能は楽しい
そんな何も持っていない私でも楽しめるFreeCADのマクロ機能、もう少し色々やってみたくなった(やってもらいたくなった?)マクロ作成の記事の続きが今回のものとなります。マクロの記事は前回と今回の2つですが当ブログはVer1.0以降のFreeCAD日本語情報が充実していると思いますので、検索等していただきぜひご利用いただければ幸いです。前回のブログはこちら。
さて、今回作ったマクロは以下の2つです。
- スケッチの線からソリッドを押し出すマクロ
- 任意のエッジから、任意方向にソリッドを押し出すマクロ
スケッチの線からソリッドを押し出す機能はFusionご利用の方ですと「薄い押し出し」として比較的ポピュラーだと思うのですが、FreeCADにはその機能がありません。私が探した範囲ではアドオンでもそういったものはなさそうでしたし、これが代替にどこまでなるかはわかりませんが役立てていただければ幸いです。
Fusion にある「薄い押し出し」は便利
以前下の記事でも書きましたが、Fusionの薄い押し出しは本当に便利ですよね。下記記事ではCurve on Surface機能で投影してからソリッドを作っており、応用範囲が広くはあるのですが簡便ではありませんでした。ちょっとしたときにぱっと線から押し出せるのはなれると楽ちんです。FreeCADだと線を直接ソリッドにはできませんからね・・・。
溝状のものを作って他の形状とブーリアンしたりその状態で出っ張りや溝を作ったり、リブ形状を作るなど薄い押し出しを利用したテクニックは結構あると思います。やはりFreeCADでも使いたい!
今回はClaudeにお願いしてみた
前回はWindows標準のCopilotにお願いしてみましたが今回ちょっと試した感じではなかなか難渋しそうでしたので、今回はClaudeというAIにお願いしました。
ClaudeはAnthropic社のAIで、創業は2021年、OpenAI出身の方が作られた会社のものです。Claudeのリリースは2023年で、有料無料の色々なモデルが使用できるようになっており、現在AIの世界で大手の一つです。
しばらく前からちょこちょこ使っているのですが、特に課金はしていない、無料プラン内でサービスは利用しています。時間があるときにちょこちょこ聞いて、出来上がったマクロをテキストとして添付して改善や改良をお願いする、というスタンスを取りました。
Claudeはプログラム作成にもともと強いとされているようでPythonが得意なAIのようです。検索して外部の上をを拾ってくる力もしっかりあり、こういう用途では力を発揮してくれました。対話型のAIで色々作業をしてくれるmanusというAIも非常に能力が高いのですが、今回のマクロ作成には向かない感じでした。manusのリンクはこちらです。
マクロ1:スケッチ線からソリッドを押し出す Sketchlinetosolid
最初に作ったのはスケッチ線からソリッドを押し出すマクロ。当初ざらっと要件を言えばとりあえず動くものができて、それにダイアログを加えてもらう、というあまり工夫のないものでした。もともとスケッチからソリッドをつくるのはPartの押し出しをして、それに3Dオフセットをかける、という手順で今までやっていたのでその手順をやってもらった形です。
・・・と最初は喜んだんですけれど、最初はFusionの薄い押し出しのように押し出し方向を正方向や負方向にしたり、対称に押し出すことができなかったんですよね・・・。ちなみに最終的な出来上がりはこんな感じです。マクロとして当ブログの下部にコードは置いてありますのでよかったらぜひご利用下さい!
これでFusionほどの自由度はありませんがわざわざ全部四角でオフセットしなくても従来のスケッチの一部を利用して(例えばスケッチを一度コピーしてから変更するなど)線状のソリッドを非常に簡便に作成することができます。たぶん便利!!
ちなみにこの動画はWindows標準のClipchampで作成しました。日本語のフォントがほとんど使えないのが残念ですが、こんな感じの動画なら比較的簡便に作ることができます。
人間側の勉強と詳細な指示は大事
上でも書きましたが、一番難儀だったのが押し出しを左右対称にしたりする機能です。Partから自身でやれば何の問題もないのですが、Claudeが出してくれたままだとうまく動かなかったんですよね・・・。
色々使われているPythonを確認、勉強したところSkechから面を作る際に「build_surface」が使われていたのが問題だと判明しました。これだともともとPartにあるextrusionではなくコピーした線との間に面を貼る感じなので左右対称等ができません。
そこでClaudeに「build_extrusion に置き換え」てもらうようにお願いしました。このことでPartの機能であるextrusionが使われるようになりました!!ちょこちょこ修正したり、ダイアログの色を変えたりとちょこちょこマクロをいじって完成となりました。結局ある程度自分で勉強し、少なくとも「何がどうやって動いているか」を認識しないと、マクロが動かない理由がわからないんですよね。システムエンジニアの方々すごいなぁ。
ちなみにmanusだと、なぜかpyside2を使おうとしていてマクロが作れませんでした・・・を理解するのにも時間を要した、プログラム未経験者が私です。
ということでAIでマクロを学ぶのはすごく楽しいですが、勉強と指示を的確に出せるかが結局は大切です。私の本業もちょっと似たところもありますので非常に面白くこれからも使えると思っています。
マクロ2:任意のエッジを任意方向に押し出す EdgetoSolid
2つ目はちょっと切り口を変えたものになります。押し出しをスケッチではなくEdgeに変更したものです。ちょっとした壁の立ち上がりや補強用のリブっぽいもの、既存ソリッド等の方向を利用して押し出しの基準を作っていく等使い道はいくつかあるのではないかと思います。
このマクロは押し出し方向をスケッチのような法線方向ではなく任意のエッジ方向に指定できるようにお願いしました。既存のソリッドに対して方向指定等が行えるので使える範囲は意外と広いと思います。エッジの方向を確認することもできます(笑)。
このマクロについては先のマクロと異なり、一回でダイアログが閉じないようにしています。特に方向をエッジで選択する場合など、180度反対向きにソリッドができることがあります。これは基準位置の違いなのですが感覚ではわからないのでそのたびにマクロを呼び出すのは無駄が多いです。
当初のマクロだとダイアログがモーダル(exec())で3Dビューの選択ができなかったので、(show())に変更してもらいうまく動くものを作ってもらいました。こういうのも自分は全然知らなかったので調べながら行っています。これでカスタム方向を選んで、エッジを選択すると軸の方向が入力されるようになりました。連続してエッジからソリッド作成ができることでマクロを呼び出したままにすることができるので個人的にはかなり便利です。
下記のような感じですがいかがでしょうか?
ちなみにこれはmac上で元々ipad用アプリのLumafusionを使って作ったものになります。パパっと作るなら同じく非常に使い勝手が良くてお勧めできます。(有料ですが安かったはず)
出来上がったマクロ はこちら
前回よりもコードが多いため、ファイルとしてこちらにおいておこうと思います。公式のマクロ集に入れたいなぁとも思いつつ、まずはこちらに公開させていただきます。一応英語バージョンも用意しました!
あと、FreeCAD関連のアマゾンのリンクも置かせてください。最近アマゾンの仕様が変わってブログ運営にあたって色々大変なんですよね・・・当ブログはもちろん役立てていただければ嬉しいのですが、入門書として堀島さんの本が出ています。私とは切り口などもだいぶ異なりますしとてもためになると思います。
私もこのブログ全体のFreeCAD記事をまとめて書籍化したいな、なんてちょっと思いますが…作ったらだれか読んでくれるでしょうか(笑)。
FreeCADのマクロづくり、楽しかったです
前回も書きましたがFreeCADはマクロ含めすべてがダイレクトにPythonで動きますし、オープンソースであることもあって参照元が(おそらく)豊富です。私のような何も持っていない人がこうして動作するマクロを比較的簡便に作れる、というのがとても私にとっては便利だと感じます。
AIについては特に生成方向は賛否があることは承知していますし理解していますが、自分でこれをゼロから構築することはもちろん私にはできませんし、前回と今回で色々触ることでpythonもほんの少し身近になった気がします。プログラミングの家庭教師みたいな感じでしたし、個人的にはAIと上手にお付き合いしていきたいですね。
もちろん、今回公開したマクロに、潜在的な問題が隠されていない保証はどこにもなく、無駄が多いマクロではあると思います。自己責任でご利用いただくとともにご了承くださいますようお願いいたします。
課題はあれど、成長していくFreeCADは応援したい
FreeCADはWindows版を始めmacやLinuxでも動作し、今回のマクロもWindowsで作成したものをmacで全く同様に利用できました。オープンソースで無料であること、またpythonで直接動くことから今後もAIを始めとする色々なツールで使い勝手が向上し成長していく可能性が高いと考えます。
FreeCADのdevelop版は1.2となっており、1.1でのPartdesignワークベンチもかなり扱いやすくなった印象を私は持っています。今回のマクロについても公式ドキュメント、チュートリアル、コミュニティによる情報やマクロ集など、参照できる資料は多かったです。AIが動きやすい環境が整っている印象があり、今後も楽しみです。
もちろん、FreeCADには私も多々利用しているFusionのような使いやすさがあるとは言えません。当ブログ記事を色々見ていただければ分かる通り、色々やろうとするとワークベンチを渡り歩き、それぞれの機能を使って創意工夫する必要があるため、設計に集中できない、という部分もあるとは思います。私はまだあまり使えていませんがアセンブリについても寸法変更時に使えなくなってしまうなど課題も多いです。
一方でAIの3D方面への進化も著しく、CADのきれいな面をAIが貼ってくれる様になる日も近いとは感じます。この時代、AIと親和性が高いFreeCADはこれからも進化していってくれそうな気がしました。紆余曲折、出来はどうあれ?私がマクロ作れたわけですからね!これからも楽しもうと思います。
今回も最後までお読みいただき、ありがとうございました!














ディスカッション
コメント一覧
まだ、コメントがありません