<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss"  xmlns:media="http://search.yahoo.com/mrss/">
<channel>
	<title><![CDATA[SWJUG-RING: PythonでSOLIDWORKSマクロ]]></title>
	<link>http://swjug.org/blog/view/344589/</link>
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD</guid>
	<pubDate>Sat, 11 Dec 2021 19:26:59 +0900</pubDate>
	<link>http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD</link>
	<title><![CDATA[PythonでSOLIDWORKSマクロ]]></title>
	<description><![CDATA[<div>SOLIDWORKS マクロをVBAで作られている方は誰しも、</div><div>Pythonで書けないかな？ということを考えたことがある、</div><div>のではないかと思うのですが、あまり記事がないので体験記事を書いてみます。</div><div>&nbsp;</div><div>Python使われたことのない方に少し補足すると、</div><div>Pythonのいいところは「こういうのないかな？」と思いつくようなことは、</div><div>だいたい誰かがすでに便利なライブラリを公開してくれていて、導入も簡単なことです（個人的な感想）</div><div>&nbsp;</div><div><span>■&nbsp;</span>そういう便利なライブラリがあつまっているところ(PyPI)にpySWというパッケージがあった！</div><div>と、期待したんですが，</div><div>ファイル開閉のほかは変数を触るだけのもので期待とは違いました。(<a href="https://github.com/kalyanpi4/pySW/blob/master/pySW/commSW.py">githubのレポジトリ</a>)</div><div>&nbsp;</div><div>残念。なかった。</div><div>&nbsp;</div><div>ですが、せっかくなのでもう少し進んでみました。</div><div>&nbsp;</div><div>■ 2015年の下記ブログ記事に解説がありました。</div><div><a href="http://joshuaredstone.blogspot.com/2015/02/solidworks-macros-via-python.html">「Solidworks Macros via Python」Joshua Redstone's Blog</a></div><div>&nbsp;</div><div>＜概要＞</div><div><ul><li>SOLIDWORKS APIは，<a href="https://ja.wikipedia.org/wiki/Component_Object_Model">COMコンポーネント</a>なのでwin32comというpythonライブラリを通してアクセスできる。</li>
<li>自動変換できない引数があり，手動変換が必要な場合がある</li>
<li>ほとんどのAPI動かせるけど例外もあると書いてある</li>
</ul></div><div>&nbsp;記事に書いてある通りに書いてみると，あっさりselectbyID2からスケッチを選択することができました。</div><div><img src="https://i.gyazo.com/f44b20c92c9e6dd6983f612db2f60b1f.png" height="250" alt="image" style="border: 0px;"></div><div>&nbsp;</div><div><a href="https://github.com/nm802/solidworksmacro/blob/main/selectbyid2.py">ソースコードはこちら</a>&nbsp;</div><div><span>なおぼくの実験環境は都合によりSOLIDWORKS 2016/Python3.9 です。</span></div><div>&nbsp;</div><div><span>■&nbsp;</span>SelectByID2ができたくらいでは，使えているのかどうかわからないので，</div><div>過去VBAで書いたマクロを移植してみました</div><div>(oneStepPlanes: 複数の点と参照平面を選択して実行すると，点の位置に参照平面を量産してくれるマクロ)</div><div>&nbsp;</div><div>こんな感じかなーと雰囲気で書き直したら，なんと一発で動きました！</div><div><img src="https://i.gyazo.com/92b2c1f4d80370c69bc39707a4143fa2.png" height="250" alt="image" style="border: 0px;"></div><div>&nbsp;</div><div><a href="https://github.com/nm802/solidworksmacro/blob/main/one_step_planes.py">ソースコードはこちら</a>&nbsp;</div><div>&nbsp;</div><div>ただ，書いてて思ったんですけど，</div><div>例えば参照平面を追加するのに，</div><div>&nbsp;</div><div><span style="background-color: #ffcc00;">featureMgr.InsertRefPlane(1, 0, 4, 0, 0, 0)</span></div><div>&nbsp;</div><div>こんなわけのわからないメソッド発行するんじゃなくて，こんな感じで書きたいんですよね・・</div><div>&nbsp;</div><div><span style="background-color: #ffcc00;">InsertRefPlane(seed_plane, point)</span></div><div>&nbsp;</div><div>というふうなラッパーが苦労すればかけるのかは，またそのうち試してみます。</div>]]></description>
	<dc:creator>西田将也</dc:creator>
</item>
<item>
	<guid isPermaLink='true'>http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD#item-annotation-146158</guid>
	<pubDate>Sun, 13 Feb 2022 18:09:07 +0900</pubDate>
	<link>http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD#item-annotation-146158</link>
	<title><![CDATA[西田将也 さんが付けたコメント]]></title>
	<description><![CDATA[<p>Solidworks VBA(.swp)から起動するようのバッチファイルを作ってみました</p>
<p><a href="https://github.com/nm802/solidworksmacro/tree/main/OneStepPlanesPy">https://github.com/nm802/solidworksmacro/tree/main/OneStepPlanesPy</a></p>
<p>エラーメッセージ表示にもうちょい工夫が必要か。<br>Solidworksに帰ってきてからmsgbox出したいですがそれは無理そう(戻り値受けとる方法がない)<br>python内でmsgbox出すのも気が進まないので，<br>とりあえずエラーのときはコマンドプロンプト内にprintしてそのまま止めてあります。</p>]]></description>
	<dc:creator>西田将也</dc:creator>
</item>
<item>
	<guid isPermaLink='true'>http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD#item-annotation-145052</guid>
	<pubDate>Mon, 31 Jan 2022 08:55:37 +0900</pubDate>
	<link>http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD#item-annotation-145052</link>
	<title><![CDATA[新谷淳 さんが付けたコメント]]></title>
	<description><![CDATA[<p>とりあえず こちらの SOLIDWORKS2017 と Python 3.7.4 で oneStepPlanes が動くのを確認できました。<br>そのままだとダメだったので、</p>
<pre>pip install -U wheel pywin32</pre>
<p>で、win32com ライブラリをインストールしたら動きました。</p>
<p>Python はだいぶ前に少し触っただけでほとんど忘れてますが、もう一度勉強してなにか作ってみます。<br>一括変換なんかのマクロをサーバーで実行されられたら便利そうです。</p>
<pre>pip install -U wheel pywin32</pre>]]></description>
	<dc:creator>新谷淳</dc:creator>
</item>
<item>
	<guid isPermaLink='true'>http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD#item-annotation-145042</guid>
	<pubDate>Sun, 30 Jan 2022 16:39:07 +0900</pubDate>
	<link>http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD#item-annotation-145042</link>
	<title><![CDATA[西田将也 さんが付けたコメント]]></title>
	<description><![CDATA[<p>新谷さんコメントありがとうございます。</p>
<p>しばらく他の言語触ってたら，<br>VBAはやっぱりIDEとかバージョン管理の問題とかがすぐ許容できなくなりますね。<br>SOLIDWORKSマクロをたくさん触ってるとまた　実行の楽さでまたVBAに戻ったり迷走するんですが笑<br>Pythonは書くの楽なのでマクロ作るのも楽しくなりそうです。</p>]]></description>
	<dc:creator>西田将也</dc:creator>
</item>
<item>
	<guid isPermaLink='true'>http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD#item-annotation-144919</guid>
	<pubDate>Sat, 29 Jan 2022 11:58:42 +0900</pubDate>
	<link>http://swjug.org/blog/view/344589/python%E3%81%A7solidworks%E3%83%9E%E3%82%AF%E3%83%AD#item-annotation-144919</link>
	<title><![CDATA[新谷淳 さんが付けたコメント]]></title>
	<description><![CDATA[<p><img src="http://swjug.org/mod/tinymce_pro/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif" alt="Surprised" title="Surprised" style="border: 0px;"> すごいです。Python なら AI のライブラリが豊富なので、SOLIDWOKS API で AI で自動設計なんてできるかも。</p>
<p>昔、ユーザ会のメンバーに Ruby で SW API を使っている人がいて、私もそれに刺激を受けて PHP でもできるかトライしてみたけど情報が全然なくて断念しましたが、Python がつかえるならこっちの方が良いですね。</p>
<p>データベースやWebとのインターフェースを使おうとすると VBA より Python の方が使いやすそうなので、試してみます。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></description>
	<dc:creator>新谷淳</dc:creator>
</item>

</channel>
</rss>