tag:blogger.com,1999:blog-22291709317071939872024-03-13T09:32:58.840+01:00Tips by Joe (Proe, Excel...)Tips and tutorials related to Pro/Engineer, Excel (primarily) and others like Tcl/tk (occasionally)... I had started another topic on Arduino as well. Here I try to explore the underestimated and uncommon options...Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.comBlogger47125tag:blogger.com,1999:blog-2229170931707193987.post-67876559058872431452022-12-04T13:25:00.004+01:002022-12-04T13:26:03.922+01:00Private Policy<p> <b>Privacy Policy</b></p><p><br /></p><p>Joe built the Contact Groups app as a Free app. This SERVICE is provided by Joe at no cost and is intended for use as is.</p><p><br /></p><p>This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.</p><p><br /></p><p>If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. No personal information is collected.</p><p>The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which are accessible at Contact Groups unless otherwise defined in this Privacy Policy.</p><p><b>Information Collection and Use</b></p><p>For a better experience, while using our Service, I may require you to provide us with certain personally identifiable information. The information that I request will be retained on your device and is not collected by me in any way.</p><p><br /></p><p>The app does use third-party services that may collect information used to identify you.</p><p><br /></p><p>Link to the privacy policy of third-party service providers used by the app</p><p><br /></p><p>* [Google Play Services](https://www.google.com/policies/privacy/)</p><p><br /></p><p>**Log Data**</p><p><br /></p><p>I want to inform you that whenever you use my Service, in a case of an error in the app I collect data and information (through third-party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing my Service, the time and date of your use of the Service, and other statistics.</p><p><br /></p><p>**Cookies**</p><p><br /></p><p>Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.</p><p><br /></p><p>This Service does not use these “cookies” explicitly. However, the app may use third-party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.</p><p><br /></p><p>**Service Providers**</p><p><br /></p><p>I may employ third-party companies and individuals due to the following reasons:</p><p><br /></p><p>* To facilitate our Service;</p><p>* To provide the Service on our behalf;</p><p>* To perform Service-related services; or</p><p>* To assist us in analyzing how our Service is used.</p><p><br /></p><p>I want to inform users of this Service that these third parties have access to their Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.</p><p><br /></p><p>**Security**</p><p><br /></p><p>I value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and I cannot guarantee its absolute security.</p><p><br /></p><p>**Links to Other Sites**</p><p><br /></p><p>This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by me. Therefore, I strongly advise you to review the Privacy Policy of these websites. I have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.</p><p><br /></p><p>**Children’s Privacy**</p><p><br /></p><p>These Services do not address anyone under the age of 13. I do not knowingly collect personally identifiable information from children under 13 years of age. In the case I discover that a child under 13 has provided me with personal information, I immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact me so that I will be able to do the necessary actions.</p><p><br /></p><p>**Changes to This Privacy Policy**</p><p><br /></p><p>I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on this page.</p><p><br /></p><p>This policy is effective as of 2022-12-04</p><p><br /></p><p>**Contact Us**</p><p><br /></p><p>If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact me at joevj.ker@gmail.com.</p>Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.comtag:blogger.com,1999:blog-2229170931707193987.post-58825891789170040982021-04-11T17:06:00.001+02:002021-04-11T20:05:10.773+02:00Controlling LED through Octolapse for 3D print timelapse <p>Today's post is about one of the 3D Printing adaptation that I learned. This is specifically about how to control an LED light automatically through OctoLapse so that it is switched on only when the timelapse photo is taken.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLiHXSQfw77jlS4Dja0g3dU9fiIDY-bzSUSBjlLsM56SwS825DwrJ_ChvDrvM9SC6Evi3uGksi5O_c64ooz9IGxHdma_FGNS7ElVWZl1RLEu_Qy4VXNDsAZPxEYJ-C0XNG4pXjOFyrLlU/s1922/IMG_20210411_195555__01.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1922" data-original-width="1808" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLiHXSQfw77jlS4Dja0g3dU9fiIDY-bzSUSBjlLsM56SwS825DwrJ_ChvDrvM9SC6Evi3uGksi5O_c64ooz9IGxHdma_FGNS7ElVWZl1RLEu_Qy4VXNDsAZPxEYJ-C0XNG4pXjOFyrLlU/s320/IMG_20210411_195555__01.jpg" /></a></div><p></p><p>Just as a background, I have been learning to use 3D printer and its customizations options for a few months now and was a lot of learning since then. The best thing was OctoPi, a platform for controlling the 3D printer and the many plugin options that are developed by the community. Most of them are like open source. Today we will discuss specifically about an adaptation to one such plugin, OctoLapse.</p><p>OctoLapse is the plugin for taking timelapse photos, with many options for further customisations. One of the best timelapse method is taking photo after each layer is complete, by moving the head out of the way. You can use standard Pi Camera or a DSLR, which is great to get good resolution videos.</p><p>One small flash back before we dive into the topic. I keep the printer at the corner of the shelf. most of the printing happens at the night. If I needed to check on it, it was not easy. I found the way around by keeping a LED strip at that location and it was connected using a relay controlled through GPIO pin of Pi. There is an ENCLOSURE plug-in that allows the GPIO pin to be controlled through the OctoPrint Web Interface. This allowed me to switch the light on and off through the web. When I need to check on the print, I can see the status using the webcam by switching the light on. Once I am done, I can turn it off as well.</p><p>Coming back to the topic now. I setup the DSLR to take the time lapse. But the next challenge was that I needed light while taking photo. I could keep the LED always-on to do that, but that was not the best way. I felt there must be a way to switch on and off the LED before and after the photo is taken, through the OctoLapse. But it was not as straight forward as I thought it would be!</p><p>Some guidance from <a href="https://github.com/FormerLurker" target="_blank">FormerLuker </a>confirmed that it has to be through a python script and thanks to him helping be with right leads. More googling and applying some gut instincts (as my python knowledge was close to zero if not zero). But then how to create the script. Then realised that it is a file to be created inside Pi and did it through SSH through putty, again salvaged codes from web. Created two files, one for switching on and another for switching off. I will keep the codes at the end of the post. </p><div>I created those and specified that in the additional settings of camera within the OctoLapse. Again few more nights of debugging and tinkering resulted in success. One issue was that if I keep both raw and jpeg on, it resulted in some error and had to configure camera for only jpeg files. Another issue was that the delay had to be large enough to transfer the file. One those were done right. It worked. Pilot run revealed that I had to allow a second or two for the LED to be of correct colour. One that's also set, it was nearly done.</div><div><br /></div><div>Once you have the python scripts created, below are the snapshot of the settings to be updated.</div><div>1. Go to the OctoLapse and edit the Camera Settings</div><div>2. Go to the Custom Camera Scripts and add the python scripts along with full location.</div><div><br /><div class="separator" style="clear: both; text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha30GJlKk9s4jdXOc0IzUcRDOMdcJV1ru2jcKddstrzNszGe3zWCuzzroCce0uZWPgWheZuRXoglIyj9uSLQn3pLwlHUdEfsNg2i32H89J3mgUMwKmQ1Eczz66Ans9N0xvARTxC-ZUWvs/s612/01.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="336" data-original-width="612" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha30GJlKk9s4jdXOc0IzUcRDOMdcJV1ru2jcKddstrzNszGe3zWCuzzroCce0uZWPgWheZuRXoglIyj9uSLQn3pLwlHUdEfsNg2i32H89J3mgUMwKmQ1Eczz66Ans9N0xvARTxC-ZUWvs/w320-h176/01.PNG" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhedVx7G6usq4AaCincD5Y27F8Pe0DZhzVkn3U2Nf5KoJWciB-7CrfzfDje3Ukamtw18VwAE_Y1WgtSas19eEvnalVgDBC3hiUoL_cl0WGmNDRZlDqyJUaTYvm0MCEUxrdSJAO2NEe-6UY/s732/02.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="518" data-original-width="732" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhedVx7G6usq4AaCincD5Y27F8Pe0DZhzVkn3U2Nf5KoJWciB-7CrfzfDje3Ukamtw18VwAE_Y1WgtSas19eEvnalVgDBC3hiUoL_cl0WGmNDRZlDqyJUaTYvm0MCEUxrdSJAO2NEe-6UY/w320-h226/02.PNG" width="320" /></a></div></div><div class="separator" style="clear: both; text-align: justify;"><br /></div><div class="separator" style="clear: both; text-align: justify;">The wiring diagram..</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSjIXilUzM3SbfyZTQdI76qElLNjFcncraael-I7qYjIYLzAmGMnRYqIp9EGIzHUIHkhNRi7PcM6Oc1oykuoeinS12psnktISFApY8j03uHl0O0H68ACJGJGEdpYoGrc7i_vJUD_S51UQ/s659/wiring.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="659" data-original-width="589" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSjIXilUzM3SbfyZTQdI76qElLNjFcncraael-I7qYjIYLzAmGMnRYqIp9EGIzHUIHkhNRi7PcM6Oc1oykuoeinS12psnktISFApY8j03uHl0O0H68ACJGJGEdpYoGrc7i_vJUD_S51UQ/s320/wiring.png" /></a></div><br /><div class="separator" style="clear: both; text-align: justify;"><br /></div><div><br /></div><div>But like any DIY, one challenge leads to another. I realised that the camera battery didn't last enough for to usb connection. Had to make a custom power back for camera, but that's for another video.</div><div><br /></div><div>Contents of led-on.py</div><div><blockquote><div>#!/usr/bin/env python</div><div>#!/bin/sh</div><div><br /></div><div>import RPi.GPIO as GPIO</div><div>import time</div><div><br /></div><div>GPIO.setwarnings(False)</div><div><br /></div><div>GPIO.setmode(GPIO.BCM)</div><div>GPIO.setup(18, GPIO.OUT)</div><div><br /></div><div>GPIO.output(18, True)</div><div><br /></div><div>time.sleep(2)</div></blockquote><p>Contents of led-pff.py</p><blockquote><div>#!/usr/bin/env python</div><div>#!/bin/sh</div><div><br /></div><div>import RPi.GPIO as GPIO</div><div>import time</div><div><br /></div><div>GPIO.setwarnings(False)</div><div><br /></div><div>GPIO.setmode(GPIO.BCM)</div><div>GPIO.setup(18, GPIO.OUT)</div><div><br /></div><div>GPIO.output(18, False)</div><div><br /></div><div>time.sleep(2)</div></blockquote><p>Hope this helps you further the explorations 😀 </p><div></div></div>Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-31524775003856008692020-11-26T14:46:00.005+01:002020-11-26T15:02:31.772+01:00Color the Excel row based on a value/status<p>Very often, we would like to differenciate the rows that are having certain status (or specific values in a specific column) in a different color.</p><p>We can filter for the status and apply the color manually, but we can also do that dynamically or automatically with a specific tweak to the Conditional Formatting feature in Excel</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe3Kqd9cPEUC9iQfQ8fD0dAy3WJYe-8U9urLT8sj0QYyukRHLrtrwW9rC9HaRkpY-GEnz3I1HXWibHEUD-nRsM3TJUdXmsheQEJtlaKZWCC8lPpMBmmByqhLL241TaigrIqxVXRAOL_Wc/s756/006-Excel-Cond+Formatting.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="756" data-original-width="756" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe3Kqd9cPEUC9iQfQ8fD0dAy3WJYe-8U9urLT8sj0QYyukRHLrtrwW9rC9HaRkpY-GEnz3I1HXWibHEUD-nRsM3TJUdXmsheQEJtlaKZWCC8lPpMBmmByqhLL241TaigrIqxVXRAOL_Wc/s320/006-Excel-Cond+Formatting.png" /></a></div><br /><span><a name='more'></a></span><p>I am referring to Excel 2016 but very well applicable to earlier or later versions of excel.</p><p>I hope you are familiar with Conditional formatting. Its in Home Tab </p><p><b style="background-color: #01ffff;"><span style="color: #351c75;">Steps involved:</span></b></p><p></p><ol style="text-align: left;"><li>Select the Table area to be formatted. (in this case B3:E11)</li><li>Home Tab > Conditional Formatting > Manage Rules</li><li>Select "New Rule"</li><li>Select "Use a formula to..." (refer snapshot below)</li><li>Enter the formula as < <i>=$D3="in progress" </i>> as my status column to be checked was D. please adapt as needed.</li><li>Select "Format" to specify the format of matching celles. I selected Blue color in "Fill" Tab. (refer Snapshot). </li><li>click OK on all three windows and apply the formatting.</li></ol><div><br /></div><span style="background-color: #01ffff; color: #351c75; font-weight: 700;">Key Snapshots:</span><div class="separator" style="clear: both; text-align: center;"><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSfOsmFnlLdknI5vKUPP_UmsIyEzhrAUO9Y3H3BaSabQ6LFRVUd-RNWo3Z4wn1-dU9KOVZzUQ3IggFLFMtEAW9MzNZErIQK-IclSj4FTb-ruYWLnnLhM0v1AM0ou169RfEwPzheYOb87Q/s742/CF0.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="249" data-original-width="742" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSfOsmFnlLdknI5vKUPP_UmsIyEzhrAUO9Y3H3BaSabQ6LFRVUd-RNWo3Z4wn1-dU9KOVZzUQ3IggFLFMtEAW9MzNZErIQK-IclSj4FTb-ruYWLnnLhM0v1AM0ou169RfEwPzheYOb87Q/w640-h214/CF0.png" width="640" /></a></div></div><div class="separator" style="clear: both; text-align: center;"><b><i>The before</i></b></div><br /><div class="separator" style="clear: both; text-align: center;"><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0RlgMHrx6u5ySmfRSYQVa1eweq9b7XxPt-Tt5CVAOPBcgLMMCH-ScI3ey6UI1nfF6uCivL3EUhoC8JmbZRLjJKKE4prshGPL3UzAtUiJjsus3Fov1ARZutA6hS9KMOBbXUjy8C9zqKhw/s740/CF1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="250" data-original-width="740" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0RlgMHrx6u5ySmfRSYQVa1eweq9b7XxPt-Tt5CVAOPBcgLMMCH-ScI3ey6UI1nfF6uCivL3EUhoC8JmbZRLjJKKE4prshGPL3UzAtUiJjsus3Fov1ARZutA6hS9KMOBbXUjy8C9zqKhw/w640-h216/CF1.png" width="640" /></a></div></div><div class="separator" style="clear: both; text-align: center;"><b><i>The after</i></b></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuJ8-PnB11gslqXgSJwxivMbYAJGFetKQ0ey4yvK9VjVmgM6VZ0sNyoC1SZD4AupJ9ci0kwzMWuaDX1Qw1FxSKqOzOvidCT1iCJ3FiWtAsocAkibfsVbzt8q4IUyXc5vx7uOFwYQjlUQY/s373/CF2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="366" data-original-width="373" height="393" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuJ8-PnB11gslqXgSJwxivMbYAJGFetKQ0ey4yvK9VjVmgM6VZ0sNyoC1SZD4AupJ9ci0kwzMWuaDX1Qw1FxSKqOzOvidCT1iCJ3FiWtAsocAkibfsVbzt8q4IUyXc5vx7uOFwYQjlUQY/w400-h393/CF2.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><b><i>The Formula</i></b></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6I8_f2xl1MVc-e2lk23j3z4i9nrhO0QuzcIrZNKZttLw8thOxDjS-R_61RE8aifi-SOn_CApkFZlfBGwO1RicUSPGlWbA6hdIZoL84RwGTSOC0VNWEmBDkJo_Rvxc7k2x7AfU2d5Tutw/s531/CF3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="499" data-original-width="531" height="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6I8_f2xl1MVc-e2lk23j3z4i9nrhO0QuzcIrZNKZttLw8thOxDjS-R_61RE8aifi-SOn_CApkFZlfBGwO1RicUSPGlWbA6hdIZoL84RwGTSOC0VNWEmBDkJo_Rvxc7k2x7AfU2d5Tutw/w400-h376/CF3.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><b><i>The Fomat Selection</i></b></div><div class="separator" style="clear: both; text-align: left;"><b><i><br /></i></b></div><div class="separator" style="clear: both; text-align: left;"><b style="background-color: #01ffff;"><span style="color: #351c75;">Some Additional Explanation:</span></b></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Let's have a look at what happened.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">two things are importatnt. </div><div class="separator" style="clear: both; text-align: left;">1, the first row of selection and 2, the column specified in the formula.</div><div class="separator" style="clear: both; text-align: left;"><ul style="text-align: left;"><li>In this case the first row of selection is Row 3 and the column where the status to be checked is column D.</li><li>Hence the first cell for comparison is D3</li><li>The $ sign before D (in $D3) is improtant as that makes the column an absolute reference (locked). <a href="https://www.microsoft.com/en-us/microsoft-365/blog/2011/08/17/making-sense-of-dollar-signs-in-excel/" rel="nofollow" target="_blank">Click here</a> if you would like to know more how $ works in a formula.</li></ul><div><br /></div>Excel applies the formula for each cell of the selection. lets look some random cases..<br /><ul style="text-align: left;"><li>for cell B3, the checked cell is D3</li><li>for cell C4, the checked cell is D4</li><li>for cell E4, the checked cell is D5</li></ul><div>In short, since we used $D in the formula, the for any row that is checked, its corresponding D columns will be the one that will be compared.</div><div><br /></div><div><b style="background-color: #01ffff;"><span style="color: #351c75;">Footnote:</span></b></div><div><b style="background-color: #01ffff;"><span style="color: #351c75;"><br /></span></b></div><div>You can repeat the steps if you want another color for another status.</div><div>You may also use other formula like >, <, >=, <= with numbers to set format based on numeric values.</div><div><br /></div></div><div class="separator" style="clear: both; text-align: left;">I hope you are clear how it works and having the row formatted based on a value is specific column will be easy for you.. </div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Feel free to leave a comment if you have issues or have any question.. Would be happy to help.</div><div class="separator" style="clear: both; text-align: left;"><br /></div>Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0Bengaluru, Karnataka, India12.9715987 77.5945627-15.338635136178846 42.4383127 41.281832536178847 112.7508127tag:blogger.com,1999:blog-2229170931707193987.post-61489545709483204702020-10-19T17:31:00.008+02:002020-10-20T05:30:02.675+02:00PTC Creo | my Mapkeys for freeI have created a list of frequently used mapkey shortcuts for the PTC Pro Engineer Creo. This is the macro equivalent in creo. <div><br /></div><div>I am copying them below.If you need them, copy paste the content to the "config.pro" file in your startup folder.<div><br /></div><div>My favourites are highlited and greatly improves the workflow..</div><div><br /></div><div><ul style="text-align: left;"><li>For ex, to reach MEASURE. need to go to another menu and click. Instead, maypkey from any selected menu on the ribbon will work.. Thats wonderful to me...</li><li>Also, Edit Sketch (ES) is overloaded and will work for Extrusion, Revelution, Sweep etc..</li><li>So is aa, pp, zz.. really helps me a lot..</li></ul></div><div><br /></div><div>Hope you will start using them as well and get benefited!</div><div>Let me know in comments, your feedback and issues....<br /><br /><br /><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHe7xtNK5sGxkPIZynpK8HWzMOFiJUAZtUDX0-RneV84wa-EN4j8LfKUXyzQhyphenhyphenALFbLfbyw2zobJBIBOvWk-kyN0nxOUhgz0wh_ZTlscfHI0PoJqymNFwIZRF-CtrDSnjJ339vOPvmqJs/s756/Slide6.PNG" style="margin-left: 1em; margin-right: 1em; text-align: start;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHe7xtNK5sGxkPIZynpK8HWzMOFiJUAZtUDX0-RneV84wa-EN4j8LfKUXyzQhyphenhyphenALFbLfbyw2zobJBIBOvWk-kyN0nxOUhgz0wh_ZTlscfHI0PoJqymNFwIZRF-CtrDSnjJ339vOPvmqJs/s320/Slide6.PNG" /></a></div><br /><br /><ol style="font-style: normal;"><li><span style="font-family: courier;">Sketch View > sv</span></li><li><span style="font-family: courier;">Show and Erase > se</span></li><li><span style="font-family: courier;">Working Directory > wd</span></li><li><span style="font-family: courier;">Hiddel Line View > hi</span></li><li><span style="font-family: courier;">Close (quit) Window > qw</span></li><li><span style="color: #ffa400; font-family: courier;"><b>Measure > mm</b></span></li><li><span style="font-family: courier;">Erase Session > ee</span></li><li><span style="font-family: courier;">Insert Mode @ Sel > is</span></li><li><span style="font-family: courier;">Cancel Insert Mode > ic</span></li><li><span style="color: #ffa400; font-family: courier;"><b>edit Sketch of Sel > es</b></span></li><li><span style="font-family: courier;">Show the view named 1 > 1</span></li><li><span style="font-family: courier;">Show View FRONT > vf</span></li><li><span style="font-family: courier;">Show View TOP > vt</span></li><li><span style="color: #ffa400; font-family: courier;">Show Freature in tree > ff </span></li><li><span style="font-family: courier;">Hide > h1</span></li><li><span style="font-family: courier;">Show > h2</span></li><li><span style="color: #ffa400; font-family: courier;"><b>Toggle (on/off) Axis > aa</b></span></li><li><span style="color: #ffa400; font-family: courier;"><b>Toggle (on/off) Plane > pp</b></span></li><li><span style="color: #ffa400; font-family: courier;"><b>Zoom Previous > zz</b></span></li><li><span style="color: #ffa400; font-family: courier;"><b>Zoom All > za</b></span></li><li><span style="color: #ffa400; font-family: courier;"><b>Zoom Window > zw</b></span></li><li><span style="color: #ffa400; font-family: courier;"><b>View - Shaded > s1</b></span></li><li><span style="color: #ffa400; font-family: courier;"><b>View - Wireframe > s2</b></span></li><li><span style="font-family: courier;">View - Shaded w edges > s3</span></li><li><span style="font-family: courier;">Toggle Model Tree > qq</span></li><li><span style="color: #ffa400; font-family: courier;"><b>Show Model Tree > q1</b></span></li><li><span style="color: #ffa400; font-family: courier;"><b>Show Layer Tree > q2</b></span></li></ol><i><div></div><div><i><br /></i></div><div><i>!--------------------------------</i></div><div><i><br /></i></div><div><i><br /></i></div>mapkey sv @MAPKEY_NAMESketch View;@MAPKEY_LABEL>Sketch view;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `ProCmdViewSketchView.sket`;<br /><br />mapkey se @MAPKEY_NAMEShow & Erase;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `ProCmdDwgShowErase.dwg`;<br /><br />mapkey wd @MAPKEY_NAMEWorking Directory;\<br />mapkey(continued) ~ Select `main_dlg_cur` `MenuBar1`1 `File`;\<br />mapkey(continued) ~ Close `main_dlg_cur` `MenuBar1`;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `File.psh_working_dir`;<br /><br />mapkey hi @MAPKEY_NAMEHidden line;@MAPKEY_LABEL>Hidden line;\<br />mapkey(continued) ~ Select `main_dlg_cur` `ProCmdEnvMdlDisp.mdisp`1 `Hidden line`;<br /><br />mapkey qw @MAPKEY_NAMEQuit window;@MAPKEY_LABEL>Quit window;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `EMBED_BROWSER Close`;\<br />mapkey(continued) ~ Timer `UI Desktop` `UI Desktop` `EmbedBrowserTimer`;<br /><br />mapkey mm @MAPKEY_NAMEMeasure;@MAPKEY_LABEL>Measure;\<br />mapkey(continued) ~ Command `ProCmdNmdTool` 1;<br /><br />mapkey aa @MAPKEY_NAMEToggle Axes;~ Command `ProCmdEnvAxisDisp` 0;<br />mapkey pp @MAPKEY_NAMEToggle Plane;~ Command `ProCmdEnvDtmDisp` 0;<br />mapkey wc @MAPKEY_NAMEWindow Close;~ Command `ProCmdWinCloseGroup`;<br />mapkey zz @MAPKEY_NAMEZoom Previous;~ Command `ProCmdViewPrev`;<br />mapkey za @MAPKEY_NAMEZoom All;~ Command `ProCmdViewRefit`;<br />mapkey zw @MAPKEY_NAMEZoom Window;~ Command `ProCmdViewZoomIn`;<br /><br />mapkey s1 @MAPKEY_NAMEShading;@MAPKEY_LABEL>Shading;\<br />mapkey(continued) ~ Command `ProCmdEnvShaded` 1;<br />mapkey s2 @MAPKEY_NAMEWireframe;@MAPKEY_LABEL>Wireframe;\<br />mapkey(continued) ~ Command `ProCmdEnvWireframe` 1;<br />mapkey s3 @MAPKEY_NAMEWireframe View;@MAPKEY_LABELShade with Edge;\<br />mapkey(continued) ~ Command `ProCmdEnvShadedEdges` 1;<br /><br />mapkey qq @MAPKEY_LABELToggle Model tree;~ Command `ProCmdNavigatorBtn` 0;\<br />mapkey(continued) mapkey sv @MAPKEY_NAMESketch View;@MAPKEY_LABEL>Sketch view;\<br />mapkey(continued) ~ Command `ProCmdViewSketchView`;<br />mapkey q1 ~ Command `ProCmdViewLyrs` 0;<br />mapkey q2 ~ Command `ProCmdViewLyrs` 1;<br /><br />mapkey ee @MAPKEY_LABELerase session;~ Command `ProCmdModelEraseNotDisp`;<br /><br />mapkey ff @MAPKEY_LABELshow feature in model tree;\<br />mapkey(continued) ~ Command `ProCmdMdlTreeFilter` ;~ Activate `mdl_filter` `feat_btn` 1;\<br />mapkey(continued) ~ Activate `mdl_filter` `supres_btn` 1;~ Activate `mdl_filter` `ok_btn`;<br /><br />mapkey h1 ~ Command `ProCmdViewHide`;<br />mapkey h2 ~ Command `ProCmdViewShow`;<br /><br />mapkey nn @MAPKEY_LABELtoggle all datum~ Activate `main_dlg_cur` mapkey w1 \<br />mapkey(continued) @MAPKEY_NAMEModel Tree;~ Command `ProCmdViewLyrs` 0;<br /><br />mapkey wr ~ RButtonArm `main_dlg_cur` `PHTLeft.PHLayerUI.AssyTree` \<br />mapkey(continued) `node0:SOLID`;~ Command `ProCmdViewRestLayStat`;<br /><br />mapkey oa @MAPKEY_NAMEopen assy;~ Command `ProCmdModelOpen` ;\<br />mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `DLG_PREVIEW_POST` `file_open`;\<br />mapkey(continued) ~ Open `file_open` `Type`;\<br />mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `PREVIEW_POPUP_TIMER` \<br />mapkey(continued) `file_open:Ph_list.Filelist:<NULL>`;~ Close `file_open` `Type`;\<br />mapkey(continued) ~ Select `file_open` `Type` 1 `db_1`;<br /><br />mapkey oo @MAPKEY_NAMEOpen ;~ Command `ProCmdModelOpen` ;\<br />mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `DLG_PREVIEW_POST` `file_open`;<br /><br />mapkey is @MAPKEY_NAMESet Insert Mode;\<br />mapkey(continued) ~ RButtonArm `main_dlg_cur` `PHTLeft.AssyTree` `node6`;\<br />mapkey(continued) ~ PopupOver `main_dlg_cur` `ActionMenu` 1 `PHTLeft.AssyTree`;\<br />mapkey(continued) ~ Open `main_dlg_cur` `ActionMenu`;~ Close `main_dlg_cur` `ActionMenu`;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `ActivateInsert`;<br /><br />mapkey ic @MAPKEY_NAMECancel Insert Mode;~ Command `ProCmdResumeLast`;<br /><br />mapkey 1 @MAPKEY_NAMEset view "1";\<br />mapkey(continued) ~ Select `main_dlg_cur` `View:casc340798662`;\<br />mapkey(continued) ~ Close `main_dlg_cur` `View:casc340798662`;\<br />mapkey(continued) ~ Command `ProCmdNamedViewsGalSelect` `1`;<br /><br /><br />mapkey jp @MAPKEY_NAMEcreate JPEG;@MAPKEY_LABELcreate JPEG;\<br />mapkey(continued) ~ Close `main_dlg_cur` `appl_casc`;~ Command `ProCmdModelSaveAs` ;\<br />mapkey(continued) ~ Open `file_saveas` `type_option`;~ Close `file_saveas` `type_option`;\<br />mapkey(continued) ~ Select `file_saveas` `type_option` 1 `db_566`;@MANUAL_PAUSEnew name?;\<br />mapkey(continued) ~ Activate `file_saveas` `OK`;~ Open `shd_img_param` `o_size`;\<br />mapkey(continued) ~ Close `shd_img_param` `o_size`;~ Select `shd_img_param` `o_size` 1 `A4`;\<br />mapkey(continued) ~ Open `shd_img_param` `o_dpi`;~ Close `shd_img_param` `o_dpi`;\<br />mapkey(continued) ~ Select `shd_img_param` `o_dpi` 1 `dpi200`;~ Activate `shd_img_param` `OK`;<br /><br />mapkey es @MAPKEY_NAMEExtr, Rev, Sweep;@MAPKEY_LABELEdit Feature Sketch;\<br />mapkey(continued) ~ RButtonArm `main_dlg_cur` `PHTLeft.AssyTree` `node69`;\<br />mapkey(continued) ~ PopupOver `main_dlg_cur` `ActionMenu` 1 `PHTLeft.AssyTree`;\<br />mapkey(continued) ~ Open `main_dlg_cur` `ActionMenu`;~ Close `main_dlg_cur` `ActionMenu`;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `Redefine`;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `chkbn.extrev_1_placement.0` 1;\<br />mapkey(continued) ~ Trigger `extrev_1_placement.0.0` `PH.section_select_list` `0`;\<br />mapkey(continued) ~ Trigger `extrev_1_placement.0.0` `PH.section_select_list` ``;\<br />mapkey(continued) ~ Activate `extrev_1_placement.0.0` `PH.Sketch`;\<br />mapkey(continued) ~ Command `ProCmdViewSketchView`;\<br />mapkey(continued) ~ RButtonArm `main_dlg_cur` `PHTLeft.AssyTree` `node68`;\<br />mapkey(continued) ~ PopupOver `main_dlg_cur` `ActionMenu` 1 `PHTLeft.AssyTree`;\<br />mapkey(continued) ~ Open `main_dlg_cur` `ActionMenu`;~ Close `main_dlg_cur` `ActionMenu`;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `Redefine`;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `chkbn.revolve_1_placement.0` 1;\<br />mapkey(continued) ~ Trigger `revolve_1_placement.0.0` `PH.section_select_list` `0`;\<br />mapkey(continued) ~ Trigger `revolve_1_placement.0.0` `PH.section_select_list` ``;\<br />mapkey(continued) ~ Activate `revolve_1_placement.0.0` `PH.Sketch`;\<br />mapkey(continued) ~ Command `ProCmdViewSketchView`;\<br />mapkey(continued) ~ Select `main_dlg_cur` `PHTLeft.AssyTree` 1 `node50`;\<br />mapkey(continued) ~ RButtonArm `main_dlg_cur` `PHTLeft.AssyTree` `node50`;\<br />mapkey(continued) ~ PopupOver `main_dlg_cur` `ActionMenu` 1 `PHTLeft.AssyTree`;\<br />mapkey(continued) ~ Open `main_dlg_cur` `ActionMenu`;~ Close `main_dlg_cur` `ActionMenu`;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `Redefine`;\<br />mapkey(continued) ~ Activate `main_dlg_cur` `maindashInst0.Sketch`;\<br />mapkey(continued) ~ Command `ProCmdViewSketchView`;<br /><br />mapkey vf @MAPKEY_LABELView Front;\<br />mapkey(continued) ~ Select `main_dlg_cur` \<br />mapkey(continued) `igToolbar_AncestorIGT_IGT_GRP_inh397369119.proe_win:casc340798662`;\<br />mapkey(continued) ~ Close `main_dlg_cur` \<br />mapkey(continued) `igToolbar_AncestorIGT_IGT_GRP_inh397369119.proe_win:casc340798662`;\<br />mapkey(continued) ~ Command `ProCmdNamedViewsGalSelect` `FRONT`;<br /><br />mapkey vt @MAPKEY_LABELView Top;\<br />mapkey(continued) ~ Select `main_dlg_cur` \<br />mapkey(continued) `igToolbar_AncestorIGT_IGT_GRP_inh397369119.proe_win:casc340798662`;\<br />mapkey(continued) ~ Close `main_dlg_cur` \<br />mapkey(continued) `igToolbar_AncestorIGT_IGT_GRP_inh397369119.proe_win:casc340798662`;\<br />mapkey(continued) ~ Command `ProCmdNamedViewsGalSelect` `TOP`;<br /><br /><br /><br /><br /></i><br /></div></div>Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-52850585290044999492018-09-10T14:10:00.002+02:002020-10-19T09:23:40.412+02:00Renault Duster Modification | getting the USB power concealedI was looking forward to have my USB power wires to be concealed, for a while now. I normally use power cables for the mobile and the DashCam charging. But as you can see below, its wires running through the dashboard and were cluttered. Sometime its not good to have them like that when you drive as it can be distraction.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigfNTzqEAyRvhbZcVxfgX73Cq_ZelH8U9w3ogl2Ypua0rizMFLf3kqan6kGTMCXWdahXMn-25olF6yTSwKxdQ4rbKVIMQwJKodEsJElGXmoGi8BcZYr9tPwf9fCjfxHhT76KQSrYqZvro/s1600/01.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigfNTzqEAyRvhbZcVxfgX73Cq_ZelH8U9w3ogl2Ypua0rizMFLf3kqan6kGTMCXWdahXMn-25olF6yTSwKxdQ4rbKVIMQwJKodEsJElGXmoGi8BcZYr9tPwf9fCjfxHhT76KQSrYqZvro/s200/01.jpg" width="150" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS3I7oi7UKxKHUJXnsoLksUurdAzB-HnAR9fySYE890BnS2SSDuSrBYhMbyrFSdlJ0_vzW2DH8CcAMw7iO48HNEfOXq5Bp6otRY2RprFhQ2jTl8TqFAlcbmaEzJ-mfSgi0oxi_OBXTB-0/s1600/02.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS3I7oi7UKxKHUJXnsoLksUurdAzB-HnAR9fySYE890BnS2SSDuSrBYhMbyrFSdlJ0_vzW2DH8CcAMw7iO48HNEfOXq5Bp6otRY2RprFhQ2jTl8TqFAlcbmaEzJ-mfSgi0oxi_OBXTB-0/s200/02.jpg" width="150" /></a></div><span><a name='more'></a></span><div class="separator" style="clear: both; text-align: center;"><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
This is after the modification. Top left is the input for the DashCam and Top right is for the mobile.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3PMwnucpvLrpeyrisEgky_Plu-TBJXrSvxXbYfQBAtjuEVqNUe5GgXJ3BHBnlgO30DKuDzg3_3BHfvoeKWTG_InljKoXg6FC6KErHEZEfHP45tj_Kr_MQf7TTg7oJ6LLdkNBu3_XQ3Os/s1600/03.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3PMwnucpvLrpeyrisEgky_Plu-TBJXrSvxXbYfQBAtjuEVqNUe5GgXJ3BHBnlgO30DKuDzg3_3BHfvoeKWTG_InljKoXg6FC6KErHEZEfHP45tj_Kr_MQf7TTg7oJ6LLdkNBu3_XQ3Os/s320/03.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
What you need for the Mod:</div>
<div class="separator" style="clear: both; text-align: left;">
1. Fuse Tap (Ordered from <a href="https://www.amazon.in/gp/product/B01AG94SAM/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1" target="_blank">Amazon</a>)</div>
<div class="separator" style="clear: both; text-align: left;">
2. Fuse (Small red item) with proper rating, say 5 Amp. I purchased from local shop.</div>
<div class="separator" style="clear: both; text-align: left;">
3. Dual Port USB Car Adapter (Ordered from <a href="https://www.amazon.in/gp/product/B01D009Y0I/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1" target="_blank">Amazon</a>) </div>
<div class="separator" style="clear: both; text-align: left;">
4. 2 USB cables</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div style="clear: both; text-align: left;">
5. Multimeter to identify the fuse to be connected to</div>
<div style="clear: both; text-align: left;">
6. Soldering Iron and Solder</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP5tZUsAS_YxVfwKPIjAn0TNUln5k77u7fz39NMCZZONepHsdBnNyAFP70C9oYC2-42NWVWAtW75zX70BoiDgz789jkjDkDfohmH9rZW0rTOH-O8sC4Sdjvs3aCR703d_9S5XIxYJSiMw/s1600/04.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP5tZUsAS_YxVfwKPIjAn0TNUln5k77u7fz39NMCZZONepHsdBnNyAFP70C9oYC2-42NWVWAtW75zX70BoiDgz789jkjDkDfohmH9rZW0rTOH-O8sC4Sdjvs3aCR703d_9S5XIxYJSiMw/s200/04.jpg" width="150" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDXnBl1HvHgHaHk1Di9qtpwLZSnFneE9ipkrbC4_2FEPcbdiPfxZtNxFNCa7ivhVNbJvt2JmyK9nDOfVF5jUG83mf3rsWrng8vLwLnKRnjWYvmg798vvAqOUVbXSyO6KMAuNYbwztiI7Y/s1600/05.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDXnBl1HvHgHaHk1Di9qtpwLZSnFneE9ipkrbC4_2FEPcbdiPfxZtNxFNCa7ivhVNbJvt2JmyK9nDOfVF5jUG83mf3rsWrng8vLwLnKRnjWYvmg798vvAqOUVbXSyO6KMAuNYbwztiI7Y/s200/05.jpg" width="150" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzTcrVx7kjsCSrgyR8yQkWH4yaFhyu8ZEa7LA0zboYXQIJLhyphenhyphenAGqaTos3LAoVXblBPAalpSoOw_DpgzVgm_fg2ICR5F1UABpK9HuW-hWoUoDLwFg7akimlrbDZE1HCchZDJQIr2ymX36E/s1600/06.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzTcrVx7kjsCSrgyR8yQkWH4yaFhyu8ZEa7LA0zboYXQIJLhyphenhyphenAGqaTos3LAoVXblBPAalpSoOw_DpgzVgm_fg2ICR5F1UABpK9HuW-hWoUoDLwFg7akimlrbDZE1HCchZDJQIr2ymX36E/s200/06.jpg" width="150" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Steps:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
1. Identify the fuse port to be used. Fuse box next to the passenger compartment on the left of the dash and you will see it when you open the door. You need a port that gets power only when the key is engaged. Many ports are live even without even the key engaged. Look for the correct port. Make sure that the fuse tap is engaged in the orientation in which the power comes through the Fuse. Check by removing the fuse tap, if the power gets disconnected. otherwise, you will have to reverse the fuse tap orientation.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
2. identify the location for the USB Adapter to be placed. I chose the central light console area. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQa9EQ2p9emUKQBppgGnGX382oSpE56zH3JYzbQL9UsDAG2orW1TzZCVNjCW6dm690cncCC0DUJLEQODDJ1JwL54jlqsFg7y6DnWT_vFQmNcDEnTLCz8bo7lRqS0tz3umz_3d8TQua0ME/s1600/07.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQa9EQ2p9emUKQBppgGnGX382oSpE56zH3JYzbQL9UsDAG2orW1TzZCVNjCW6dm690cncCC0DUJLEQODDJ1JwL54jlqsFg7y6DnWT_vFQmNcDEnTLCz8bo7lRqS0tz3umz_3d8TQua0ME/s320/07.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
3. solder the wires to the adapter. Center pin is the +ve which has to be connected to the fuse tap. side pins are negative which has to be connected to any part of the body. decide the cable length accordingly.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
4. Pull the +ve cable to the Fuse box through the top and through the side pillar. I ran the -ve upto the screw thats used for the sun visor. then the 2 output cables were also routed to the locations needed.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXMy6c4d0U_Iqlh5_Rgs5ZCdB6N07A2TlwJ0EainNbqENCOPq7biL0oi7xjsNKEVwCK2KO-K0NeV5ZSi-3IOinz3CEHn1YK0DkKbTk9pSeBC8LrWSZbKQ_emlXb46zHPp7rpjw4zprABc/s1600/00.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXMy6c4d0U_Iqlh5_Rgs5ZCdB6N07A2TlwJ0EainNbqENCOPq7biL0oi7xjsNKEVwCK2KO-K0NeV5ZSi-3IOinz3CEHn1YK0DkKbTk9pSeBC8LrWSZbKQ_emlXb46zHPp7rpjw4zprABc/s400/00.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now I am wireless :)</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
total time spent : ~ 2.5 hours including soldering</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
<br />Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-53064307383845620532016-12-14T02:40:00.000+01:002016-12-14T03:04:13.535+01:00TIP OF THE DAY: CHANGE CASE OF TYPED TEXT IN ANDROID KEYBOARDMost of us know how to change case before we type a text. But how to change case of a typed text from small-caps, ALL-CAPS, Initial-Caps? It's easy..<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9GKjq662I2m2uRbwePoRy4s6BHz2Xqd4aOKNSVSNPCSiTJqLB06aw0EbkW8XNf3VI56Enjz0jToyRZsR3QWuLBlu-tV0qMJSlYuedHsEjcQJN5alak5tmHFzSRDT-jfwvvewFCCP0Z4k/s1600/IMG_20161214_070816.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9GKjq662I2m2uRbwePoRy4s6BHz2Xqd4aOKNSVSNPCSiTJqLB06aw0EbkW8XNf3VI56Enjz0jToyRZsR3QWuLBlu-tV0qMJSlYuedHsEjcQJN5alak5tmHFzSRDT-jfwvvewFCCP0Z4k/s320/IMG_20161214_070816.jpg" width="263" /></a></div>
<br />
<br />
* Double tap to select text. Use arrows to expand selection as needed.<br />
* Use the ⬆ arrow on the keyboard to cycle through each option.<br />
<br />
Simple, isn't it.. share if you liked it..Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com1tag:blogger.com,1999:blog-2229170931707193987.post-4865276986305144262016-05-21T11:35:00.000+02:002016-05-23T20:31:58.890+02:00Focus Stacked Bug<br />
Today morning, my son found a dead bug with bright colors around our home. Suddenly I realized the opportunity for a stacked photo and swung into action. I wanted to do it for a while and this was good chance before the colors go away. below are couple of selected ones.<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVlVluk-dfHJbd9JlOx1IdD0mBS_ciR13k03NmKIZe162YMdCzd40X_6ArK80JsNOFm93B8Syc7nE4CtIXAVl52W9PIFazNpGfrWFNk8uVo3LR35QkR0eO6ZPb5aOj7HB66vyDNSHhMHs/s1600/Bug+Head+Final+Cropped.jpg"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVlVluk-dfHJbd9JlOx1IdD0mBS_ciR13k03NmKIZe162YMdCzd40X_6ArK80JsNOFm93B8Syc7nE4CtIXAVl52W9PIFazNpGfrWFNk8uVo3LR35QkR0eO6ZPb5aOj7HB66vyDNSHhMHs/s320/Bug+Head+Final+Cropped.jpg" /></a></div>
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXXYe1IK0aG8__Pw-YSvsjyzFCi4uhuc69fFVsnLo09wEcC1qKJDxXSuDsfuZ0QsEDV9MnEQGtYJ4jELe3qmTZif04RHndnf5enpaIZWTpPCX32BDYgVy4gJ0nRo-Phf9m_b6vo-0eq5E/s1600/Bug_Final.jpg"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXXYe1IK0aG8__Pw-YSvsjyzFCi4uhuc69fFVsnLo09wEcC1qKJDxXSuDsfuZ0QsEDV9MnEQGtYJ4jELe3qmTZif04RHndnf5enpaIZWTpPCX32BDYgVy4gJ0nRo-Phf9m_b6vo-0eq5E/s320/Bug_Final.jpg" /></a></div>
<a name='more'></a>I was able to take a series of stacks in about an hour. Further an hour in Zerene Stacker did complete the task. I am glad that I have spent those sleepless nights with the focus stack DIY, without which this would be nearly impossible to do.<br />
<br />
Next I need (wish) to take a similar photo of live honey bee! taking stack of a live one is a whole different ball game though.<br />
<br />
Please let me know what you think..<br />
<br />
[EDIT: 23 May 2016]<br />
<br />
here are 3 of the unedited snaps used in the stackup. I had used 30 or so pictures to cover the entire subject. You can notice how shallow the depth of field is, on each photo and the area in focus is different on each one. This is achieved by moving the camera precisely using the Arduino Controlled automated rail, which can be configured for each situation.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQudH4_BFtW-NWT9ZzDkuZRC-EfqQa2RVPQCHOMONxEG-qHztwSKuanhOcibQ59jwQ9ZJD_PNkDaQHMFflGOYn7hz56R7CBl89jZWr0FU6d5Cldcalo1Y-amZKThIFuiVIAP2q7IOD8ms/s1600/JOE_6811.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQudH4_BFtW-NWT9ZzDkuZRC-EfqQa2RVPQCHOMONxEG-qHztwSKuanhOcibQ59jwQ9ZJD_PNkDaQHMFflGOYn7hz56R7CBl89jZWr0FU6d5Cldcalo1Y-amZKThIFuiVIAP2q7IOD8ms/s200/JOE_6811.JPG" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG2vopqJgpD21yNuJZy8VJ0ixzFBj2t0rfXZJtk3fvxcj-YBqvAoJaXG87SDZsVZHurtabx0zfO6wEcIiKZeSq9Ulbe7s4jsHkKtVidchTPM7624zh4wvYzvxFZpFPWZVc57QJdWqSu6A/s1600/JOE_6807.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG2vopqJgpD21yNuJZy8VJ0ixzFBj2t0rfXZJtk3fvxcj-YBqvAoJaXG87SDZsVZHurtabx0zfO6wEcIiKZeSq9Ulbe7s4jsHkKtVidchTPM7624zh4wvYzvxFZpFPWZVc57QJdWqSu6A/s200/JOE_6807.JPG" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoSoxdNxg8fya7jND8msO_7ZrZcmRbJ8ue4lcgYBg1gG1fjy_HF1dOXfmKNXYa9OXLVk866x-X0bH-QfPPCWdaQIyhYCdkg581vivMKxpdcHlW_e87ELfv91KPw7yHtxiPUy6Lqt45AqQ/s1600/JOE_6803.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoSoxdNxg8fya7jND8msO_7ZrZcmRbJ8ue4lcgYBg1gG1fjy_HF1dOXfmKNXYa9OXLVk866x-X0bH-QfPPCWdaQIyhYCdkg581vivMKxpdcHlW_e87ELfv91KPw7yHtxiPUy6Lqt45AqQ/s200/JOE_6803.JPG" width="200" /></a></div>
<br />
<br />Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-7793352109641733262016-05-13T11:56:00.001+02:002016-05-13T12:03:54.821+02:00First Focus Stack using automated RailI tried to do the real stack using the automated setup. Below is the picture of the final image. Because of the shallow depth of field, I had to do a stack of 64 images to cover the scene. This is next to impossible to do manually. To put things in perspective of the magnification, I have added a hair as well in the frame.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJqTkTBHT0gNOpa1sh0BfBxYig8nghpokIhokPZ2NRbW-aKDcKwk7hVVkHUnEoPyIp46jav2FaPSubo7XCPW46aPR2wbgx4T9lidMUiT0NjAZkaq6AIx9y2W4y8spzpQDXr0xyOcjEkIo/s1600/Final_.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJqTkTBHT0gNOpa1sh0BfBxYig8nghpokIhokPZ2NRbW-aKDcKwk7hVVkHUnEoPyIp46jav2FaPSubo7XCPW46aPR2wbgx4T9lidMUiT0NjAZkaq6AIx9y2W4y8spzpQDXr0xyOcjEkIo/s320/Final_.jpg" width="213" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<a name='more'></a><div style="text-align: left;">
For the setup, I have used a reversed 50mm lens and three extension tubes. I also used a flash with diffuser triggered wirelessly. Below is the equipments used for the shoot. Tripod is not shown.</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZqgSzwacKabYFZoA0rDtQhv4NJjpMSu2E6tBtMaW0NnJ15sxerLVBFW2UsWBISOQd8cgLSygU4XBOOooRHTFfFW5eakYL_8YNznCqAUaItHB8M7Ucaj0RuOxDNFNMxB6QOUcMJlfHFMU/s1600/IMG_20160511_013548793.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZqgSzwacKabYFZoA0rDtQhv4NJjpMSu2E6tBtMaW0NnJ15sxerLVBFW2UsWBISOQd8cgLSygU4XBOOooRHTFfFW5eakYL_8YNznCqAUaItHB8M7Ucaj0RuOxDNFNMxB6QOUcMJlfHFMU/s320/IMG_20160511_013548793.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Workflow:</div>
<div class="separator" style="clear: both; text-align: left;">
Typical workflow is like this.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>Setup the camera on rail and on tripod in turn</li>
<li>Setup the subject. Put the camera in liveview. Get your composition correct by focusing at appropriate loccasion. </li>
<li>Setup the flash. Take a trial shot. Get the exposure correct. Try to keep the flash power minimum so that the recycle time is the minimum.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Now it is ready to setup the stack.</li>
<li>Move the camera to each extreme from commander using buttons A and D. Identify the start and end locations and setup using buttons #B and #C.</li>
<li>Identify the step size between each step by ensuring some overlap of depth-of-field. Press button #0 to specify this.</li>
<li>Now at home page, you can see how many steps are needed for the full stack.</li>
</ul>
<ul>
<li>Now we are ready to start the stack.</li>
<li>Swich off the liveview.</li>
<li>Press buttons #* to start the stack.</li>
</ul>
<ul>
<li> The camera will automatically move to first step, take a photo, move to next step, take photo, until it reaches the last step.</li>
<li>At any time in between, you can interrupt the sequence by pressing any key.</li>
<li>If you want to start from the interrupted location, go to the position and press #D.</li>
</ul>
<div>
For such large stacks, it's almost impossible to do it manually. The whole thing was done in 30 minutes.</div>
<div>
<br /></div>
<div>
I'm trying to make a demo video of this. Will share it once ready.<br />
<br />
<br />
I would like to credit Sergey for the <a href="http://pulsar124.wikia.com/wiki/Fast_Stacker" target="_blank">inspiration</a>. Thanks Sergey for sharing the details.</div>
Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-67485080623875779062016-05-04T23:12:00.002+02:002016-05-04T23:15:16.018+02:00Focus stack automation - Rail IntegrationAs posted last time, I had received the rail. I have it integrated now. Also, i have implemented the camera triggering aspect. I am using opto-isolator for that. I got it all put together. Now I can use it for taking photos as expected. Here are some pictures of the setup.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyUzqppV8LDARARbiP1KBWN9YQyqx05jCSR8ZE0PhqbxPAVEgQ6iCgupCzKDX2cgSSuuJAR1-Aq0wIq0EJCiUWsL4dxjjYi8IZ2woHx7kSCtffaCqJTK2AKwAisU5jZ7WoLdVZpW_0WaI/s1600/IMG_20160505_021507497.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyUzqppV8LDARARbiP1KBWN9YQyqx05jCSR8ZE0PhqbxPAVEgQ6iCgupCzKDX2cgSSuuJAR1-Aq0wIq0EJCiUWsL4dxjjYi8IZ2woHx7kSCtffaCqJTK2AKwAisU5jZ7WoLdVZpW_0WaI/s320/IMG_20160505_021507497.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a name='more'></a><div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8F02EDjUG5hjl27h8hIfPYRMOLvFIxN615WdOkYgFMPe-vqnN7Zut2r5CHWEev0bKKTY4B4HVW5q9L86FWHfq2kOxdLHMtEhKVUrHbdE1AHx1H3hc5uN-6kxXyc_SiPMSjA0sOxoVMzQ/s1600/IMG_20160505_021516985.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8F02EDjUG5hjl27h8hIfPYRMOLvFIxN615WdOkYgFMPe-vqnN7Zut2r5CHWEev0bKKTY4B4HVW5q9L86FWHfq2kOxdLHMtEhKVUrHbdE1AHx1H3hc5uN-6kxXyc_SiPMSjA0sOxoVMzQ/s320/IMG_20160505_021516985.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcjC_ojJ0CBkFcLtoEhhTZkJ99Vi4iEvBFLMsPqYH5l9qOtZW9NtPq9nRbVdFX_alWY0cM47zIZut6ZMX0HzHWUz5Nrt6eS5boOVvgmPDZtzL5MnVNobAjl9DLEWqt0W4PsLjC7cpO5wY/s1600/IMG_20160505_021545148.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcjC_ojJ0CBkFcLtoEhhTZkJ99Vi4iEvBFLMsPqYH5l9qOtZW9NtPq9nRbVdFX_alWY0cM47zIZut6ZMX0HzHWUz5Nrt6eS5boOVvgmPDZtzL5MnVNobAjl9DLEWqt0W4PsLjC7cpO5wY/s320/IMG_20160505_021545148.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHjo07riEjt2DMoNmGi5iW4KEI3l0ZYvI8LASLbUcLX6GRv5sJmlG7CAeQSqzWXralJvqV5nGtSKUHIsnIAU7ogTzBS-jr_FEjJgTqvcjBrEKZOLAv4fJrUmDL4GfFw9L9OjSMFL17b2k/s1600/IMG_20160505_021612813.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHjo07riEjt2DMoNmGi5iW4KEI3l0ZYvI8LASLbUcLX6GRv5sJmlG7CAeQSqzWXralJvqV5nGtSKUHIsnIAU7ogTzBS-jr_FEjJgTqvcjBrEKZOLAv4fJrUmDL4GfFw9L9OjSMFL17b2k/s320/IMG_20160505_021612813.jpg" width="180" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijTkvYDLArWNMJvtGiblAqgKO6n1Gh6QCS161oCAGaIjDSZgcMSo000eYP5nCk6SeY0CI0xA4FeOFaDio2SEl9B4F7LXcEsA35AH4TAH9faRlB8WG4x2wlt2t5cE1jU0XyzicgMamyNLg/s1600/IMG_20160505_021740073.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijTkvYDLArWNMJvtGiblAqgKO6n1Gh6QCS161oCAGaIjDSZgcMSo000eYP5nCk6SeY0CI0xA4FeOFaDio2SEl9B4F7LXcEsA35AH4TAH9faRlB8WG4x2wlt2t5cE1jU0XyzicgMamyNLg/s320/IMG_20160505_021740073.jpg" width="180" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="text-align: start;"><br /></span></div>
Although I knew the coupling of the motor with rail knob would be challenging, I didn't think it would be this difficult. I had to plan - make, next plan - make again, several times before I could settle down. The alignment is real key in getting the motor to work without getting stuck.<br />
<br />
Next steps:<br />
Install limit switches for the rail,<br />
Add physical switches for power ON/OFF, LCD ON/OFF, Motor ON/OFF.Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-77935047302809401072016-04-27T22:10:00.003+02:002016-04-27T22:12:21.998+02:00My first Focus Stacked Macro Image While I am trying to make the automation to do the focus stacking, it is also important to try out the stacking manually. Today I did my first ever macro focus stacked image of a flower.<br />
<br />
Setup: three extension tubes (36mm + 20mm + 12mm = 68mm) and reversed 50mm lens. This gives a 2:1 macro (double size) image. Here is the setup and the result. Its a stack of 10 images done in photoshop.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYSn_CRZkMmCRIx7HkCOX676rCLUv6nC7CjxIoPfd-Efx-6NWK3BV4fhKSm0n5h7ZPWzmEYdRZR-COPPxoshKVQGeMRCeDi_JbQU1QSRWzWdh9jSbDTOg4DWrcHtXQBI0ETWORDov-LsU/s1600/Setup.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYSn_CRZkMmCRIx7HkCOX676rCLUv6nC7CjxIoPfd-Efx-6NWK3BV4fhKSm0n5h7ZPWzmEYdRZR-COPPxoshKVQGeMRCeDi_JbQU1QSRWzWdh9jSbDTOg4DWrcHtXQBI0ETWORDov-LsU/s320/Setup.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTyES5dOYC-rlDDUbJlbffwJwjQfz5b4fyoJkwj26rYLQwCrLXmG8m1xsfKT1J2fFwxtDVS7COQrTZ7msaMdi1SyaV3aNmq4sEBrQtoCp4RLgc-vXtdznNc7DmWls1hfznfhpj6bxZIco/s1600/_Final.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTyES5dOYC-rlDDUbJlbffwJwjQfz5b4fyoJkwj26rYLQwCrLXmG8m1xsfKT1J2fFwxtDVS7COQrTZ7msaMdi1SyaV3aNmq4sEBrQtoCp4RLgc-vXtdznNc7DmWls1hfznfhpj6bxZIco/s320/_Final.jpg" width="227" /></a></div>
<br />
<br />Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-18935620085974186922016-04-23T13:02:00.000+02:002016-04-23T13:03:31.417+02:00Focus Stacking Automation, First proto is readyHi there,<br />
<br />
I have an update on the project. I was able to, at last, make everything into a prototype mode. It is working and getting into some shape.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLuiDJ_p6HFxqE40vuRf4D2qKm3LbdkguTdKX8yexp0cenprrAC4JZM-qV7UX736sT9waIlxVQyfq0hQ4U_mTq_tKPj3Y1wnqr3z53DNrUP_Blb4FMBLVyPlupdUIdBgqoXNC5L25C684/s1600/IMG_20160423_160825749.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLuiDJ_p6HFxqE40vuRf4D2qKm3LbdkguTdKX8yexp0cenprrAC4JZM-qV7UX736sT9waIlxVQyfq0hQ4U_mTq_tKPj3Y1wnqr3z53DNrUP_Blb4FMBLVyPlupdUIdBgqoXNC5L25C684/s320/IMG_20160423_160825749.jpg" width="320" /></a></div>
<br />
<a name='more'></a><div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsv-7Sxr71ztS_LYOWAsi5YXEq2FsN47HTqBbqnCby3xp5FZXnaamykRZj4JT1onRbmUY5WeF_0rSNq0zVqf8cJmndEvDa8ZynfdiidZRyBsmoxf8mJdOCxL_bQs554XU3-sQL-dzKMh8/s1600/IMG_20160423_161038516.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsv-7Sxr71ztS_LYOWAsi5YXEq2FsN47HTqBbqnCby3xp5FZXnaamykRZj4JT1onRbmUY5WeF_0rSNq0zVqf8cJmndEvDa8ZynfdiidZRyBsmoxf8mJdOCxL_bQs554XU3-sQL-dzKMh8/s320/IMG_20160423_161038516.jpg" width="320" /></a></div>
<br />
<br />
I have never done soldering before and making the PCB out of the proto boards was real challenge for me. I even spoiled one easy driver board! But some how I completed it.<br />
<br />
Now I can control the Stepper Motor from the control box keypad with feedback and updates on the LCD window.<br />
<br />
Main features are:<br />
Key A: Move the rail to far side at full speed.<br />
Key D: Move the rail to near side at full speed.<br />
Key B HOLD: Move the rail slowly to far side.<br />
Key C HOLD: Move the rail slowly to near side.<br />
Key # * : Start focus stacking from near side.<br />
Let # D : Start focus stacking from current position.<br />
<br />
At any stage during operation, any key pressed will cause an emergency stop.<br />
<br />
You can specify all these, near position, far position etc using keypad as well.<br />
<br />
<br />
<br />
<br />
Next step:<br />
<br />
I have also received the Velbon Macro Rail. I need to fix the Stepper Motor on it.<br />
<br />
I also have to do trials with the opto isolator for the camera triggering.<br />
<br />
Thanks.Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-58132546837237364662016-04-21T22:17:00.001+02:002016-04-21T22:20:52.825+02:00Aurdino for macro stacking - testing the waterI had ordered some of the necessary elements and have started to do some of the basic stuff with each. I am yet to get the rail itself and it may take some more time. But for the testing I have just connected two wheels to the Stepper Motor.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsYVApfaeqZ2nM1NbFRaOVSyJJshdjSZMj0GdVvBecLhtw0VP6JxLfRQFMKXygvvAMutM1nY9nadVUHqiZFvCj3htPRQuEoTCU74pf2Ee9Pj9ni21MoS5J4cKNlD9Xs6oMWhNtGtY8ysI/s1600/IMG_20160329_015946134.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsYVApfaeqZ2nM1NbFRaOVSyJJshdjSZMj0GdVvBecLhtw0VP6JxLfRQFMKXygvvAMutM1nY9nadVUHqiZFvCj3htPRQuEoTCU74pf2Ee9Pj9ni21MoS5J4cKNlD9Xs6oMWhNtGtY8ysI/s320/IMG_20160329_015946134.jpg" width="320" /></a></div>
<br />
What I have now:<br />
1) Aurdino Uno<br />
2) Stepper Motor<br />
3) LCD Display, 16x4<br />
4) Keypad, 4x4<br />
5) Easydriver for Stepper Motor<br />
And accessories like Breadboard, Jumper wires, multimeter..<br />
<br />
<br />
<a name='more'></a><br /><br />
First I started testing each module - Motor, Display and keyboard.<br />
<br />
Next started to integrate them and test.<br />
<br />
Although it's not fully functional, I am able to update the display and make the motor work based on the keypad entries.<br />
<br />
Long way to go, but I am excited to complete my first milestone.<br />
<br />
<br />
Next step: transfer the circuit to a proto board and make it to work like this.<br />
<br />
Further improve the logic and bring the shutter release aspect into the system.Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-62376508342313802482016-04-01T13:51:00.000+02:002016-04-01T13:58:18.713+02:00Starting with Arduino.. Its exciting prospect.<span style="font-family: Verdana, sans-serif;">Recently I came across a post about developing a <a href="http://pulsar124.wikia.com/wiki/Fast_Stacker" target="_blank">automated focus stacking</a>. It uses and Arduino based controller at the heart of it. You can then program the Arduino appropriately. I have had no experience with Arduino. But I have decided to do one myself. So watch this space for more updates..</span>Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-23635540744163569822016-01-25T12:23:00.002+01:002016-01-25T12:23:32.110+01:00<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1xfuCKDLB4zc0duXgcE5uNfuAnRPUKkv08-eLuHlaEPjsb9KkTJeirEnMoyIVBW-CCpIHJyfb9NkMuJclFH4ktgDM3ZDu244BGF5nQp0Jo8lMYY4kBWiAXks52mXJA43TydvylmRO8Z0/s1600/tax.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="289" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1xfuCKDLB4zc0duXgcE5uNfuAnRPUKkv08-eLuHlaEPjsb9KkTJeirEnMoyIVBW-CCpIHJyfb9NkMuJclFH4ktgDM3ZDu244BGF5nQp0Jo8lMYY4kBWiAXks52mXJA43TydvylmRO8Z0/s320/tax.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Collated this data for my own understanding. Sharing it as others may find it useful. Although care is taken for accuracy, cannot guarantee it and please check yourself before deciding.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-638078511855069652010-03-25T09:51:00.005+01:002020-10-19T16:43:31.291+02:00Remove the external links from an Excel File.Sometimes its so happens that when you open an Excel file, it asks if the External Data needs to be updated or not. But you may not have intentionally given any external links. It’s an irritation then. But How to get rid of it?<div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwPOImC-dcdimtYP7Z_pF6DcDLYDlDOuLWtF1jbXZ5Rm1xT_7Ya1PdYa8gqkuAb6aswtWm09gLH4Oz6-RVZTID9sA6siIXOZyGAkTtV2Ph8JnJ8rvKpyKfnkOvlmF88bcIom69xYn9G00/s756/Slide2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="756" data-original-width="756" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwPOImC-dcdimtYP7Z_pF6DcDLYDlDOuLWtF1jbXZ5Rm1xT_7Ya1PdYa8gqkuAb6aswtWm09gLH4Oz6-RVZTID9sA6siIXOZyGAkTtV2Ph8JnJ8rvKpyKfnkOvlmF88bcIom69xYn9G00/s320/Slide2.PNG" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div>
<a name='more'></a>Most likely it could be because of a Formula or a Named Ranges, although there are other possibilities as well.<br />
<br />
<b>1. How to identify the problematic Formula.</b><br />
<br />
Goto the menu "Edit > Find" ( or press <ctrl f=""> ) and enter as below and click "Find All".<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNlRgf4jlpzPPJFsKuYvp5lpe_6pIaWGdcFP5b02xXpSeuIQRI3KFRGWi4wbT38AInZt9Q82d4cSvwo5ESLTKshNhT7BT0zDFNpnNik_nNO9MRVpCuL315PnPJ-EUPb-u2DaBQn2fPCCk/s1600/find+and+replace.jpg"></a><img alt="" border="0" id="BLOGGER_PHOTO_ID_5452494035864167778" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNlRgf4jlpzPPJFsKuYvp5lpe_6pIaWGdcFP5b02xXpSeuIQRI3KFRGWi4wbT38AInZt9Q82d4cSvwo5ESLTKshNhT7BT0zDFNpnNik_nNO9MRVpCuL315PnPJ-EUPb-u2DaBQn2fPCCk/s400/find+and+replace.jpg" style="color: #0000ee; cursor: pointer; display: block; height: 217px; margin: 0px auto 10px; text-align: center; width: 400px;" /> <br /><b>2. How to identify the problematic Named Range.</b> <br />Look for a Named Range that is linked to an external Workbook.<br /><br />I do it this way.<br /><br />go to an empty portion of the worksheet.<br />go to the Menu "Insert >> Name >> Paste" and click "Paste List".<br />Now you can manually search or use the method 1 to identify.<br /> <br />For the full info, <a href="http://office.microsoft.com/en-us/excel/HP102056111033.aspx" target="_blank">click here</a>.</ctrl></div>Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com2tag:blogger.com,1999:blog-2229170931707193987.post-77119822625393617982010-02-18T16:09:00.014+01:002020-10-19T16:39:47.070+02:00Excel Function :TABLE<br />
<br />
Its been a while since I have done some posting. This option in excel is something which I thought would be very useful for many.<br />
<br />
Its the TABLE Function in MS Excel. This is especially useful in the following scenarios.<div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzM2m7WIRV7K4T784h-VKoRCI2Sn0Z0b0OZ3_W-MFc_umOKd9-v6LZ-NMKbilvIPLeEoxYRD2tGhNAcsCm6hmye48CsAJWzsoNkEoQN9px4Ugrg26q_fCScPSa6v9yFiTh0CGYWysj7eU/s756/Slide1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="756" data-original-width="756" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzM2m7WIRV7K4T784h-VKoRCI2Sn0Z0b0OZ3_W-MFc_umOKd9-v6LZ-NMKbilvIPLeEoxYRD2tGhNAcsCm6hmye48CsAJWzsoNkEoQN9px4Ugrg26q_fCScPSa6v9yFiTh0CGYWysj7eU/s320/Slide1.PNG" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div>
<a name='more'></a><br /><br />
Assume you have a very lengthy calculation to arrive at a value. And you want to see how one (or two) input variables affect the output. One way to do this is to have each calculation in adjacent columns and populate the rows with varying input value. Also, if you want two inputs to be changed, its even more difficult. Using TABLE, you can do this very easily. <br />
<br />
I even remember that I had written a whole set of VBA codes to manage what TABLE could do!<br />
<br />
Enough of introduction....<br />
<br />
<br />
<br />
<b>(A) How to do a 1D TABLE (one variable is changed).</b><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDSQdEg5EV8nFza_Cp7LN1rMqKe0Dl0mF6lb3WX-9-a9DeKYjZLEzH1gS14XbCQLk1xBLHJkguozKlNun89_ps7-5TvqXv8D6Cp_kKBjwstuSfg4gzPXyrsPJewSCbMke-Dav8Id70Bj4/s1600-h/1D_Table.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5439604613740450274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDSQdEg5EV8nFza_Cp7LN1rMqKe0Dl0mF6lb3WX-9-a9DeKYjZLEzH1gS14XbCQLk1xBLHJkguozKlNun89_ps7-5TvqXv8D6Cp_kKBjwstuSfg4gzPXyrsPJewSCbMke-Dav8Id70Bj4/s400/1D_Table.gif" style="cursor: pointer; display: block; height: 150px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<br />
<br />
<u>Step 1: Basic Calculation</u><br />
<br />
Setup your basic calculation with the variable value in separate cell(s).<br />
In the Eg, Input is in [C2] and output is in [C3]<br />
<br />
<br />
<u>Step 2: Prepare the Table</u><br />
<br />
Prepare the frame for the Table. Different possible values of the variable is arranged in a column ( assume [E3:E10] ). Immediate to the right of these values ( [F3:F10] ) will be the place for the results. Link the result cell of Step1 to the cell just above it [F2] (for eg, =C3).<br />
<br />
<br />
<u>Step 3: Populate the Table</u><br />
<br />
Select the full table. ( [E2:F3] ). <br />
Go to Data -> Table.<br />
Select the input variable cell as Column Input Cell ([C2])<br />
Select OK.<br />
<br />
You are DONE.<br />
<br />
<b>(B) How to do a 2D TABLE (two variables are varied).</b><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdViw4TCkTt9bQTfCd_h1fIAzGStggXNqaxeHJ1n8CljuLELluNWoWmhLK3F0rblGVUZxO7vuC5-4Ut7bJdTTwNOOexPWw9dy0TzJh1kqh4h9sdevL4nLCE_XQux2FcIKjhURUaEozoz8/s1600-h/2D_Table.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5439606605816060130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdViw4TCkTt9bQTfCd_h1fIAzGStggXNqaxeHJ1n8CljuLELluNWoWmhLK3F0rblGVUZxO7vuC5-4Ut7bJdTTwNOOexPWw9dy0TzJh1kqh4h9sdevL4nLCE_XQux2FcIKjhURUaEozoz8/s400/2D_Table.gif" style="cursor: pointer; display: block; height: 120px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<br />
<br />
<br />
Step 1: Stays the same.<br />
<br />
Step 2: Populate the possibilities of variable 1 in the 1st column and variable 2 as 1st row. The output cell should be linked to the Top-Left Corner.<br />
<br />
Step 3: Select the two variable reference cells in the dialog. Click OK and you should be DONE. <br />
<br />
If there is some mismatch, please repeat the step 3 with the reference cells interchanged.<br />
<br />
<br />
<br />
Hope its useful.. Any questions?, let me know...<br />
<br />
<br />
<br />
<br /></div></div>Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com4tag:blogger.com,1999:blog-2229170931707193987.post-11495043193072692972009-11-14T16:56:00.000+01:002016-04-21T12:11:26.285+02:00Treeview Structure in VB.NetIn this post, we will look at how the Treeview can be used. <br />
<br />
I am using Visual Basic 2008 Express Edition.<br />
<br />
In one of <a href="http://tipsfromjoe.blogspot.com/2007/12/treeview-structure-in-excel-vba.html">my earlier posts</a>, I had explained in detail about Treeview in Excel-VBA. Through this post, I would like to bring the VB.Net way of the control.<br />
<br />
<a name='more'></a><br />
<br />
<b>1) get the Control:</b><br />
<br />
From the Toolbox (Common Controls tab), drag the treeview onto your form.<br />
For convenience, I have named it - TV.<br />
<br />
<b>2) Build the Tree up:</b><br />
<br />
You build tree by adding nodes as child of another Node (or as a child of the TV).<br />
<br />
<i><u>Special things to note for a Node.</u></i><br />
<br />
You can specify an image for a Node.<br />
<br />
You can attach an Object to each Node through the TAG property of the Node. This is something which I found really useful.<br />
<br />
Node Object : TreeNode<br />
<br />
<i><u>Adding a node:</u></i><br />
<br />
You can add a node to the TV.<br />
<br />
'--- Start ---<br />
Dim iNode As New TreeNode<br />
Dim iObj as New MyObject<br />
<br />
'Define iObj...<br />
<br />
iNode.Name = "Name1"<br />
iNode.Text = "Root Node 1"<br />
iNode.Tag = iObj<br />
<br />
TV.Nodes.Add(iNode)<br />
<br />
'--- End ---<br />
<br />
<br />
Or You can add a node to an existing Node.<br />
<br />
'--- Start ---<br />
Dim iNode As New TreeNode<br />
Dim pNode as TreeNode<br />
Dim iObj as New MyObject<br />
<br />
'Define iObj...<br />
<br />
pNode = TV.Nodes(0) 'Zero is the index of the Node at that Level.<br />
<br />
iNode.Name = "Name2"<br />
iNode.Text = "Child Node 1"<br />
iNode.Tag = iObj<br />
<br />
pNode.Nodes.Add(iNode)<br />
<br />
'--- End ---<br />
<br />
<br />
<br />
<i><u>Removing a node:</u></i><br />
<br />
TV.Nodes(0).Nodes(0).Remove()<br />
<br />
or<br />
<br />
iNode = TV.SelectedNode 'or Get the Node of the TV as an Object.<br />
iNode.Remove()<br />
<br />
<br />
<br />
<br />
<i><u>Clearing all nodes:</u></i><br />
<br />
TV.Nodes.Clear()<br />
<br />
<br />
<br />
<br />
<br />
<b>3. Usual properties of Nodes:</b><br />
<br />
You can refer to a node with its Index.<br />
<br />
'Gets or sets the Text <br />
TV.Nodes(i).Text <br />
<br />
'Gets or sets the Name of the Node<br />
TV.Nodes(i).Name<br />
<br />
'say iNode = TV.Node(0).Nodes(2)<br />
<br />
'Gets the Index of the Node at that Level.<br />
iNode.Index<br />
<br />
'Gets the No of children the has got.<br />
iNode.Nodes.Count<br />
<br />
'Gets the First Child Node and the Last Child Node<br />
iNode.FirstNode<br />
iNode.LastNode<br />
<br />
etc....<br />
<br />
<br />
<br />
more, later some time...Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-90596901355120167092009-06-10T05:07:00.004+02:002013-11-07T20:43:41.198+01:00search and find all supressed features in proeHow to find all supressed objects in Proe (Pro Engineer) easily.. Yes, its easy.. no manual search is needed... Thanks to to ProE seach method..<br />
<br />
<a name='more'></a><br />
Go to Edit -> Find and the rest is in the picture.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigUEMVN3dsoazuJjASOjIBNY2GMtTpW3pTyMo0cB8zpqbjorBeb8BFH3LpIAaO4j3OpjmOwOtcYgsdYSxfeHPOQIXzwJzvMO5YwBHbs7my1Iuz2gHdArlVzSDk_NymQUGdEnNeXV04VAE/s1600-h/find+supressed.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5345531042880610722" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigUEMVN3dsoazuJjASOjIBNY2GMtTpW3pTyMo0cB8zpqbjorBeb8BFH3LpIAaO4j3OpjmOwOtcYgsdYSxfeHPOQIXzwJzvMO5YwBHbs7my1Iuz2gHdArlVzSDk_NymQUGdEnNeXV04VAE/s400/find+supressed.jpg" style="cursor: hand; display: block; height: 400px; margin: 0px auto 10px; text-align: center; width: 305px;" /></a><br />
<br />
Select all the items in the left list, add all to the right, Click Close.<br />
<br />
Now you can do what ever you want with it. Say delete all at once!<br />
<br />
This is also applicable for the assembly models. Make sure that the check box "Include Submodel" is clicked. By default it will be checked anyway. Try and let me know.<br />
<br />
<br />
NOTE:<br />
We have used option in some other way as well. We normally rename the dimension symbol to some meaningful text and the same name will be coming in different parts when it represents the same data.<br />
<br />
What if we want to change one such dimension in all parts. Use this option. Search for Dimension. In the attribute tab, put the dim name and it gives all such dims. Select all. Close the window. Now you can modify all such dimensions at once. Regenrate and you are done.<br />
<br />
<br />
<br />
Hope this helps....<br />
<br />
.Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-19640444375308419062009-05-19T07:52:00.003+02:002013-11-07T21:18:55.130+01:00Proe Function / Relation to round the decimal placesIts strange that ProE does not have a ROUND function. At least I counldnt find it.<br />
<br />
It has two funtions.<br />
Ceil will always round it up.<br />
Floor will always round it down.<br />
<br />
I have used both to get the ROUND functionality.<br />
here is the relation...<br />
<a name='more'></a><br />X is the original value.<br />
D is the number of decimal places.<br />
X_New is the rounded value.<br />
<br />
X = 1.334<br />
D = 2<br />
<br />
X_ = X * 10^D<br />
XFLOOR_ = FLOOR(X,D) *10^D<br />
IF X_ - XFLOOR_ < 0.5<br />
X_NEW = FLOOR(X,D)<br />
ELSE<br />
X_NEW = CEIL(X,D)<br />
ENDIF<br />
<br />
<br />
try and let me know if it works.Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com10tag:blogger.com,1999:blog-2229170931707193987.post-17252287418213771122009-03-28T05:03:00.008+01:002020-10-19T16:40:45.547+02:00How to use VLookUp in Microsoft Excel.<br />
<br />
Tool : MS Excel.<br />
Topic : The function - VLOOKUP.<br /><div style="text-align: center;"><br /></div>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYWyFqI2RVMHtYv2BqPOYw5fm_V5mNb90Yyv-uoRfQKz8ZCDAiE1npR2565fG7k89-rC7QF547QkWbVV2ewvLbdDLHlB3WJ7cCm5dBL1uA7L5gBX43j-Tot7uXNHhzLsjFflDW2d5wpss/s756/Slide3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="756" data-original-width="756" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYWyFqI2RVMHtYv2BqPOYw5fm_V5mNb90Yyv-uoRfQKz8ZCDAiE1npR2565fG7k89-rC7QF547QkWbVV2ewvLbdDLHlB3WJ7cCm5dBL1uA7L5gBX43j-Tot7uXNHhzLsjFflDW2d5wpss/s320/Slide3.PNG" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div style="text-align: center;"><br /></div>
<div style="text-align: left;">This is a very useful function to extract data from the table.</div>
<br />
Microsoft says..<br />
"Searches for a value in the leftmost column of a table, and then returns a value in the same row from a column you specify in the table."<br />
<br />
The format.<br />
VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)<br />
<br />
<br />
<a name='more'></a><br />
where..<br />
lookup_value = search key for the first column.<br />
table_array = Table where the data is located.<br />
col_index_num = is the column where the data has to be extracted from.<br />
range_lookup = TRUE or omited then finds an approximate match. FALSE then finds an exact match and returns #N/A if there is no match.<br />
<br />
<br />
Lets take an example. Let the data table be the following one.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjamN7su1tDfpkexPQH4VrnhAQPdvERFi_VrjMFeZPFDZBi9pxyMd8WPqYzTq5NtpMSDT6ZcjlrU7IDIpa0LRun28NkBdiewCxxHXahcHkrnghYTCkTrhP4gYPii5PJP5MOdtXxOnXQXs/s1600-h/Blog+table.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5318091017184801666" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjamN7su1tDfpkexPQH4VrnhAQPdvERFi_VrjMFeZPFDZBi9pxyMd8WPqYzTq5NtpMSDT6ZcjlrU7IDIpa0LRun28NkBdiewCxxHXahcHkrnghYTCkTrhP4gYPii5PJP5MOdtXxOnXQXs/s400/Blog+table.JPG" style="cursor: pointer; display: block; height: 84px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<br />
From this table, you can find how are you feeling [ :) ] and how many days are left for the next weekend [ :)) ].<br />
it will look something like this..<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFa3oHf3CrVc79RnPMhYKX1lZ7Ykgws4MT1RM1L55pITPFWsnrKvo-NkhqGC7rcCo5A7sG6A-b6WHeWhTQgkHUo_bDbfKN04QMyVGryH40CZUbOJbvj_IIbl6PJD3pLGEYfHoXBBOyfI4/s1600-h/blog+vlookup.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5318091019348832370" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFa3oHf3CrVc79RnPMhYKX1lZ7Ykgws4MT1RM1L55pITPFWsnrKvo-NkhqGC7rcCo5A7sG6A-b6WHeWhTQgkHUo_bDbfKN04QMyVGryH40CZUbOJbvj_IIbl6PJD3pLGEYfHoXBBOyfI4/s400/blog+vlookup.JPG" style="cursor: pointer; display: block; height: 82px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<br />
if you replace TUESDAY with another valve, the other two values will get extracted from the table.<br />
<br />
<br />
How it works.<br />
the formula for the cell C11 is this.<br />
=VLOOKUP($C$10,$B$3:$D$7,2,0)<br />
<br />
<br />
the formula for the cell C12 is this.<br />
=VLOOKUP($C$10,$B$3:$D$7,3,0)<br />
<br />
where,<br />
<br />
C10 is the feed data or the data you want to search in the first column.<br />
B3:D7 is the table shown in the first picture. (the source data)<br />
next is column where you want the data from. Its 2 and 3 respectively,<br />
next is 0 [ equal to false ]<br />
<br />
<br />
Note (1):<br />
You can ignore the $ symbols if its complicated. <br />
$ sign is to lock the movement of the reference cell when the cell is copied to another one.<br />
<br />
Note (2):<br />
You can define a name for the table which can be used in functions. <br />
Insert -> Name -> Define. <br />
Put the name as "Data_Table"<br />
Put the value as "B2:D7"<br />
<br />
So the formulae will change as <br />
=VLOOKUP($C$10,Data_Table,2,0)<br />
=VLOOKUP($C$10,Data_Table,3,0)<br />
<br />
<br />
Hope this is a good introduction for you to start exploring it further yourself.<br />
put a comment if there is anything you want to let me know.<br />
<br />
<br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br />Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com1tag:blogger.com,1999:blog-2229170931707193987.post-25232351473518975162009-02-24T15:24:00.008+01:002020-10-19T16:41:39.697+02:00How to Start with VB Programming (VBA) in MS ExcelExcel is like a vast ocean.... <div><br /></div><div>The possibilities of using VB (VBA to be precise) is almost endless </div><div><br /></div><div>But it’s not too complicated (to do simple stuff) if you put bit of an effort and with a small programming background. Let me try to help you to get started....</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd5JzfDOcwwqLrkdraeHYQklFFpv5DuYtn8H2Lm58Huurf8MR-kTCGEF1QJ2HL0-xc9mpWcIr2lARovhj5RoSwPH3kIFlrNfdgUEU_B5aZx29IjuiTsIl8aEPx7auOyX1yq-ewHbyvbHA/s756/Slide4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="756" data-original-width="756" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd5JzfDOcwwqLrkdraeHYQklFFpv5DuYtn8H2Lm58Huurf8MR-kTCGEF1QJ2HL0-xc9mpWcIr2lARovhj5RoSwPH3kIFlrNfdgUEU_B5aZx29IjuiTsIl8aEPx7auOyX1yq-ewHbyvbHA/s320/Slide4.PNG" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div>
<a name='more'></a><br /><br />
<br />
<b>Step 1. Security Settings</b><br />
<br />
Ensure that the security setting is appropriate.<br />
Go to TOOLS -> MACRO -> SECURITY<br />
Select either MEDIUM or LOW. If you select MEDIUM, make sure that you select the option ENABLE MACROS when you open the excel with VBA.<br />
<br />
<br />
<br />
<br />
<b>Step 2. Set Excel ToolBars</b><br />
<br />
In Excel window, it’s better to have the following ToolBars selected. (You can do that at VIEW -> TOOLBARS)<br />
<br />
Visual Basic<br />
Control ToolBox<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpt1DNDM2QBUAFr_NitHX6r0Amb9-wY3RnZJzv5oZi_eWBwuLkts8_-hNfyJUi2B2b7zlVWJPbxTH7NMyNqdskf7QJYvE_tKDhkcdqEjxr9l33DcdISD2aBX2fkcr8miSwFrB7buXDljQ/s1600-h/Excel+Toolbars+for+marcos.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5306370661809655538" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpt1DNDM2QBUAFr_NitHX6r0Amb9-wY3RnZJzv5oZi_eWBwuLkts8_-hNfyJUi2B2b7zlVWJPbxTH7NMyNqdskf7QJYvE_tKDhkcdqEjxr9l33DcdISD2aBX2fkcr8miSwFrB7buXDljQ/s400/Excel+Toolbars+for+marcos.jpg" style="cursor: pointer; display: block; height: 102px; margin: 0px auto 10px; text-align: center; width: 378px;" /></a><br />
<br />
<br />
<b>Step 3. VB Editor</b><br />
<br />
Press <alt f11=""> and you will see the VB Editor.<br />In that window, make sure that the following are visible. (In View Menu.)<br /><br /> Project Explorer<br /> Properties Window<br /><br /><br /><br /><br /><b>Step 4. Create a macro.</b><br /><br />Enter 10 in Cell A1<br />Enter 20 in Cell A2<br />Enter 30 in Cell A10<br /><br />Click the Cell B1.<br />Click RECORD MACRO (in Visual Basic Toolbar).<br />Click OK in the pop up window. Now it will start recoding your actions.<br />Enter the formula, =A1*10 to Cell B1<br />Click STOP RECORDING.<br />Recording is finished.<br /><br />How to use the macro.<br /><br />Click on cell B2. Click the RUN MACRO (in Visual Basic Toolbar). Select the macro you have recorded and click RUN. Click on cell B10 and run the same macro.<br /><br />You can see that the same relation getting pasted in all selected cells.<br /><br /><i>Caution: This is an example where the macro was applicable for any selected cell. Not all macros are that direct. For most of the macros, you need to manually edit if you want that to use in different places.</i><br /><br />To show that effect, you try this. Start recording a macro. Select a cell, apply a Fill Color. Stop recording. Try using the macro for other cells. It fails. That is because the selection is also getting recorded. Now we will see how to modify the macros.<br /><br /><br /><br /><br /><b>Step 5. Edit the macro.</b><br /><br />Click the RUM MACRO. Click EDIT.<br /><br />Here you would be seeing the subs (functions) for each macro. In the sub for the first macro you would see the following command. <br /><br /> ActiveCell.FormulaR1C1 = "=RC[-1]*10"<br /><br /><i>Note: Ignore lines starting with "'". Those are comments and are not evaluated.</i><br /><br />In the second Sub, you would see commands starting with following line or similar.<br /><br /> Range("B1").Select<br /><br />After that you would see few lines starting with "WITH" and ending with "END WITH". We need that. That is what is setting the color. The number represents the color you have selected.<br /><br />Copy the lines from "WITH" to "END WITH".<br />Put it in the first macro so that the sub will look like this.<br /><br /><i><br /></i></alt><br />
<blockquote>
<i>Sub Macro1()</i><br />
<i>'</i><br />
<i>' Macro1 Macro</i><br />
<i>' Macro recorded ---------- by -------</i><br />
<i>'</i><br />
<i><br /></i>
<i>'</i><br />
<i>ActiveCell.FormulaR1C1 = "=RC[-1]*10"</i><br />
<i>With Selection.Interior</i><br />
<i>.ColorIndex = 6</i><br />
<i>.Pattern = xlSolid</i><br />
<i>End With</i><br />
<i><br /></i>
<i>End Sub</i></blockquote>
<i><br /></i><br /><br />Now close the VB editor.<br /><br />In Excel delete the column B.<br />Click on Cell B1 and run the first Macro.<br />You should find that the Formula is placed and Cell is colored.<br /><br /><br /><br /><br /><br /><b>Step 6: Link the macro to a Button.</b><br /><br />From the Control ToolBox, click and place a Button on the sheet. Once it is placed, you are in Design mode. Double click the button and place the following line in that Sub.<br /> Call Macro1 'or with the correct name.<br /><br />Close the VB Editor.<br />On the Visual Basic ToolBar, click EXIT DESIGN MODE.<br /><br />Now verify it by clicking a cell and clicking the button.<br /><br /><br /><br /><br /><br /><br /><br />Now you have a rough idea how it works. Play with The macro like changing color index. Say put a number in the cell D1. Modify the Sub so that the colorindex is taken from that cell like the following.<br /> .ColorIndex = Range("D1")<br /><br />Record more macros to understand how to code is doing things..<br /><br />Have fun!!!<br /> <br /><br /><br /><br /></div>Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0tag:blogger.com,1999:blog-2229170931707193987.post-8519568396572368052009-02-22T17:42:00.014+01:002020-10-19T16:11:23.851+02:00Basics of Excel functions and relations.Through this post, I would like to introduce the Built in Functions of Microsoft Excel to a beginner. Let me put some excel functions that could be of use to those who what to make a start.<br />
<br />
Before touching upon some of the functions, some introductions. The first thing that I would recommend for a beginner is to browse through the list of functions and its uses. At this stage, forget how it to be used, but keep an eye one what all you can do using functions. For that, go to INSERT -> FUNCTIONS. You will see the following dialog. Here you can either select ALL, or a specific category like TEXT. Now select a function and at the bottom, you will see what it will do. To find more detailed explanation, click HELP ON THIS FUNCTION.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLvuk9euay_b234keBcCPP5nPdWsg1A1hU_gSFcUeRIBLuJWyQeXHvpyvy5kohTL4zE4plvBljuC0FrTtox5bQSUKi0IEpSPWyHg_ugjiI8V5_GEOhtXp1aXTAl0agitHDbFttMm1MeO4/s1600-h/Insert+function.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5305667269588968786" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLvuk9euay_b234keBcCPP5nPdWsg1A1hU_gSFcUeRIBLuJWyQeXHvpyvy5kohTL4zE4plvBljuC0FrTtox5bQSUKi0IEpSPWyHg_ugjiI8V5_GEOhtXp1aXTAl0agitHDbFttMm1MeO4/s400/Insert+function.jpg" style="cursor: pointer; display: block; height: 341px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<br />
Note: Click the cell with Function(s) and press F2 and you will be able to see the references in different colors. <br />
<br />
<br />
<a name='more'></a><br />
<br />
<b>Some simple functions:</b><br />
<br />
<br />
<u>1: Sum.</u><br />
To find sum of a few numbers.<br />
Eg: SUM(A1, D5, G1:G15)<br />
<br />
<br />
<u>2: Min.</u><br />
Minimum of a list of numbers<br />
<br />
<br />
<u>3. Max. </u><br />
Maximum of a list of numbers<br />
<br />
<br />
<b>Some more functions:</b><br />
<br />
<br />
<u>4: Concatenate:</u><br />
Joins several strings into one single string. <br />
Here each string can be a reference to another cell (like A5) or a manual one (like "Hello"). Note that the manual entries should be encapsulated in double-quotes.<br />
<br />
NOTE: there is a simpler way to achieve this. just type & in between each string entry. So..<br />
=Concatenate(A5," is the son of ", A10) is equivalent to <br />
=A5&" is the son of "&A10<br />
<br />
<br />
<u>5: Left, Mid and Right</u><br />
Left function allows you to get a specified number of characters from the left side.<br />
Right function allows you to get a specified number of characters from the right side.<br />
Mid function allows you to get a specified number of characters from a specified starting position.<br />
<br />
Eg:<br />
Assume A5 => "I am not a fool"<br />
Assume A6 => "Joe"<br />
<br />
Left(A5, 5) => "I am "<br />
Left(A5, 5)&": "&A6 => "I am : Joe"<br />
<br />
This following is an exercise for you.<br />
Left(A5, 5)&Right(A5,6)<br />
<br />
<br />
<u>6: Substitute</u><br />
Replaces an old text with a new one.<br />
<br />
Assume you have to change a part number format.<br />
What have is 75423.5638.6453 and what you want is 75423-5638-6453. (Replace all .s with -s)<br />
=Substitute(75423.5638.6453, ".", "-") => 75423-5638-6453<br />
<br />
Also,<br />
=Substitute(75423.5638.6453, ".", "") => 7542356386453<br />
<br />
<br />
<u>7: Replace</u><br />
Replaces a text with another one.<br />
The difference from Substitute is that here you are specifying the positions of the text to be replaced.<br />
<br />
<br />
<u>8: Upper, Lower and Proper.</u><br />
Changes the case of the string to the respective ones.<br />
<br />
Upper(AbcD) => "ABCD"<br />
<br />
<br />
<b>Some Special Functions:</b><br />
<br />
<br />
<u>8: VLookUp</u><br />
Searches for a value in the leftmost column of a table, and then returns a value in the same row from a column you specify in the table.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKJq8Rmze70CBraRKZrt3SSrETIymeagYqiHdLqykZ1keY7PVw1CF1kQKjawlFVlFaRdOKdVn9KDtLIQAsk7jOzQgxUWkAGY_IUolxSXeuxeU6A6vQsCUZGD-wExINuGnDd_5gbHpjOJY/s1600-h/Eg+Table+for+VLookup.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5305667266206192178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKJq8Rmze70CBraRKZrt3SSrETIymeagYqiHdLqykZ1keY7PVw1CF1kQKjawlFVlFaRdOKdVn9KDtLIQAsk7jOzQgxUWkAGY_IUolxSXeuxeU6A6vQsCUZGD-wExINuGnDd_5gbHpjOJY/s400/Eg+Table+for+VLookup.jpg" style="cursor: pointer; display: block; height: 188px; margin: 0px auto 10px; text-align: center; width: 374px;" /></a><br />
<br />
VLookUp(Value In Column 1, Range of the Table, The Column number of the data to be taken)<br />
based the feed value, the row will be selected and the data from the correct column is extracted.<br />
<br />
VLookUp(0.675, A1:C10, 3) => 250<br />
<br />
Also..<br />
<br />
A15 => 0.946<br />
A16 => 2<br />
<br />
VLookUp(A15, A1:C10, A16) => 2.17<br />
is the viscosity for a density of 0.946.<br />
<br />
NOTE: Alternately, you can use HLookUp to fix the column and get the data from row.<br />
<br />
<br />
<br />
<u>9: IF</u><br />
Gets a value based on whether a condition is true or false.<br />
<br />
If(Condition, command if condition is true, command if condition is false).<br />
<br />
A1 => 10<br />
A2 => First<br />
A3 => Second<br />
<br />
If(A1>5, A2, A3) => First<br />
If(A1<=5, A2, A3) => Second<br />
<br />
<br />
<u>10: SumIf</u><br />
Adds the cells based on a given criteria.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL5E8rz_-wE1tZm64pnSWb79QkIqw0UUABcT9kM1aU6ayYc1381gEiX6P9CSvVg0epUl9caUsPc9TWPy4zAaqpdwbt-ipqQxLMICcHrwcpFYQC8QmjrFsttdjvVH49r2Abdnoci-eRAnU/s1600-h/Eg+Table+for+SumIF.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5305667268140210082" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL5E8rz_-wE1tZm64pnSWb79QkIqw0UUABcT9kM1aU6ayYc1381gEiX6P9CSvVg0epUl9caUsPc9TWPy4zAaqpdwbt-ipqQxLMICcHrwcpFYQC8QmjrFsttdjvVH49r2Abdnoci-eRAnU/s400/Eg+Table+for+SumIF.jpg" style="cursor: pointer; display: block; height: 103px; margin: 0px auto 10px; text-align: center; width: 265px;" /></a><br />
<br />
SumIf(Criteria Range, Criteria, Sum Range)<br />
if Sum Range is not specified, Criteria Range is taken as Sum Range.<br />
<br />
SumIf((A2:A5, ">160000", B2:B5) => 63,000<br />
Add cells in column B if corresponding cell in Column A >160000.<br />
SumIf((A2:A5, ">160000") => 900,000<br />
Add cells in column A if corresponding cell in Column A >160000.<br />
<br />
NOTE: A similar function COUNTIF counts based on condition.<br />
<br />
<br />
<u>11: ISBlank</u><br />
Checks if a cell is blank or not.<br />
<br />
A1 = ""<br />
A2 = 10<br />
<br />
IsBlank(A1) = TRUE<br />
IsBlank(A2) = FALSE<br />
<br />
If( IsBlank(A1), "", 100 / A1) => ""<br />
If( IsBlank(A2), "", 100 / A2) => 10<br />
<br />
What if you don't do that check!!!<br />
100/A1 => #DIV/0!<br />
100/A2 => 10.<br />
<br />
See the first one returns an error, which you normally don't want to happen. So the check helps to prevent that.<br />
<br />
<br />
<br />
Enough of the functions. You can browse the remaining yourself.<br />
Couple of other related points also.<br />
<br />
<br />
<br />
<br />
<br />
<b>Relative motion of references.</b><br />
<br />
This is a very interesting aspect of how you can use the functions effectively. And interestingly, less commonly used.<br />
The normal references that you take move with the copying. I will explain.<br />
<br />
let B2 is A1 + A2 + B1<br />
If you copy B2 to B3, the relation will automatically be changed as A2+A3+B2. <br />
If you copy B2 to C2, the relation will automatically be changed as B1+B2+C1. <br />
This is the normal way it functions. If copy one cell to the right, all references move one cell to the right. If you copy 2 cells to the bottom, all references move 2 cells to the bottom as well.<br />
<br />
You can control this movement. In the sense, you can restrict some or all the movement by putting a $symbol.<br />
<br />
a reference that is A1 is free to move in both directions.<br />
a reference that is $A$1 is prevented from moving in both directions.<br />
a reference that is $A1 is allowed to move up or down but not right or left.<br />
a reference that is A$1 is allowed to move right or left but not up or down.<br />
<br />
I will take the original example again.<br />
let B2 is $A$1 + $A2 + B$1<br />
<br />
copy that to C2 and you will get this. <br />
$A$1 + $A2 + C$1<br />
<br />
copy that to B3 and you will get this. <br />
$A$1 + $A3 + B$1<br />
<br />
If Row-1 and Column-A are the heading elements, this relation will give you the sum of the heading cells + A1.<br />
<br />
Note:<br />
Pressing F4 repeatedly will cycle through each type.<br />
<br />
<br />
<br />
<br />
I hope that this will allow you to jump start your excel learning.<br />
Excel is a vast ocean. But don't let that bother you. Keep it simple, Make one step at a time and don't forget to make one new step each day. After sometime, you will be amused at what you are able to do.<br />
<br />
Let me know if you have any comments / Qns.<br />
<br />
<br />
<br />Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com1tag:blogger.com,1999:blog-2229170931707193987.post-73319759258928652912008-10-26T12:12:00.004+01:002013-11-07T20:47:42.072+01:00Pro/Animation: Step 1 - A simple animation.This post is to get you a very basic Animation that you can use if you are new to animation.<br />
Proe Version : WF2<br />
<br />
<u>Quick Introduction:</u><br />
<br />
ProE Animation is a typical ProE Module in the sense that sometimes its not easy to start with. But once you get the grip of it, its so easy and powerful. Most tend to think that it’s a hard think to crack but that’s NOT the case at all. I would try to post a few to get you started.<br />
<a name='more'></a><br />
<br />
An Animation can made in few different ways. Main options are...<br />
<br />
1. Come to Animation. Create few snapshots. Make a Key-Frame-Sequence. Animation is ready.<br />
2. You can assemble the components as Connections (instead of Mate/Align/…). Come to Mechanism. Define Motors. Start the motors and you have the animation.<br />
3. Further to step 2, you can come to Animation and add these motors appropriately and have an animation.<br />
<br />
Option 1 is a simple, quick and easy method. But if the movements are complex, don’t use Option 1. You'll may go mad. In such cases go for Option 2 for a good animation, without any frills (without view manipulation, transparency manipulation etc).. If you really want a complex animation with all (or some) of the extra effects like view manipulation, then Option 3 is the one.<br />
<br />
In the coming posts, I would post some of the things related to the Not-So-Simple animations. But today lets have a look at the option 1.<br />
<br />
<br />
<u><b>A simple animation:</b></u><b></b><br />
<br />
Before starting, you can download the assembly, see and use, if you want. Link is at the bottom of this post.<br />
<br />
Here I would bounce a box. <br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTdIwJwF8GvXS2I5U_zrH-je7NyrK4QiWLYLNUTzb3wXegH4gW0RVFtHfzgl_qxhDOmIR3NLq-ZE0SUF6DVmWueovtVGy6Tq60-8HkEOZ7WD26Ciwv3XvTK-TVoQHh8Z4WA2u49b1awjA/s1600-h/animation+icons.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5261421182486438274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTdIwJwF8GvXS2I5U_zrH-je7NyrK4QiWLYLNUTzb3wXegH4gW0RVFtHfzgl_qxhDOmIR3NLq-ZE0SUF6DVmWueovtVGy6Tq60-8HkEOZ7WD26Ciwv3XvTK-TVoQHh8Z4WA2u49b1awjA/s400/animation+icons.JPG" style="cursor: pointer; display: block; height: 150px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih3GuPnHq-ulyNUMQWHrtoL-Ct_s_ysQBX6neO2HfRhAkISQLdDIIP7nCIn87QLj8o1xR54A0FI-xDuGS-07ZyGxpSWL3ECf-ToqF5GOvyF0E_I1ZEOxZJ3JV8IWrnN4hLdi37CwfavDU/s1600-h/bouncing+box.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5261421185893920818" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih3GuPnHq-ulyNUMQWHrtoL-Ct_s_ysQBX6neO2HfRhAkISQLdDIIP7nCIn87QLj8o1xR54A0FI-xDuGS-07ZyGxpSWL3ECf-ToqF5GOvyF0E_I1ZEOxZJ3JV8IWrnN4hLdi37CwfavDU/s400/bouncing+box.JPG" style="cursor: pointer; display: block; height: 400px; margin: 0px auto 10px; text-align: center; width: 332px;" /></a><br />
<br />
1. Make a normal assembly.<br />
<br />
2. Come to Animation. [Application -> Animation]<br />
<br />
3. By default, all parts would be part of the body "Ground". In order to have relative motion, all objects that move together should be defined as a body (one or more parts or sub-assy). Here you need to make the Box as a separate body. Click on the "Define Bodies" Icon. From the new window, select New, select the Box and say OK. You can name it appropriately if you want. Now you should have two bodies - Ground, Body1.<br />
<br />
4. Create Snapshots. You need to create three snapshots in this case. At positions 1 2 and 3. Click on the "Define Snapshot" Icon. Drag the bodies to the positions that you need and take a snapshot (Camera Icon at the Top-Left to take a snapshot). Here you have few options to help you. (1) Advanced Drag. You can move or rotate along a specific axis. (2) Advanced Drag. "Packaged Move" help you to move multiple components together. (3) Constraints Tab. You have a few options here as well. You can Mate/Align bodies + others. I have used the mate option to place the box touching the surface for the 2nd snapshot. (4) Update. In Snapshot Tab on the left side you have an yellow triangular icon with a + inside. This is used to update the existing position to the selected Snapshot. Explore the remaining yourself. Use these options and make the three snapshots that we want. It’s a good idea to keep the snapshots organised with appropriate names.<br />
<br />
5. Create a Key Frame Sequence (KFS). Click on the "Define KFS" icon. Select the correct snapshot and key in the time and press add. This eg, we have three snapshots. Default duration is 10 secs. We put the 1st @ 0, 2nd @ 5 and 3rd @ 10. Press OK. Now you can see that the KFS has come in the Animation Task Bar. In this, each snapshot would come as a triangle. You can select and drag these as well. To redefine, select the KFS, Right Button and select "Edit KFS".<br />
<br />
6. Click "Generate Animation" and say OK if prompted.<br />
<br />
7. Click on "Play the Animation" and you can Run the animation. You can use "Capture" and the animation would be saved as a MPG file in your working directory.<br />
<br />
8. Additionally, you can optimise the duration by specifying the frame rate / frames. To do this, right click at the time scale at the bottom of the Animation Task Bar and click "Edit Time Domain".<br />
<br />
<br />
Let me know by comments your suggestions and doubts. Have fun animating!! <br />
<br />
<br />
[Sorry, I'm not able to upload the ProE files. Please check later for the ProE files].Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com1tag:blogger.com,1999:blog-2229170931707193987.post-76850279048698356362008-09-26T23:06:00.006+02:002013-11-07T21:20:43.931+01:00Wheel Rolling and falling. Made in ProE Mechanism.<br />
<br />
<br />
This is the continuation of the <a href="http://tipsfromjoe.blogspot.com/2008/09/wheel-rolling-and-tilting-made-in-proe.html">previous post</a> that I had.<br />
<br />
I modified the previous mechanism a little bit, and I got this. I removed the slot-follower connection and instead I added an additional pin connection which makes the wheel rotate about the vertical. That plus the manipulation of the tilting angle resulted in this. I think the rendering also is a bit better. It took almost couple of hours to capture the rendered video! But worth the effort..<br />
<br />
Here is the video...<br />
<br />
<a name='more'></a><br />
<br />
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/-41L9Vt8nSo&hl=en&fs=1&rel=0"></param>
<param name="allowFullScreen" value="true"></param>
<embed src="http://www.youtube.com/v/-41L9Vt8nSo&hl=en&fs=1&rel=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object><br />
<br />
I will upload the assembly later, so that you can try it out yourself and see the mechanisms.. come back later and have a look.. its almost midnight and I need to sleep, because I have lot of stuff (not ProE) to do before I shift back to Bangalore.. Yaa, after a short stay here in Germany, I am raring to go back :)<br />
<br />
bye for now..<br />
<br />
<br />
<b>Link for downloading the video:</b><br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://cid-5f43850d7092e5ea.skydrive.live.com/embedrowdetail.aspx/Blog%20Files/Wheel%20rolling%20and%20falling%20|5JOE|6.mpg" style="background-color: white; border: 1px solid #dde5e9; height: 66px; margin: 3px; padding: 0; width: 240px;"></iframe><br />
<br />
<br />Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com2tag:blogger.com,1999:blog-2229170931707193987.post-30566264426650054942008-09-25T22:19:00.006+02:002013-11-07T21:33:20.551+01:00Wheel Rolling and tilting. Made in ProE Mechanism.<br />
<br />
<br />
This is a Mechanism (with Animation) of a wheel rolling along a guide curve, tilting on its way..<br />
<br />
<br />
I was browsing through the PTC Forum and found a requirement. He wanted to simulate a wheel rolling along a curve with a possibility of tilting as well.<br />
<br />
I have been playing around with mechanism options for my <a href="http://tipsfromjoe.blogspot.com/2008/09/exploding-football-made-and-animated-in_24.html">other task</a>. So I thought of giving it a try. <br />
<br />
<a name='more'></a><br /><br />
<br />
It was not easy for me. Basically I needed three independent drives. One for the Rotation of the wheel on its axis. One for the translation of the wheel along the guide curve. and a third one for tilting. One of the issues was to keep the wheel touching at the ground and on the guide curve during tilting.<br />
<br />
So I had to make multiple assembles.<br />
<br />
1. The wheel part.<br />
2. An assy with wheel as its part with Pin Connection.<br />
3. Next level assy, with the assy in step 2 inside it so as to get the tilting as a Pin Connection.<br />
4. Top level assy, where the assy in step 3 inside it. Here I used Cam-Follower arrangement and a drive for the translation.<br />
<br />
Then take it into the animations and capture with rendering enabled.<br />
<br />
(As you can see, my rendering skills are very primitive. ProE doesn't make it any easier also.)<br />
<br />
Here is the output.<br />
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/NF98CeBogE4&hl=en&fs=1&rel=0"></param>
<param name="allowFullScreen" value="true"></param>
<embed src="http://www.youtube.com/v/NF98CeBogE4&hl=en&fs=1&rel=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object><br />
<br />
<br />
Now that this was possible, I like to extend it a bit and make it bit more interesting.. Bit busy these days, but I hope I can post that soon.. <br />
<br />
Bye..<br />
<br />
<br />
<b>Link for downloading the video:</b><br />
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://cid-5f43850d7092e5ea.skydrive.live.com/embedrowdetail.aspx/Blog%20Files/Wheel%20rolling%20along%20a%20curve%20|5JOE|6.mpg" style="background-color: white; border: 1px solid #dde5e9; height: 66px; margin: 3px; padding: 0; width: 240px;"></iframe><br />
<br />
<br />Joehttp://www.blogger.com/profile/03587102753374163251noreply@blogger.com0