One of the biggest challenges of automating Solid Edge (for me at least) is the sheer size of the API. SDK documentation and examples are nice but these are static views of the API. What would be extremely helpful is to have a runtime view of the API. This is where Spy for Solid Edge steps in. This is an open source project on GitHub made available by the Solid Edge Developer Community.

I wrote and released the original application (formerly Solid Edge Spy) back in 2005 on my personal website. Open source was not as popular at the time and I chose to not share my code. Released at version 1.0, it had not been updated since until December 2013. At that time, our community was getting more involved in open source so I made the decision to share the rewritten code for all to see. Most won't care about the code itself, and that's ok, but for me it's the concept of contributing my work to the community and opening the door for others to contribute.

The current release of Spy for Solid Edge has a lot of functionality, too much to really cover in a single blog post so I made a video demonstrating its functionality. I honestly tried to make it a short video but it ended up being 27 minutes long. I encourage you all to download and install the latest release and give it a test drive. I hope you all find it as incredibly useful as I have.

 

Editor note: This post is also available on the Solid Edge Developer Blog.

Those who have followed me over the years likely notice that the site looks a bit different. I created this site in 2005 give the Solid Edge Developer Community a place to collaborate because at the time, we didn’t have a better alternative. Now that Siemens is hosting the community, my site has been relegated to a blog site and I’m ok with that.

There are a million blogging options out there but I want to explain why I chose the solution that I did. If you’ve ever spoken with me, you’ll know that I’m terrible at web programming. I’ve also recently hit the GitHub scene in an effort to expand the Solid Edge Community open source initiative. Recently, I read a blog post from one of my idols, Scott Hanselman. In that post, Scott mentioned Mads Kristensen’s MiniBlog project. I quickly realized this was a perfect opportunity for me to learn some modern ASP.NET and get my feet wet forking projects on GitHub.

Needless to say, I’ve had a blast working with MiniBlog and learning ASP.NET\Razor by creating my own theme. My theme is still a work in progress as I learn. I am aware of a few issues but I’ll solve them as a I go. Special thanks to Mads Kristensen for creating and sharing MiniBlog and Scott Hanselman for bringing it to my attention.

I've said it before but it's worth mentioning again. One of the biggest challenges to learning the Solid Edge API is the sheer size of the API. The Solid Edge API is HUGE and takes a considerable amount of time to learn. It's also not always obvious how certain APIs work and can be a challenge to get right. Throw in the various programming languages (they all work differently) and you've got yourself a headache. Snippets can be helpful but often not enough to accomplish a specific task in full. Documentation will get you so far but what programmers really need are examples. Solutions and projects in our favorite language that we can open, compile and start learning.

Welcome to the Samples for Solid Edge project on CodePlex. CodePlex is an open source project hosting site. This project was created and is dedicated to providing high quality examples of how to use the various Solid Edge APIs. API samples, full demos and addins are available in C++, C# and Visual Basic.

API Samples

The C# and Visual Basic languages contain an API Samples solution that has a user friendly GUI. Simply navigate to the desired API and\or environment and execute\debug pre-built samples.

Demos

Full demos are created when providing a simple API sample is not enough. As an example shown below, the Mouse Events demo demonstrates how to create a Command object and leverage its Mouse property and events to select graphical objects in the Solid Edge GUI.

AddIns

There are also several addin projects that demonstrate how to create addins for Solid Edge. AddIns can be very complicated and difficult to get right. These projects demonstrate what is possible. The following screenshot is from the RibbarBar addin project.

Conclusion

I do my best to think up quality examples that you all want and need. If you have specific examples that you would like to see, feel free start a discussion with me in the project forums. I am also interested in ANY code examples that you can and are willing to share. It's much easier and faster for me to convert an existing example than it is to create one from scratch.

Thank you to all who have contributed examples so far. As I said in the closing statement of my A new beginning post, we are stronger together than we are as individuals.

Editor note: This post is also available on the Solid Edge Developer Blog.

As most of you know, I started JasonNewell.NET in 2005 in an effort expand and grow the Solid Edge developer community. At that time, we did not have a good medium to collaborate so I didn't mind hosting a website and forums. Almost immediately after I launched the site, I started getting pulled in many different directions and never really got the chance to give the community the attention that it needed or deserved. I did my best and for the most part am pleased with how far we've come together over the years.

For the past several years, I have been vocal in saying that I thought the community site should be hosted by Siemens. My opinion was that it would be good for me, the community and Siemens. Like so many other things I've brought to Siemens attention, Karsten, Dan, Mark, etc. listened and acted to give us the new Solid Edge Developer Forum. Understandably, it took time to formulate a plan and implement it but here we are. I personally couldn't be happier, on many levels.

I plan on leaving JasonNewell.NET as-is until the end of the year. After that I time, I'll likely change over to a Wordpress blog site although the majority of my Solid Edge related blogs will be on the new Solid Edge Developer Blog. I would like to thank everyone that contributed over the years. It was a good run and I am confident this is the right next step for the community. See you all on the other side!

Here are the new links:

For those of you who don't know me, my name is Jason Newell. I am an Applications Architect for The Charles Machine Works, Inc. in Perry, OK where I have worked for 16 years in the IT department. During the early years of my tenure, I sat in the Engineering building and worked side-by-side with Engineers every day. During that time, I gained an appreciation for CAD and the technology challenges that Engineers face. I was just learning programming at the time and I can still vividly remember the satisfaction I felt helping my co-workers be more productive in their jobs.

The year was 2000 and I remember how incredibly difficult it was trying to learn how to automate Solid Edge. At that time, all that I had available to me was an outdated SDK, few examples and a customer only NNTP bulletin board. Googling "Solid Edge API" back in 2000 was like Googling for "The meaning of life", no real answers. Needless to say, it was frustrating and terribly difficult. It's not my nature to ask for help but out of desperation, I posted my questions in the customer only NNTP bulletin board and actually got helpful responses. It was those handful of people that took time out of their day to help me that inspired me to do my part in giving back to the community.

In 2005, I started JasonNewell.NET in an effort to grow the Solid Edge Developer Community. I feel that my efforts were mostly successful but I think we all felt and knew that it could be so much more. The main problem with me hosting the community is that I got lost along the way and couldn't give the community the attention it needed and deserved. There is only so much time in the day and we all have lives outside of work. If anything though, I think we proved that community works and is necessary.

Fast forward to today, 13 years after I started this journey, and here we are. As I stand here today, I couldn't be happier. Not having to maintain a community website and forums is a huge stress relief for me personally and helps me focus on the task at hand, helping you. Siemens also graciously granted me "Community Manager" status here on our new home. I'm not sure what all that entails quite yet but it does allow me to post blogs which I plan on doing a lot of. While my day job doesn't involve much Solid Edge programming these days, I have done my best to be the face and voice of the Solid Edge Developer Community throughout the years and will continue to do so.

So many people to thank but I specifically want to thank Karsten Newbury for listening to me, Dan Staples for believing in me, Mark Burhop for putting up with me, Susan Alig (Cinadr) for working with me and Matt Lombard for having the courage to make "the switch" and help us grow our communities to make them the best they can be. Hats off to Siemens for listening. If I've learned anything in my 16 year career, it's that change takes time.

In closing, I would like to leave you with the following thoughts. How much have you benefited from community contributions over the years? How much have you given back to the community? Where would our community be today if those select few back in 2000 hadn't taken time out of their day to help me resolve my questions and inspire me to make a difference? I've often wondered how many people I've been able to help and inspire. Though I'll never know the answer, I take great satisfaction in knowing that I've had a hand in making a difference. I encourage you all to join me in that satisfaction by being active in the community. We are stronger together than we are as individuals.

Editor note: This post is also available on the Solid Edge Developer Blog.