<?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>3D &#8211; Deep Core Labs</title>
	<atom:link href="https://deepcorelabs.com/category/3d/feed/" rel="self" type="application/rss+xml" />
	<link>https://deepcorelabs.com</link>
	<description>Building Extraordinary Brands</description>
	<lastBuildDate>Tue, 16 Jul 2024 06:37:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://deepcorelabs.com/wp-content/uploads/2015/09/deep-core-labs-logo-small-50x50.png</url>
	<title>3D &#8211; Deep Core Labs</title>
	<link>https://deepcorelabs.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Flip/Mirror G-Code Online Tool</title>
		<link>https://deepcorelabs.com/flip-mirror-g-code-online-tool/</link>
					<comments>https://deepcorelabs.com/flip-mirror-g-code-online-tool/#respond</comments>
		
		<dc:creator><![CDATA[Miro Hristov]]></dc:creator>
		<pubDate>Mon, 15 Jul 2024 00:14:55 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<guid isPermaLink="false">https://deepcorelabs.com/?p=4370</guid>

					<description><![CDATA[What is G-Code Flipper? G-Code Flipper is an online tool designed to help users flip or mirror their G-code files. It supports adjustments along the X-axis or Y-axis, ensuring prints...]]></description>
										<content:encoded><![CDATA[<p><a href="https://deepcorelabs.com/tools/gcode/flip/"><img fetchpriority="high" decoding="async" class="wp-image-4376 size-full aligncenter" src="https://deepcorelabs.com/wp-content/uploads/2024/07/2024-07-14_200523.jpg" alt="" width="1022" height="1208" srcset="https://deepcorelabs.com/wp-content/uploads/2024/07/2024-07-14_200523.jpg 1022w, https://deepcorelabs.com/wp-content/uploads/2024/07/2024-07-14_200523-254x300.jpg 254w, https://deepcorelabs.com/wp-content/uploads/2024/07/2024-07-14_200523-866x1024.jpg 866w, https://deepcorelabs.com/wp-content/uploads/2024/07/2024-07-14_200523-768x908.jpg 768w" sizes="(max-width: 1022px) 100vw, 1022px" /></a></p>
<a class="nectar-button n-sc-button large accent-color regular-button"  href="https://deepcorelabs.com/tools/gcode/flip/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Launch G-Code Flip/Mirror Tool Online</span></a>
<h2></h2>
<h2>What is G-Code Flipper?</h2>
<p>G-Code Flipper is an online tool designed to help users flip or mirror their G-code files. It supports adjustments along the X-axis or Y-axis, ensuring prints are correctly oriented.</p>
<h2>Key Features</h2>
<h3>File Upload</h3>
<p>Upload your G-code file directly into the tool. The tool will read and prepare the file for further processing.</p>
<h3>Flip Options</h3>
<p>The tool allows you to flip the G-code along the X-axis, Y-axis, or not flip at all. This helps in achieving the desired print orientation.</p>
<h3>Visual Representation</h3>
<p>G-Code Flipper provides a visual representation of the print before and after flipping. This ensures users can verify changes before proceeding with printing.</p>
<h3>Automatic Mesh Detection</h3>
<p>The tool automatically detects the start and end of the print mesh, accommodating different slicers:</p>
<ul>
<li><strong>Start Line</strong>: Identified by the first occurrence of <strong>;LAYER:0</strong> or <strong>;AFTER_LAYER_CHANGE  </strong></li>
<li><strong>End Line</strong>: Identified by the last occurrence of <strong>; stop printing object &#8230;</strong> or <strong>;TIME_ELAPSED: &#8230;<br />
(Cura and Orca Slicers)<br />
</strong></li>
</ul>
<p>If the tool fails to detect these lines, it prompts users to manually specify them.</p>
<h3>Download Adjusted Files</h3>
<p>After flipping, users can download the adjusted G-code file directly from the tool.</p>
<h2>How to Use G-Code Flipper</h2>
<ol>
<li><strong>Upload Your File</strong>: Select and upload your G-code file.</li>
<li><strong>Set Print Bed Dimensions</strong>: Input the dimensions of your print bed.</li>
<li><strong>Choose Flip Direction</strong>: Select whether to flip along the X-axis, Y-axis, or no flip.</li>
<li><strong>Review and Adjust</strong>: Check the visual representation of your print before and after flipping.</li>
<li><strong>Download Your File</strong>: Download the adjusted G-code file for printing.</li>
</ol>
<p>&nbsp;</p>
<a class="nectar-button n-sc-button large accent-color regular-button"  href="https://deepcorelabs.com/tools/gcode/flip/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Launch G-Code Flip/Mirror Tool Online</span></a>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>Full Disclaimer:</h3>
<p>The entire code for this tool, as well as the article above was written by Claude 3.5 Sonnet. The thumbnail generated by ChatGPT 4o <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> . It took 44 revisions to make the code work semi-properly. Use with caution. <strong>ABSOLUTELY NO WARRANTY.</strong> Good luck. Please let me know if you find bugs, have feedback or improvement suggestions.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://deepcorelabs.com/flip-mirror-g-code-online-tool/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>3D Touch (BL Touch Clone) Klipper fix for Ender 3</title>
		<link>https://deepcorelabs.com/3d-touch-bl-touch-clone-klipper-fix-for-ender-3/</link>
					<comments>https://deepcorelabs.com/3d-touch-bl-touch-clone-klipper-fix-for-ender-3/#respond</comments>
		
		<dc:creator><![CDATA[Miro Hristov]]></dc:creator>
		<pubDate>Fri, 23 Sep 2022 06:21:44 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<guid isPermaLink="false">https://deepcorelabs.com/?p=4038</guid>

					<description><![CDATA[This is mostly for my own reference but it may help someone in need. The 3D Touch finally works after a lot of trial and error. Important settings: stow_on_each_sample: True...]]></description>
										<content:encoded><![CDATA[<p>This is mostly for my own reference but it may help someone in need. The <a href="https://www.amazon.com/gp/product/B09M9V8Y4Y/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;th=1">3D Touch</a> finally works after a lot of trial and error.</p>
<p>Important settings:</p>
<div><strong>stow_on_each_sample: <span style="color: #ffcc66;">True</span><br />
probe_with_touch_mode: <span style="color: #ffcc66;">False</span></strong></div>
<div>
<div><strong>pin_up_touch_mode_reports_triggered: <span style="color: #ffcc66;">False</span></strong></div>
</div>
<p>The last line is set to false even though the Klipper test reports true!<br />
You may need to try a combo of true and false of these settings.<br />
I&#8217;ve seen other threads set <strong>pin_up_touch_mode_reports_triggered </strong>to <strong>true</strong> to get it working depending on the model.<br />
<strong>stow_on_each_sample </strong>is slower but it doesn&#8217;t work as well otherwise.</p>
<p>Here&#8217;s what it looks like when NOT working:</p>
<div style="width: 1080px;" class="wp-video"><video class="wp-video-shortcode" id="video-4038-1" width="1080" height="608" preload="metadata" controls="controls"><source type="video/mp4" src="https://deepcorelabs.com/wp-content/uploads/2022/09/IMG_2126_x264.mp4?_=1" /><a href="https://deepcorelabs.com/wp-content/uploads/2022/09/IMG_2126_x264.mp4">https://deepcorelabs.com/wp-content/uploads/2022/09/IMG_2126_x264.mp4</a></video></div>
<h2 style="font-size:75%">Some keywords: 3D Touch not working, blinking fast. BL Touch Clone (3D Touch) fails calibration. Red Blink. Blue Blink.</h2>
<p>Here&#8217;s my entire <strong>printer.cfg  </strong>&#8212; keep in mind it has pressure advance, bed leveling, etc. custom settings.</p>
<div dir="ltr">
<div style="color: #cbccc6; background-color: #28282b; font-family: Consolas, 'Courier New', monospace; font-size: 16px; line-height: 22px; white-space: pre;">
<div><span style="color: #6c7886; font-style: italic;"># This file contains pin mappings for the stock 2020 Creality Ender 3</span></div>
<div><span style="color: #6c7886; font-style: italic;"># V2. To use this config, during &#8220;make menuconfig&#8221; select the</span></div>
<div><span style="color: #6c7886; font-style: italic;"># STM32F103 with a &#8220;28KiB bootloader&#8221; and serial (on USART1 PA10/PA9)</span></div>
<div><span style="color: #6c7886; font-style: italic;"># communication.</span></div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;"># If you prefer a direct serial connection, in &#8220;make menuconfig&#8221;</span></div>
<div><span style="color: #6c7886; font-style: italic;"># select &#8220;Enable extra low-level configuration options&#8221; and select</span></div>
<div><span style="color: #6c7886; font-style: italic;"># serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC</span></div>
<div><span style="color: #6c7886; font-style: italic;"># cable used for the LCD module as follows:</span></div>
<div><span style="color: #6c7886; font-style: italic;"># 3: Tx, 4: Rx, 9: GND, 10: VCC</span></div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;"># Flash this firmware by copying &#8220;out/klipper.bin&#8221; to a SD card and</span></div>
<div><span style="color: #6c7886; font-style: italic;"># turning on the printer with the card inserted. The firmware</span></div>
<div><span style="color: #6c7886; font-style: italic;"># filename must end in &#8220;.bin&#8221; and must not match the last filename</span></div>
<div><span style="color: #6c7886; font-style: italic;"># that was flashed.</span></div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;"># See docs/Config_Reference.md for a description of parameters.</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">stepper_x</span>]</div>
<div>step_pin: <span style="color: #5ccfe6;">PC2</span></div>
<div>dir_pin: <span style="color: #5ccfe6;">PB9</span></div>
<div>enable_pin: <span style="color: #5ccfe6;">!PC3</span></div>
<div>microsteps: <span style="color: #ffcc66;">16</span></div>
<div>rotation_distance: <span style="color: #ffcc66;">40</span></div>
<div>endstop_pin: <span style="color: #5ccfe6;">^PA5</span></div>
<div>position_endstop: <span style="color: #ffcc66;">0</span></div>
<div>position_max: <span style="color: #ffcc66;">250</span></div>
<div>homing_speed: <span style="color: #ffcc66;">65</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">stepper_y</span>]</div>
<div>step_pin: <span style="color: #5ccfe6;">PB8</span></div>
<div>dir_pin: <span style="color: #5ccfe6;">PB7</span></div>
<div>enable_pin: <span style="color: #5ccfe6;">!PC3</span></div>
<div>microsteps: <span style="color: #ffcc66;">16</span></div>
<div>rotation_distance: <span style="color: #ffcc66;">40</span></div>
<div>endstop_pin: <span style="color: #5ccfe6;">^PA6</span></div>
<div>position_endstop: <span style="color: #ffcc66;">5</span> <span style="color: #6c7886; font-style: italic;">#End-stop is not at 0</span></div>
<div>position_max: <span style="color: #ffcc66;">235</span> <span style="color: #6c7886; font-style: italic;">#If endstop is 0 235 will grind</span></div>
<div>position_min: <span style="color: #ffcc66;">5</span> <span style="color: #6c7886; font-style: italic;">#Prevents moving to 0 and <span class="Lm ng" data-ddnwab="PR_15_0" aria-invalid="grammar">griding</span> in this direction</span></div>
<div>homing_speed: <span style="color: #ffcc66;">65</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">stepper_z</span>]</div>
<div>step_pin: <span style="color: #5ccfe6;">PB6</span></div>
<div>dir_pin: <span style="color: #5ccfe6;">!PB5</span></div>
<div>enable_pin: <span style="color: #5ccfe6;">!PC3</span></div>
<div>microsteps: <span style="color: #ffcc66;">16</span></div>
<div>rotation_distance: <span style="color: #ffcc66;">8</span></div>
<div><span style="color: #6c7886; font-style: italic;">#endstop_pin: ^PA7 #microswitch</span></div>
<div><span style="color: #6c7886; font-style: italic;">#position_endstop: 0.0</span></div>
<div>endstop_pin: probe:z_virtual_endstop</div>
<div>position_max: <span style="color: #ffcc66;">250</span></div>
<div>position_min: <span style="color: #ffcc66;">-3</span></div>
<div>homing_speed: <span style="color: #ffcc66;">30</span></div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;">#################################</span></div>
<div><span style="color: #6c7886; font-style: italic;">########### LEVELING ############</span></div>
<div><span style="color: #6c7886; font-style: italic;">#################################</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">bltouch</span>]</div>
<div>sensor_pin: <span style="color: #5ccfe6;">^PB1</span></div>
<div>control_pin: <span style="color: #5ccfe6;">PB0</span></div>
<div><span style="color: #6c7886; font-style: italic;"># x_offset -44, y_offset -7 for CR Touch, verified by measurement (same as used in marlin also)</span></div>
<div>x_offset: <span style="color: #ffcc66;">-38.5</span></div>
<div>y_offset: <span style="color: #ffcc66;">-10.5</span></div>
<div>speed:<span style="color: #ffcc66;">60</span> <span style="color: #6c7886; font-style: italic;">#z-hop speed while probing &#8211; 30</span></div>
<div>stow_on_each_sample: <span style="color: #ffcc66;">true</span></div>
<div>z_offset = <span style="color: #ffcc66;">2.01</span> <span style="color: #6c7886; font-style: italic;">#2.10 #2.29 #Higher numbers = closer to bed</span></div>
<div>probe_with_touch_mode: <span style="color: #ffcc66;">False</span></div>
<div><span style="color: #6c7886; font-style: italic;">#pin_up_reports_not_triggered: False</span></div>
<div>pin_up_touch_mode_reports_triggered: <span style="color: #ffcc66;">False</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">bed_mesh</span>]</div>
<div>speed: <span style="color: #ffcc66;">350</span> <span style="color: #6c7886; font-style: italic;">#80</span></div>
<div>horizontal_move_z: <span style="color: #ffcc66;">3.5</span> <span style="color: #6c7886; font-style: italic;">#z-hop height while probing</span></div>
<div>mesh_min: <span style="color: #ffcc66;">20</span>, <span style="color: #ffcc66;">20</span></div>
<div>mesh_max: <span style="color: #ffcc66;">200</span>, <span style="color: #ffcc66;">200</span></div>
<div>probe_count: <span style="color: #ffcc66;">3,3</span></div>
<div>algorithm: bicubic</div>
<div>fade_start: <span style="color: #ffcc66;">1</span></div>
<div>fade_end: <span style="color: #ffcc66;">10</span></div>
<div>fade_target: <span style="color: #ffcc66;">0</span></div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;">#Only used during homing</span></div>
<div>[<span style="color: #ffa759;">safe_z_home</span>]</div>
<div>home_xy_position: <span style="color: #ffcc66;">117.5,117.5</span> <span style="color: #6c7886; font-style: italic;"># Change coordinates to the center of your print bed</span></div>
<div><span style="color: #6c7886; font-style: italic;">#home_xy_position: 50,50</span></div>
<div>z_hop: <span style="color: #ffcc66;">5</span> <span style="color: #6c7886; font-style: italic;"># Move up mm</span></div>
<div>z_hop_speed: <span style="color: #ffcc66;">60</span></div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;">#################################</span></div>
<div><span style="color: #6c7886; font-style: italic;">###########   OTHER  ############</span></div>
<div><span style="color: #6c7886; font-style: italic;">#################################</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">extruder</span>]</div>
<div>pressure_advance: <span style="color: #ffcc66;">0.66</span></div>
<div>pressure_advance_smooth_time: <span style="color: #ffcc66;">0.08</span> <span style="color: #6c7886; font-style: italic;">#Default 0.04</span></div>
<div>step_pin: <span style="color: #5ccfe6;">PB4</span></div>
<div>dir_pin: <span style="color: #5ccfe6;">PB3</span></div>
<div>enable_pin: <span style="color: #5ccfe6;">!PC3</span></div>
<div>microsteps: <span style="color: #ffcc66;">16</span></div>
<div><span style="color: #6c7886; font-style: italic;">#rotation_distance: 33.24 #34.406 #Default (200*16/93)</span></div>
<div>rotation_distance:  <span style="color: #ffcc66;">34.406</span> <span style="color: #6c7886; font-style: italic;">#Default (200*16/93)</span></div>
<div>nozzle_diameter: <span style="color: #ffcc66;">0.400</span></div>
<div>filament_diameter: <span style="color: #ffcc66;">1.750</span></div>
<div>heater_pin: <span style="color: #5ccfe6;">PA1</span></div>
<div>sensor_type: <span style="color: #5ccfe6;">EPCOS 100K B57560G104F</span></div>
<div>sensor_pin: <span style="color: #5ccfe6;">PC5</span></div>
<div>control: <span style="color: #5ccfe6;">pid</span></div>
<div><span style="color: #6c7886; font-style: italic;"># tuned for stock hardware with 215 degree Celsius target # PID_CALIBRATE HEATER=extruder TARGET=215</span></div>
<div>pid_Kp=<span style="color: #ffcc66;">28.938</span></div>
<div>pid_Ki=<span style="color: #ffcc66;">2.031</span></div>
<div>pid_Kd=<span style="color: #ffcc66;">103.092</span></div>
<div>min_temp: <span style="color: #ffcc66;">0</span></div>
<div>max_temp: <span style="color: #ffcc66;">250</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">input_shaper</span>]</div>
<div>shaper_freq_x: <span style="color: #ffcc66;">40.42</span></div>
<div>shaper_freq_y: <span style="color: #ffcc66;">33.90</span></div>
<div>shaper_type: mzv</div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">heater_bed</span>]</div>
<div>heater_pin: <span style="color: #5ccfe6;">PA2</span></div>
<div>sensor_type: <span style="color: #5ccfe6;">EPCOS 100K B57560G104F</span></div>
<div>sensor_pin: <span style="color: #5ccfe6;">PC4</span></div>
<div>control: <span style="color: #5ccfe6;">pid</span></div>
<div><span style="color: #6c7886; font-style: italic;"># tuned for stock hardware with 60 degree Celsius target # PID_CALIBRATE HEATER=heater_bed TARGET=60</span></div>
<div><span style="color: #6c7886; font-style: italic;">#pid_Kp: 54.027</span></div>
<div><span style="color: #6c7886; font-style: italic;">#pid_Ki: 0.770</span></div>
<div><span style="color: #6c7886; font-style: italic;">#Wpid_Kd: 970 #948.182</span></div>
<div>pid_Kp=<span style="color: #ffcc66;">67.455</span></div>
<div>pid_Ki=<span style="color: #ffcc66;">0.963</span></div>
<div>pid_Kd=<span style="color: #ffcc66;">1181.314</span></div>
<div>min_temp: <span style="color: #ffcc66;">0</span></div>
<div>max_temp: <span style="color: #ffcc66;">130</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">fan</span>]</div>
<div>pin: <span style="color: #5ccfe6;">PA0</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">mcu</span>]</div>
<div>serial: <span style="color: #5ccfe6;">/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0</span></div>
<div>restart_method: command</div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">printer</span>]</div>
<div>kinematics: cartesian</div>
<div>max_velocity: <span style="color: #ffcc66;">300</span></div>
<div>max_accel: <span style="color: #ffcc66;">4500</span> <span style="color: #6c7886; font-style: italic;">#3000 &#8211; Default</span></div>
<div>max_accel_to_decel: <span style="color: #ffcc66;">4500</span> <span style="color: #6c7886; font-style: italic;">#3000 &#8211; Default</span></div>
<div>max_z_velocity: <span style="color: #ffcc66;">5</span></div>
<div>max_z_accel: <span style="color: #ffcc66;">100</span></div>
<div>square_corner_velocity: <span style="color: #ffcc66;">5</span></div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">virtual_sdcard</span>]</div>
<div>path: ~/gcode_files</div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">display_status</span>]</div>
<p>&nbsp;</p>
<div>[<span style="color: #ffa759;">pause_resume</span>]</div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;">#PAUSE</span></div>
<div>[<span style="color: #ffa759;">gcode_macro PAUSE</span>]</div>
<div>description: Pause the actual running print</div>
<div>rename_existing: PAUSE_BASE</div>
<div><span style="color: #6c7886; font-style: italic;"># change this if you need more or less extrusion</span></div>
<div>variable_extrude: <span style="color: #ffcc66;">1.0</span></div>
<div><span class="LI ng" data-ddnwab="PR_16_0" aria-invalid="spelling">gcode</span>:</div>
<div>  <span style="color: #6c7886; font-style: italic;">##### read E from pause macro #####</span></div>
<div>  <span style="color: #bae67e;">{% set E = printer[&#8220;gcode_macro PAUSE&#8221;].extrude|float %}</span></div>
<div>  <span style="color: #6c7886; font-style: italic;">##### set park <span class="Lm ng" data-ddnwab="PR_17_0" aria-invalid="grammar">positon</span> for x and y #####</span></div>
<div>  <span style="color: #6c7886; font-style: italic;"># default is your max <span class="LI ng" data-ddnwab="PR_18_0" aria-invalid="spelling">posion</span> from your printer.cfg</span></div>
<div>  <span style="color: #bae67e;">{% set x_park = printer.toolhead.axis_maximum.x|float &#8211; 5.0 %}</span></div>
<div>  <span style="color: #bae67e;">{% set y_park = printer.toolhead.axis_maximum.y|float &#8211; 5.0 %}</span></div>
<div>  <span style="color: #6c7886; font-style: italic;">##### calculate save lift position #####</span></div>
<div>  <span style="color: #bae67e;">{% set max_z = printer.toolhead.axis_maximum.z|float %}</span></div>
<div>  <span style="color: #bae67e;">{% set act_z = printer.toolhead.position.z|float %}</span></div>
<div>  <span style="color: #bae67e;">{% if act_z &lt; (max_z &#8211; 2.0) %}</span></div>
<div>      <span style="color: #bae67e;">{% set z_safe = 2.0 %}</span></div>
<div>  <span style="color: #bae67e;">{% else %}</span></div>
<div>      <span style="color: #bae67e;">{% set z_safe = max_z &#8211; act_z %}</span></div>
<div>  <span style="color: #bae67e;">{% endif %}</span></div>
<div>  <span style="color: #6c7886; font-style: italic;">##### end of definitions #####</span></div>
<div>  PAUSE_BASE</div>
<div>  <span style="color: #f29e74;">G</span><span style="color: #ffcc66;">91</span></div>
<div>  <span style="color: #bae67e;">{% if printer.extruder.can_extrude|lower == &#8216;true&#8217; %}</span></div>
<div>    <span style="color: #f29e74;">G</span><span style="color: #ffcc66;">1</span> <span style="color: #d4bfff;">E</span>&#8211;<span style="color: #bae67e;">{E}</span> <span style="color: #d4bfff;">F</span><span style="color: #ffcc66;">2100</span></div>
<div>  <span style="color: #bae67e;">{% else %}</span></div>
<div>    <span style="color: #bae67e;">{action_respond_info(&#8220;Extruder not hot enough&#8221;)}</span></div>
<div>  <span style="color: #bae67e;">{% endif %}</span></div>
<div>  <span style="color: #bae67e;">{% if &#8220;xyz&#8221; in printer.toolhead.homed_axes %}</span></div>
<div>    <span style="color: #f29e74;">G</span><span style="color: #ffcc66;">1</span> <span style="color: #d4bfff;">Z</span><span style="color: #bae67e;">{z_safe}</span> <span style="color: #d4bfff;">F</span><span style="color: #ffcc66;">900</span></div>
<div>    <span style="color: #f29e74;">G</span><span style="color: #ffcc66;">90</span></div>
<div>    <span style="color: #f29e74;">G</span><span style="color: #ffcc66;">1</span> <span style="color: #d4bfff;">X</span><span style="color: #bae67e;">{x_park}</span> <span style="color: #d4bfff;">Y</span><span style="color: #bae67e;">{y_park}</span> <span style="color: #d4bfff;">F</span><span style="color: #ffcc66;">6000</span></div>
<div>  <span style="color: #bae67e;">{% else %}</span></div>
<div>    <span style="color: #bae67e;">{action_respond_info(&#8220;Printer not homed&#8221;)}</span></div>
<div>  <span style="color: #bae67e;">{% endif %}</span></div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;">#RESUME</span></div>
<div>[<span style="color: #ffa759;">gcode_macro RESUME</span>]</div>
<div>description: Resume the actual running print</div>
<div>rename_existing: RESUME_BASE</div>
<div>gcode:</div>
<div>  <span style="color: #6c7886; font-style: italic;">##### read E from pause macro #####</span></div>
<div>  <span style="color: #bae67e;">{% set E = printer[&#8220;gcode_macro PAUSE&#8221;].extrude|float %}</span></div>
<div>  <span style="color: #6c7886; font-style: italic;">#### get VELOCITY parameter if specified ####</span></div>
<div>  <span style="color: #bae67e;">{% if &#8216;VELOCITY&#8217; in params|upper %}</span></div>
<div>    <span style="color: #bae67e;">{% set get_params = (&#8216;VELOCITY=&#8217; + params.VELOCITY)  %}</span></div>
<div>  <span style="color: #bae67e;">{%else %}</span></div>
<div>    <span style="color: #bae67e;">{% set get_params = &#8220;&#8221; %}</span></div>
<div>  <span style="color: #bae67e;">{% endif %}</span></div>
<div>  <span style="color: #6c7886; font-style: italic;">##### end of definitions #####</span></div>
<div>  <span style="color: #bae67e;">{% if printer.extruder.can_extrude|lower == &#8216;true&#8217; %}</span></div>
<div>    <span style="color: #f29e74;">G</span><span style="color: #ffcc66;">91</span></div>
<div>    <span style="color: #f29e74;">G</span><span style="color: #ffcc66;">1</span> <span style="color: #d4bfff;">E</span><span style="color: #bae67e;">{E}</span> <span style="color: #d4bfff;">F</span><span style="color: #ffcc66;">2100</span></div>
<div>  <span style="color: #bae67e;">{% else %}</span></div>
<div>    <span style="color: #bae67e;">{action_respond_info(&#8220;Extruder not hot enough&#8221;)}</span></div>
<div>  <span style="color: #bae67e;">{% endif %}</span></div>
<div>  RESUME_BASE <span style="color: #bae67e;">{get_params}</span></div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;">#CANCEL_PRINT</span></div>
<div>[<span style="color: #ffa759;">gcode_macro CANCEL_PRINT</span>]</div>
<div>description: Cancel the actual running print</div>
<div>rename_existing: CANCEL_PRINT_BASE</div>
<div><span class="LI ng" data-ddnwab="PR_19_0" aria-invalid="spelling">gcode</span>:</div>
<div>  <span style="color: #f29e74;">G</span><span style="color: #ffcc66;">1</span> <span style="color: #d4bfff;">Z</span><span style="color: #ffcc66;">10</span> <span style="color: #d4bfff;">F</span><span style="color: #ffcc66;">3600</span> <span style="color: #6c7886; font-style: italic;">#move up</span></div>
<div>  <span style="color: #f29e74;">M</span><span style="color: #ffcc66;">18</span> <span style="color: #6c7886; font-style: italic;">#disable steppers</span></div>
<div>  <span style="color: #6c7886; font-style: italic;">#TURN_OFF_HEATERS</span></div>
<div>  CANCEL_PRINT_BASE</div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;">#Disable Steppers</span></div>
<div>[<span style="color: #ffa759;">gcode_macro DISABLE_STEPPERS</span>]</div>
<div>gcode:</div>
<div>  <span style="color: #f29e74;">M</span><span style="color: #ffcc66;">18</span></div>
<p>&nbsp;</p>
<div><span style="color: #6c7886; font-style: italic;">#*# &lt;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- SAVE_CONFIG &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&gt;</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*#</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# [bed_mesh default]</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# version = 1</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# points =</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*#     0.055000, 0.022500, 0.047500</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*#     0.002500, -0.047500, 0.010000</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*#     -0.022500, -0.055000, -0.082500</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# tension = 0.2</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# <span class="LI ng" data-ddnwab="PR_20_0" aria-invalid="spelling">min_x</span> = 20.0</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# algo = bicubic</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# <span class="LI ng" data-ddnwab="PR_21_0" aria-invalid="spelling">y_count</span> = 3</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# mesh_y_pps = 2</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# min_y = 20.0</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# x_count = 3</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# max_y = 200.0</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# mesh_x_pps = 2</span></div>
<div><span style="color: #6c7886; font-style: italic;">#*# max_x = 200.0</span></div>
<p>&nbsp;</p>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://deepcorelabs.com/3d-touch-bl-touch-clone-klipper-fix-for-ender-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://deepcorelabs.com/wp-content/uploads/2022/09/IMG_2126_x264.mp4" length="3095792" type="video/mp4" />

			</item>
		<item>
		<title>Normal Map Rotation Tool (Online)</title>
		<link>https://deepcorelabs.com/normal-map-rotation-tool-online/</link>
					<comments>https://deepcorelabs.com/normal-map-rotation-tool-online/#comments</comments>
		
		<dc:creator><![CDATA[Miro Hristov]]></dc:creator>
		<pubDate>Mon, 18 Oct 2021 06:38:54 +0000</pubDate>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[three.js]]></category>
		<guid isPermaLink="false">http://deepcorelabs.com/?p=3552</guid>

					<description><![CDATA[ISSUE: A challenge that arises when attempting to rotate a normal map in Photoshop is that the software does not consider the direction of the map&#8217;s vectors from the RGB...]]></description>
										<content:encoded><![CDATA[<a class="nectar-button n-sc-button large accent-color has-icon regular-button" target="_blank" href="https://deepcorelabs.com/tools/normal-map-rotation/v3/" data-color-override="#ff4629" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Try Normal Map Rotator V3 - BETA</span><i class="icon-button-arrow"></i></a>
<hr />
<h2>ISSUE:</h2>
<p>A challenge that arises when attempting to rotate a normal map in Photoshop is that the software does not consider the direction of the map&#8217;s vectors from the RGB channels. As a result, rotating a normal map by 180 degrees in any image processing program will result in an inversion of the normal strength &#8211; elements that should protrude will appear recessed and vice versa.</p>
<h2>SOLUTION:</h2>
<p>After exploring various options, I developed a tool of my own. By utilizing three.js, I am able to apply the original normal map to a plane, rotate the plane, render the plane using a Normal material texture, and the final output takes into account the rotation of the normal map.</p>
<p><video id="video-3552-1_html5" class="wp-video-shortcode" style="visibility: visible; width: 1100px; height: 618.75px;" src="https://deepcorelabs.com/wp-content/uploads/2021/10/2021-10-18-02-25-43.mp4?_=1" preload="metadata" autoplay="autoplay" loop="loop" muted="1" controls="controls" width="1080" height="608"><source type="video/mp4" src="https://deepcorelabs.com/wp-content/uploads/2021/10/2021-10-18-02-25-43.mp4?_=1" /><a href="https://deepcorelabs.com/wp-content/uploads/2021/10/2021-10-18-02-25-43.mp4">https://deepcorelabs.com/wp-content/uploads/2021/10/2021-10-18-02-25-43.mp4</a></video></p>
<h2>Try it for yourself (Updated V2)</h2>
<p><iframe style="border: 4px solid #00AAFF;" src="//deepcorelabs.com/tools/normal-map-rotation" width="100%" height="960px"></iframe></p>
<a class="nectar-button n-sc-button small #00aaff"  href="//deepcorelabs.com/tools/normal-map-rotation/" data-color-override="#00AAFF" data-hover-color-override="false" data-hover-text-color-override="#00AAFF"><span>Open Normal Map Rotation Tool - V2</span></a>
<h2>Todo</h2>
<ul>
<li><del>Flip Horizontal and Vertical</del></li>
<li>Normal Map Strength</li>
<li>&#8230;let me know!</li>
</ul>
<a class="nectar-button n-sc-button large accent-color has-icon regular-button" target="_blank" href="//deepcorelabs.com/tools/normal-map-rotation/v3/" data-color-override="#ff4629" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Try Normal Map Rotator V3 - BETA</span><i class="icon-button-arrow"></i></a>
]]></content:encoded>
					
					<wfw:commentRss>https://deepcorelabs.com/normal-map-rotation-tool-online/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		<enclosure url="https://deepcorelabs.com/wp-content/uploads/2021/10/2021-10-18-02-25-43.mp4?_=1" length="24109613" type="video/mp4" />

			</item>
	</channel>
</rss>
