I've never actually met Tushar face to face, only through the Solid Edge Community site and email. I could tell right away that he had an unusual combination of skills that I value highly. First he's a mechanical engineer, next a programmer, and then a meticulous technical writer. Besides programming and general CAD articles, he has also written quite a bit on surfacing. You'll recognize his name as the author of many quality technical articles written for this blog. He also spends some time in the Solid Edge Community Forum and Solid Edge Developer Forum answering questions and offering programming examples.
I had the opportunity recently to ask Tushar a few questions. Read on to hear what he has to say.
How did you get introduced to Solid Edge?
In the late 90s I was deeply into AutoCAD and its associated Visual LISP programming language when I learnt about Solid Edge. I wrote to Unigraphics Solutions and they sent my free Origin CD. It was Solid Edge V7 and my first step in the world of 3D CAD. The 2D-only life till then was monotonous and had become stagnant. I started reading through the help files that came with SE 7 and practiced the lessons and tutorials therein. Having good knowledge of Visual Basic I picked up customizing Solid Edge even as I took the baby steps with my first 3D CAD. If memory serves me right, I also had an opportunity to preview Solid Edge Ver. 3 from Intergraph couple of years before that.
I know you’re located in India, but can you tell us more about what you do for a living?
For the past 3 years I am into freelance programming or more appropriately self employed, specializing in migration of custom programs or macro scripts from AutoCAD and other CAD softwares to Solid Edge. Besides templates, best practices, data, skills and workflows, parting with well tested custom programs is one of the major reasons why companies hesitate to switch over to Solid Edge. I ease this process by re-writing their old LISP, FORTRAN or VB programs to .Net versions for Solid Edge.
Being self employed also gives the time and freedom to develop my own home grown CAD system which I fondly call SolidX. The CAD program has various modules like a Sketcher, Part and Assembly. Besides this, a native binary file format which can exchange data with other programs including Solid Edge. SolidX has a scripting language with a color coded script editor and also a plug-in facility.
Full source code is available for any one who wants to create own CAD program based on SolidX by participating in cMayoCAD which expands into Come Make Your Own CAD. Several startups have adopted it to build their own specialized robot simulation, piping and custom machine design softwares. My work related website is www.CADVertex.com
To sum up I can say I do CAD development using Geometric Modeling Kernels and Visualization tools, most notably ACIS and Open CASCADE for geometry and OpenGL and HOOPS for visualization.
Everyone loves the programming stuff you do on the community forum. What were your first programming adventures? Do you have a web site where folks can go see what you do?
After getting a head start with Solid Edge 3 and 7, I started sharing my SE programming knowledge with the world through a Geocities site which is now archived at www.oocities.org/segurucool/and can still be viewed there. The Geocities site became popular during 2004 and caught attention of UGS which is now Siemens PLM. I was offered a job as an Application Engineer with UGS in India where I worked for about a year.
Then I joined EDS who had won a support contract from General Motors who in turn had setup their first Tech Center outside the U.S. and I was part of their extended support team in Pune. I worked on NX programming especially the Knowledge Fusion and NX Open platforms.
At EDS I also worked on CATIA customization using VB.NET for Boeing who were migrating their FORTRAN programs from V4 to V5. Besides this I did extensive customization for SolidWorks and Inventor using .Net and C++.
Most of my knowledge sharing and open source programming is available at www.SurfAndCode.in which hosts several free tutorials for Solid Edge customization using various languages and most notably the Solid Edge Maker Faire which was launched recently.
Can you talk about how Jason Newell has affected your involvement with writing Solid Edge related applications?
Jason is a Solid Edge programming Lighthouse - a torch bearer. I compliment by calling him a one man army who has done more for the SE programming community than several can accomplish together.
Jason in his interview mentions about starting his website in 2005 which is year I left both UGS and Solid Edge moving over to other CAD programming leaving behind the Geocities site around same time as Jason’s Solid Edge programming forum flourished. I can only feel unfortunate for not being part of the buzz and knowledge churning that happened on his forum. By the time I picked up Solid Edge again over the past 2 years, Jason’s forum had become part of the Siemens community.
You wrote a good number of great articles for the community blog, and obviously have a wide range of experience with the Solid Edge software. Are you like Jason, a programmer with a side interest in Solid Edge or a mechanical engineer with a side interest in programming?
Yeah, thanks for reminding about that. Of the 30+ articles on this community, my favorite are the ones introducing Solid Edge customization to the general users who are non-programmers. Both I and Jason are passionate about getting more end users into writing custom programs for Solid Edge by making the initial steps easier.
I know from online reading and via personal interaction with Jason as a programmer with side interest in Solid Edge. You have both facts right. I am a mechanical engineer by qualification for whom CAD is an indispensable tool. After college, I started working in a tool room having CNC machines in the year 1996 which drove me in to CNC programming. Later I also wrote my first CNC code generator for Solid Edge. Every mechanical engineer with knowledge of CNC, CAD and computer programming would attempt to write his own G-Code generator before he dies. I will soon share mine on the SE community forum.
Whereas Jason looks into SAP, web programming, IT for his company donning several hats and also makes tools that are immensely helpful to Solid Edge programmers; I create stuff that would be of direct use to the end users of Solid Edge.
How did you accumulate all of this great experience with Solid Edge?
Ironically, other CAD programs like SolidWorks, Inventor, CATIA and NX have played an important role in augmenting my knowledge of Solid Edge over the past 16 yrs. Most of my experience of Solid Edge is about its API i.e. Application Programming Interface and I use it in tandem with other CAD API as part of code migration assignments mentioned earlier.
This style comes naturally to Indians who effortlessly speak at least 4 languages and fluently. States in India have a different language each spoken by 50+ million people. I read-write Marathi as my mother tongue, Hindi as the national language and English for international communication. If you happen to grow up in another state than the native for a good deal of time, you have an opportunity to pick up an additional local language. Some students also take up learning a European language to improve their career prospects.
So I had a natural flair for picking up several programming languages and styles which helped me accumulate my Solid Edge knowledge in which programming played the part of a catalyst. This is unlike a machine designer or a product designer who explores Solid Edge features for modeling purpose.
Solid Edge development center is only a couple of blocks from my residence in Pune and its quite often that I bump into developers of Solid Edge after office hours on the streets, in the park or at launch events and get to interact with them closely. We communicate in a mix of Marathi, English and C++. That is also a reason I don’t participate in pet peeves thread on the forum for I let loose my Solid edge wish list directly on the developers and architects of Solid Edge who plan and work out the little features and functions that I use and code everyday.
Also, PTC, Autodesk and DS (SolidWorks) have their development centers in Pune and a good number of my college friends and next door neighbors work there as senior programmers. My flamboyant cousin who heads SW development at Dassault taunted me over tea, about Pack and Go and in a fit of rage I wrote PacEdge - the equivalent utility for Solid Edge, also shared in the community forum last month. Like the Origin CD 16 yrs ago, Solid Edge still keeps me hooked on.
Have you found that the information you give away on the Solid Edge Forum has come back to you in profitable work?
My participation in the Solid Edge forum is more of a passion and a hobby. It gives pleasure but the thought of exploiting it for a profit never occurred to me. My commercial website CADVertex.com is virtually unknown on the forum. I do use my free site SurfAndCode.in in my signature since a larger part of the knowledge shared on the forum is on this site, which has no commercial use.
The Solid Edge Maker Faire series is a novel concept, where one can download free utilities for Solid Edge and also get to read highly illustrative and in-depth tutorials on how I wrote the code which itself is a giveaway. My efforts with the website are on the boil but in the near future I am planning to take up a full time job instead of being self-employed.
It’s a rare find to run into someone who has great technical knowledge and the ability to express themselves well in writing and images in an organized way, but you clearly have this skill. Can you tell us how you came to be so practiced with technical writing?
When coding for too many similar CAD systems, stuff often overlap and mixes up which compelled me to start keeping notes of little things. This practice gathered momentum over time and soon I amassed a treasure trove of extensive self-help documentation.
My guiding principle when writing technical stuff is it should look to my readers same way I wish I had when I first started learning and figuring out all by self. This inspires me to take the pains and efforts to script every minute detail meticulously.
Creating operation manuals for CAD customization programs is mandatory for every programmer. He or she could be pardoned if the program has bugs, but the manuals have to look impressive - just kiddingJ. This also helped me getting into the habit of expressing technical knowledge with pictorial illustrations.
Have you been to any of the Solid Edge University events?
None yet, but I came close to the 2005 event during my short stint with UGS, but could not make it. Lately I have heard rumors that Karsten Newbury had plans to get few community members to this year’s event. After the news about him moving into a new role came in, I have kept my fingers crossed.
Aside from all of the great things you do for the Solid Edge Community, what kinds of things keep you busy after work hours?
After a tiring day work and back to home, I find myself torn between the love showered by my 12 year old boy and 5 yr old little princess. It’s quite a task to keep these little ones happy same time, each one trying to grab my attention which helps unwind and keeps me busy at the same time.
I am happily married for 14 yrs now and give all credit for any of my achievements that appear ‘great’ to the world to my wife for her enduring patience and always finding by my side during the times when I write and keep writing for endless hours. A man’s greatest earthly possession is the undemanding love of a wonderful woman. All men seek it, but only the fortunate find it. I happen to be among the fortunate. This great feeling helps keep me going.