<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gcode | ふうBLOG</title>
	<atom:link href="https://www.fuublog.net/tag/gcode/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fuublog.net</link>
	<description>登山やカメラ、ガジェット周りのブログです。</description>
	<lastBuildDate>Thu, 08 Dec 2022 14:25:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>PrusaSlicerのカスタムGcodeでレイヤーごとに温度を変える方法</title>
		<link>https://www.fuublog.net/2022/02/21/prusaslicer-gcode_temperture-tower/</link>
					<comments>https://www.fuublog.net/2022/02/21/prusaslicer-gcode_temperture-tower/#respond</comments>
		
		<dc:creator><![CDATA[ふう]]></dc:creator>
		<pubDate>Mon, 21 Feb 2022 09:49:13 +0000</pubDate>
				<category><![CDATA[3Dプリンター]]></category>
		<category><![CDATA[gcode]]></category>
		<category><![CDATA[prusaslicer]]></category>
		<guid isPermaLink="false">https://www.fuublog.net/?p=1354</guid>

					<description><![CDATA[こんにちはふうです。最近あまりBlogを更新できてなかったんですが、3Dプリンターネタはポツポツありまして。今回はPrusaSlicerを使ってレイヤー毎の温度制御をif文を使ってやる方法です。 こんなふうに一定のレイヤ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こんにちはふうです。<br>最近あまりBlogを更新できてなかったんですが、3Dプリンターネタはポツポツありまして。<br>今回はPrusaSlicerを使ってレイヤー毎の温度制御をif文を使ってやる方法です。</p>



<p>こんなふうに一定のレイヤー毎にノズルの温度を変えて何℃でプリントするのが適切なのか確認をするオブジェクトを使ったことはありますか？</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_01-1024x683.jpg" alt="" class="wp-image-1357" srcset="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_01-1024x683.jpg 1024w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_01-300x200.jpg 300w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_01-768x512.jpg 768w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_01.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>今回PVBをプリントするにあたって初めて使ったんですが、よくある方法としては作成したGコードをテキストエディターで修正する方法です。<br><a rel="noopener" target="_blank" href="https://www.thingiverse.com/thing:2318636" data-type="URL" data-id="https://www.thingiverse.com/thing:2318636">データダウンロード<span class="fa fa-external-link external-icon anchor-icon"></span></a><br>スライサーによりますが、Gコードのどの行に何レイヤー目の設定が書いてあるかを調べて温度変更のGコードを書き込んでいきます。<br>Gコードを直接編集するのでどんなスライサーでも使えて確実ですよね。面倒ですけど、、、。<br>なのでもっと簡単？にできる方法を調べてみました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">PrusaSlicerのプリンター設定</a><ol><li><a href="#toc2" tabindex="0">レイヤー変更前のGコード 例1</a><ol><li><a href="#toc3" tabindex="0">if文</a></li></ol></li><li><a href="#toc4" tabindex="0">レイヤー変更前のGコード 例2</a><ol><li><a href="#toc5" tabindex="0">2022年3月14日追記</a></li></ol></li></ol></li><li><a href="#toc6" tabindex="0">結果</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading" id="prusaslicerのプリンター設定"><span id="toc1">PrusaSlicerのプリンター設定</span></h2>



<p>やりたいことをまとめると、<br><span class="marker-under">下から何mmのところまで印刷したらノズルの温度を5℃あげたい。</span><br>これにつきます、単純です。</p>



<p>問題は今何mmの所をプリントしているのか？<br>それから何℃にしたいのかをどうやって実現するかです。</p>



<p>今何mmかは、プリント設定の積層ピッチによります。<br><span class="marker-under-red">最初のレイヤーの高さ</span>が何mmで<span class="marker-under-red">積層ピッチ</span>が何mmか。</p>



<p>では一体それをどこで設定するのか？<br>【<span class="marker">プリンター設定</span>】の【<span class="marker">カスタムGコード</span>】の【<span class="marker">レイヤー変更前のGコード</span>】です。<br>（レイヤーチェンジ後のGコードでもいいと思いますが）<br>この項目は【<span class="marker">高度</span>】にチェックを入れておかないと出てこないので入れてない方は高度を選択してください。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="709" src="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_03-1024x709.jpg" alt="" class="wp-image-1359" srcset="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_03-1024x709.jpg 1024w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_03-300x208.jpg 300w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_03-768x532.jpg 768w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_03.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>最初の３行はそのままです。</figcaption></figure>



<h3 class="wp-block-heading" id="レイヤー変更前のgコード-例1"><span id="toc2">レイヤー変更前のGコード 例1</span></h3>



<pre class="wp-block-preformatted">;BEFORE_LAYER_CHANGE
G92 E0.0
;[layer_z]

{if layer_z == 8.8}M104 S235
{elsif layer_z == 15.8}M104 S230
{elsif layer_z == 23.8}M104 S225
{elsif layer_z == 30.8}M104 S220
{elsif layer_z == 37.8}M104 S215
{elsif layer_z == 44.8}M104 S210
{elsif layer_z == 51.8}M104 S205
{elsif layer_z == 58.8}M104 S200
{elsif layer_z == 65.8}M104 S195
{elsif layer_z == 72.8}M104 S190
{elsif layer_z == 79.8}M104 S185
{elsif layer_z == 86.8}M104 S180
{endif}</pre>



<p>基本的な決まり事として<span class="marker-red">if文は{}の中</span>に書く、<span class="marker-red">layer_zは何mm</span>かを表している、<span class="marker-red">M104はノズルの温度変更</span>、<span class="marker-red">S数字で設定温度</span>で<span class="marker-red">;はコメントアウト</span>ですね。</p>



<h4 class="wp-block-heading" id="if文"><span id="toc3">if文</span></h4>



<p>ifは【もしも何々だったら】です。<br>つまり{if layer_z == 8.8}M104 S235は<br>もしもレイヤーチェンジ前の高さが8.8(mm)だったらノズルの温度を235℃にする。</p>



<p>elseifは【そうではなく何々だったら】で、endifはifの終了です。<br>つまりレイヤーチェンジ毎にこれらの式が一通り実行されることになります。<br>【==】は前後が等しいか？なので1や80なんて数字はもちろん8.7や8.9でもなく8.8の時しか発動しません。</p>



<h3 class="wp-block-heading" id="レイヤー変更前のgコード-例2"><span id="toc4">レイヤー変更前のGコード 例2</span></h3>



<p>何となく無駄に行数を増やしたくなかったので【==】で15.8と等しかったらとしていますが、【&lt;=】とかでこの数字より低かったらなんて指定もできます。<br>==にしていると、最小のレイヤーが0.3mmで次から0.2mmだった場合一致しないですからね。<br>その場合は下記の様な感じになります。<br>こっちの方がレイヤーの高さを計算しなくていいので簡単ですが、実際にプリントして試してはいませんので要確認です。<br>さらに言うと8.7とか15.7とかって小数点まで含めていますが、これは窪みの一番下に合わせたかったからです。大雑把でいいなら&lt;=を使って右側の数値を9とか16にしても構いません。</p>



<pre class="wp-block-preformatted">;BEFORE_LAYER_CHANGE
G92 E0.0
;[layer_z]

{if layer_z &lt;= 8.7}M104 S240
{elsif layer_z &lt;= 15.7}M104 S235
{elsif layer_z &lt;= 23.7}M104 S230
{elsif layer_z &lt;= 30.7}M104 S225
{elsif layer_z &lt;= 37.7}M104 S220
{elsif layer_z &lt;= 44.7}M104 S215
{elsif layer_z &lt;= 51.7}M104 S210
{elsif layer_z &lt;= 58.7}M104 S205
{elsif layer_z &lt;= 65.7}M104 S200
{elsif layer_z &lt;= 72.7}M104 S195
{elsif layer_z &lt;= 79.7}M104 S190
{elsif layer_z &lt;= 86.7}M104 S185
{elsif layer_z &lt;= 93.7}M104 S180
{endif}</pre>



<p>作ったカスタムGコードはプリンター名の右側保存ボタンで保存できるのでわかりやすい名前をつけて保存しておくと次に使かい回したりするのにも便利です。</p>



<h4 class="wp-block-heading"><span id="toc5">2022年3月14日追記</span></h4>



<p>こちらの例2のカスタムGコードで実際に試してみたところ一つ問題を見つけましたので追記します。<br>元々のノズル温度を200℃で設定していたのですが、2層目プリント時に上記の温度変更（240℃）が入った後に<span class="marker-under-red">エラーが起きてプリントが止まりました</span>。<br><span class="marker-red">多分一気に温度が上がったせいで安全装置が働いたっぽいです</span>、ですので上記コードを設定するときはフィラメント設定の<span class="marker-blue">ノズル温度を240℃でスタート</span>するよう設定しておいた方が無難です。<br>温度変更後はエラー起きずにプリントできています。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="709" src="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_04-1024x709.jpg" alt="" class="wp-image-1360" srcset="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_04-1024x709.jpg 1024w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_04-300x208.jpg 300w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_04-768x532.jpg 768w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_04.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>保存するとこんな感じで名前をつけられます。</figcaption></figure>



<p>今回は知らなかったので使っていませんが、糸引きの具合も同時に調べられるデータも下記からダウンロードできます。<br><a rel="noopener" target="_blank" href="https://www.prusaprinters.org/prints/37052-prusa-mini-temptower-for-pla-petg-and-abs" data-type="URL" data-id="https://www.prusaprinters.org/prints/37052-prusa-mini-temptower-for-pla-petg-and-abs">Prusa Mini Temptower for PLA, PETG and ABS<span class="fa fa-external-link external-icon anchor-icon"></span></a></p>



<p>PrusaSlicerdでつかえるMacroについては<a rel="noopener" target="_blank" href="https://help.prusa3d.com/en/article/macros_1775" data-type="URL" data-id="https://help.prusa3d.com/en/article/macros_1775">コチラで詳しく解説<span class="fa fa-external-link external-icon anchor-icon"></span></a>されています。</p>



<h2 class="wp-block-heading" id="結果"><span id="toc6">結果</span></h2>



<p>プリントして知りたかったのは適温がどこにあるのか、低いとどうなるか？、高いとどうなるか？ですよね。<br>今回分かったのは高いと当然溶けすぎて、エッジが潰れやすかったり、オーバーハングが汚い、195℃以下だと割れやすいということです。<br>あとPrusament PVBは半透明のフィラメントなのでテカリかたも違いますね、220℃以上の方が少しテカットした感じでしたので、今回は220℃辺りが一番綺麗な感じでした。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_02-1024x683.jpg" alt="" class="wp-image-1358" srcset="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_02-1024x683.jpg 1024w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_02-300x200.jpg 300w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_02-768x512.jpg 768w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_02.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>力を入れなくても簡単に割れました。</figcaption></figure>



<p>ちなみに温度を調べて出したかったのはコチラ<br>3Dプリンター用ホットエンド周りを作っているのE3Dというメーカーの<a rel="noopener" target="_blank" href="https://twitter.com/search?q=%23heartE3D&amp;src=typed_query">#heart_E3D<span class="fa fa-external-link external-icon anchor-icon"></span></a> というバレンタインコンペでハートをプリントするというものでした。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_06-1024x683.jpg" alt="" class="wp-image-1363" width="840" height="560" srcset="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_06-1024x683.jpg 1024w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_06-300x200.jpg 300w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_06-768x512.jpg 768w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_06.jpg 1200w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>真ん中の小さいハートがブリッジでつられていてプリントが大変でした。</figcaption></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_05-1024x683.jpg" alt="" class="wp-image-1362" width="840" height="560" srcset="https://www.fuublog.net/wp-content/uploads/2022/02/temptower_05-1024x683.jpg 1024w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_05-300x200.jpg 300w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_05-768x512.jpg 768w, https://www.fuublog.net/wp-content/uploads/2022/02/temptower_05.jpg 1200w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>最終的には色々いじってこんな感じに。半透明なので裏から光を当てれば透けます。</figcaption></figure>



<p>使ったフィラメントは半透明の<a rel="noopener" target="_blank" href="https://www.prusa3d.com/product/prusament-pvb-prusa-orange-transparent-500g/" data-type="URL" data-id="https://www.prusa3d.com/product/prusament-pvb-prusa-orange-transparent-500g/">Prusament PVB<span class="fa fa-external-link external-icon anchor-icon"></span></a>ですがチェコから直輸入しかないようなので送料が高いです。<br>湿気やすいので保管に気を遣うフィラメントですが、透け感があったり、アルコールで表面を溶かして積層痕を消したりできるようで、本来は太めのノズルを使って花瓶やランプシェードなどを作ると良いそうです。</p>



<!-- START MoshimoAffiliateEasyLink --><script type="text/javascript">(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;b[a]=b[a]||function(){arguments.currentScript=c.currentScript||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};c.getElementById(a)||(d=c.createElement(f),d.src=g,d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20210203","msmaflink");msmaflink({"n":"RepRapper 1kg 白色（ホワイト） PVB 3Dプリンターフィラメント 1.75mm","b":"RepRapper","t":"REP-PVB-1.75MM-1KG-WHITE","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/41L6PCOkvZS._SL500_.jpg","\/41pbzuQf7AL._SL500_.jpg","\/51yCNqH5TWL._SL500_.jpg","\/51hpFhA8rjL._SL500_.jpg","\/51LuET8Cm9S._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/B08VHP8QF4","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/B08VHP8QF4","a_id":1506038,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":8,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/RepRapper%201kg%20%E7%99%BD%E8%89%B2%EF%BC%88%E3%83%9B%E3%83%AF%E3%82%A4%E3%83%88%EF%BC%89%20PVB%203D%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A3%E3%83%A9%E3%83%A1%E3%83%B3%E3%83%88%201.75mm\/","a_id":1506034,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2},{"id":9,"u_tx":"Yahoo!ショッピングで見る","u_bc":"#66a7ff","u_url":"https:\/\/shopping.yahoo.co.jp\/search?first=1\u0026p=RepRapper%201kg%20%E7%99%BD%E8%89%B2%EF%BC%88%E3%83%9B%E3%83%AF%E3%82%A4%E3%83%88%EF%BC%89%20PVB%203D%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A3%E3%83%A9%E3%83%A1%E3%83%B3%E3%83%88%201.75mm","a_id":1506039,"p_id":1225,"pl_id":27061,"pc_id":1925,"s_n":"yahoo","u_so":3}],"eid":"x2JLZ","s":"s"});</script><div id="msmaflink-x2JLZ">リンク</div><!-- MoshimoAffiliateEasyLink END -->
]]></content:encoded>
					
					<wfw:commentRss>https://www.fuublog.net/2022/02/21/prusaslicer-gcode_temperture-tower/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
