Deelip.com

Friday, April 03, 2009

Pro/ENGINEER: Old Is Gold

I prefer to think that I know a few things about the innards of today’s CAD systems. Over the past decade I have written plug-ins for a bunch of them – AutoCAD, Inventor, 3ds Max, Maya, SolidWorks, Solid Edge, SpaceClaim, Rhinoceros, Alibre Design, IRONCAD, INOVATE, SketchUp, Acrobat and over a dozen variants of IntelliCAD. Yes, I have done all these ladies. As programmers we get to feel them up and touch them in places that end users cannot. This is because CAD vendors need to expose certain parts of them by means of API’s (Application Programming Interface) so that we can plug our stuff into them. I must admit, checking them out has always been the most pleasurable part.

Today I began checking out Pro/ENGINEER. SYCODE recently became a PTC Partner and I am spending some time alone with Pro/E to figure her out. Actually this part of my plan of doing my due diligence with regard to PTC and it products and stop relying on what informed, or otherwise, people have to say.

If you ask me to describe Pro/E in one word, I would say she is old. But let me take two words. She is very old. Let me explain. You need to write Pro/E plug-ins using the C programming language. Not C++, but C. To give you an idea, C is a language that became outdated a decade ago. I started programming in C in my third year engineering, quickly moved to C++ and never looked back, till this morning. I eventually used Visual C++ 2005 to write my first Pro/E plug-in, but internally I had to create C functions, something I thought I would never have to do again in my life.

The API provided by PTC to third party developers is not an organized set of object-oriented C++ classes, like all the other API’s I have worked with in the past. Rather, it is one giant set of C functions that I spent a better part my day sifting through. To make it worse, the example code that comes with the API is next to useless for beginners because whoever wrote it has safely assumed that the reader has been developing Pro/E plug-ins for years. I finally had to make a tech support call to PTC India, the first programming related support call in my entire life, to help me get started.

Quite obviously, the reason for Pro/E still using antiquated code is due the fact that the company, and hence the product, is indeed old. But Autodesk is also an old company and AutoCAD 2010 has been written using the most recent version of Visual C++. In fact AutoCAD 2010 is the only CAD software I know that has been written in Visual C++ 2008. AutoCAD was rewritten in C++ more than a decade ago. So why didn’t PTC do the same? Well, because Pro/E still runs on Unix (the Sun and HP versions) and AutoCAD doesn’t. I am not sure what percentage of Pro/E users are running Unix. But I suspect it has to be a large number in order to justify PTC’s decision of holding Pro/E back.

As the saying goes, “If it ain’t broke, don’t fix it”. Pro/E may be old, but she certainly ain’t broken. Having said that, judging by their API, I get the feeling that the code that goes to make up Pro/E is going to be a nightmare to maintain, let alone rewrite. I may be wrong, but my guess is that if PTC buys a company, like it did CoCreate, or if someone buys PTC, I highly doubt that Pro/E will integrate or get integrated with another product. At least I would not like to be the one in charge of making such an integration happen. I would prefer to shoot myself instead.

When I was at PTC World in Mumbai, I asked a couple of top PTC technical people about direct modelling and whether we would see some in Pro/E. The reply was a straight “No”. “Our customers are not asking for it. And if they do, then we have CoCreate for them”, one of them told me. I think I now know the reason why. I don’t think she will be able to take it.

I am a programmer, not much of a user. So I am looking at this purely from a programming point of view. But looking from a user’s perspective, this old lady still has the moves. She is extremely capable and can even put some of these newer damsels to shame. I can’t say for sure but I think her aged anatomy is probably what makes her powerful. Pretty much like how good old DOS was lightening compared to today’s sexy and sluggish Vista. In the past couple of years I have noticed a sudden craze towards making software “look” good. CAD vendors actually count these pretty features as enhancements, and I am not sure why. And some of these so called “enhancements” actually end up slowing things down.

People have used Pro/E to design airplanes and cars years ago and as I see it, they will continue to do so for a long time to come. If you ask me I prefer her the way she is. She is like old wine. Putting her in a new bottle is not going to make much of a difference and I am sure PTC knows it.

After attending COFES 2009 this April, I will be heading to the PTC HQ in Needham, where I hope to meet a few people who know her far more than I do. I have only taken off her coat. There is still a lot more to uncover. If you want to enjoy the show with me, watch this space.

10 Comments:

  • C is still widely used - for systems and embedded programing, two places where C++ can have too much overhead (e.g. C++ on a PIC18Fxxx isn't a great idea). But, yes, for MCAD, an object oriented language is a better choice.

    Unix/Linux compatibility certainly isn't a reason to keep C - gcc has had C++ support for a long time (and, unlike MSVC, also supports Ada, Objective C, and D). It's true that some *nix developers still love C (e.g. the GNOME desktop), but C++ is quite popular, too (including Qt and KDE).

    BTW, talking about old programming languages, VB6 is still widely used -- in fact, I have a couple VB6 programs I maintain (new projects are in .NET).

    --Tony

    By Anonymous Anonymous, At 2:12 AM, April 03, 2009  

  • hmm I heart that the new pro/e versions doesn't run on linux any more. And then I am a young user every time I use a program I keep asking myself can't that work any better? And why is that working how it is. Clearly lots of PTC users aren't asking the same questions because that is what bothers me the most about pro/e. Dos maybe faster, but if you ask me to change my windows for dos I will call you crazy. There will be a time that pro/e gets soo out dated that the reason of not finding personal for working with it will become a reason for not working with it at all. But at least they have a back-up plan with go-creat. And for linux support have a look at Blender.org they support every OS and there even freeware so if they can do it so could any muli-million dollar CAD company.

    By Blogger Marijn, At 3:41 AM, April 03, 2009  

  • Deelip –

    I’m glad you got the chance to spend some intimate time with Pro/E. Thanks for writing about it.

    While the fact is that Pro/E has been around for a long time, you and your readers should also know that it is very well maintained. In fact, I believe that no other CAD product in the world receives the level of investment that Pro/E does. Sure, in some cases PTC’s competitors may spend more money on R&D, but they are spreading that over a broad portfolio of actively developed CAD products to address the high end and the low end of the market. At PTC, we focus our investments on a single, sclable parametric solution - Pro/E.

    I mention this because it is an important part of PTC’s strategy – to develop a single, scalable parametric CAD tool, that can compete with SolidWorks and SolidEdge at the low end of the market, and CATIA and UG NX at the high end. No other CAD system can do that.

    Furthermore, while Pro/E has been around for a while, it is VERY well maintained. We dedicate a good amount of energy every release to “housekeeping” or IPA – improvements in Infrastructure, Performance, and Architecture. And then on top of that, we deliver hundreds and hundreds of REAL enhancements, to make sure the lady maintains her moves.

    I’m looking forward to your visit to PTC next month. Although I will be in Europe and unable to meet you myself, I’ve asked my team to be sure to impress upon you how agile Pro/E still is. I am confident you’ll be impressed with what is coming this summer in Pro/E Wildfire 5.0, and what we have planned beyond that.

    Regards,

    ~ Mike



    Michael M. Campbell
    SVP Product Management, Desktop Products
    PTC

    By Anonymous Mike, At 10:31 PM, April 03, 2009  

  • Mike,

    It was a pleasure meeting you at COFES 2008. Too bad we will not be meeting this time. I am really looking forward to my PTC visit.

    By Blogger Deelip Menezes, At 12:40 AM, April 04, 2009  

  • At least Pro/E works properly. Solidworks STILL cannot do many things that have been in Pro/E since the beginning. The modelling engine still fails to work correctly in SWorks and on Friday Solidworks could not do a simple sweep.

    Solidworks still doesn't do jogged leaders.

    But it's "easier to use". Right.

    By Anonymous Anonymous, At 6:41 AM, April 05, 2009  

  • Deelip, I read read your initial comment,you said:
    "If you ask me to describe Pro/E in one word, I would say she is old. But let me take two words. She is very old"

    I couldn't agree more with you,Pro/E is like an "antique" car, with a lot of cosmetic bondo underneath trying to hide its awkward details and
    non logical interface that it always comes out the minute you open the program and go "File-->Open...
    and everything looks unfamiliar compared to everything out there, modern, easy, compatible,logical, etc.

    The company I work for decided, at least one division, to go with Pro/E mostly because some bean counter decided so, but after 2 years we are seen exactly what this software is all about....pain,pain,
    and more pain just to do about anything that we used to do a lot easier we our previous CAD/CAE software,SDRC's I-deas Master Series.
    Then there isn't much good neither when you need to draw in 2d, that's why every company that uses Pro/E also use AutoCad or other 2D package, because PTC 2d application in Pro/E is useless, unless you are creating drawings from your 3d model.

    Our transition has been very painful, mostly because
    we enjoyed working in one common 3D space, where wireframe, parts, assemblies, sketches, etc was easily manipulated without any problems, Data Management being included there too in the same design application, not a separate IntraLink kind of plug-in,also difficult to learn and work with.

    I won't deny that Pro/E isn't a capable tool, but at what cost? Lower productivity, frustration, lots of wasted time calling for support, etc.
    Add to all of this,the fact that everything take more clicks to get done, several steps asking for user confirmation to validate a command, like if the
    world is going to end...plain stupid.
    In many years of use of cad, I previously experienced, PT Modeler, Pro/E 2001i2 and now Wildfire 3, well it's still the most difficult CAD package out there and not necessarily the cheapest for a 3D modeler, not to leave out also the fact that
    everything is nickel and dime as a separate add-on,
    by the time you have a complete cad/cae/cam solution
    you have spent so much, you probably ran out of money.

    Wake up America!

    By Anonymous Anonymous, At 9:16 AM, April 08, 2009  

  • As you can see from the comments, users consider this topic to be a holy war. Once you've learned a CAD system, changing is painful. Having to change back is even more painful. I know both Pro and SW users who would rather (pick something painful) than change over. My personal experience is I learned Pro in '95 and briefly used SW for one project in '05. I like a number of features, the pricing, and the simplicity of ordering SW. But it was slow and crashed daily, so I promptly switched back. I declared at the time that small assemblies (100 parts?) were almost impossible to deal with in SW. In fact, I recreated the assy in Pro and compared. The bar charts on regen time, memory use, file size and loading assemblies looked funny because you couldn't see the Pro pars, just the tall SW bars next to them. I think much of that has changed, but frankly, I don't know. I hear both sides from current Pro users and SW users.

    In short, I would LOVE to hear more from someone looking at the insides.

    By Anonymous Akhil, At 2:20 AM, May 12, 2009  

  • OK had a quick read on some of these comments, and maybe there is some clarification needed.

    First: C vs C++. C++ comes in many flavours, you can have windows flavour, gnu flavour, IBM VA etc. NONE of these standards are truly "portable" like C. Basically, C++ locks you into a specific OS vendor API (not by accident either). C also runs faster, period. Every benchmark ever done in the world will tell you C generates less spaghetti, smaller code and greater speed.

    Blender (mentioned also in comment) also uses plain C, check it out: http://www.blender.org/development/architecture/
    Three guesses why (see comment above ;)

    I was disappointed by the discontinued support on Linux, but the reality was that this was a very small fraction of the paying customers and a PLM system like Pro/ENGINEER is much more to maintain than a 3D animation studio like Blender (no disrespect to Blender)

    I would hardly call C outdated.

    By Blogger CADDIT CAD Software, At 9:56 AM, January 04, 2010  

  • CADDIT,

    I get your point about the many flavors of C++. But the real problem with C is the ability to reuse the code in order to make changes to the program logic. The object oriented nature of C++ is a huge plus in that regard. A glowing example is IntelliCAD 6. Its code still has 2000 line functions and it becomes very hard to reorganize the logic to make way for change.

    By Blogger Deelip Menezes, At 10:39 AM, January 04, 2010  

  • Just go to the annual PTC users group convention, attend the last day of Q$A and see what the crowd is like. 1/3 try and help PTC save their products and the other 2/3 want to hang the panel from the nearest yard arm.

    By Anonymous Anonymous, At 10:27 PM, October 18, 2010  

Post a Comment

Subscribe to Post Comments [Atom]



<< Home