Although my blog has become relatively stagnant, the rest of my life has been changing — and there are even bigger changes ahead.

My children have been growing into adulthood one by one, and my parenting time has been shrinking as a result. To take up the slack, I bought a bike a few years ago and started riding it on the many local bike trails. Initially cycling was a way to get healthy and enjoy the outdoors, but it has turned into much more. Riding a bike is great exercise, but it’s also a fantastic social activity when you do it with friends, and I have made many new friends in the very large and growing cycling community here in Ohio.

The last few years I’ve also been racing my bike competitively in the many amateur bicycle races held during the spring and summer. I never played organized sports as a kid, so this has given me an avenue to explore an unfamiliar side of myself.

While cycling has changed my life in many ways, even bigger personal changes are on the horizon. I’ve been divorced (or as I often say, “married to my bike”) for many years, but even that will be changing later this year — unless she changes her mind before we seal the deal.

In addition to the many personal changes, I’m also making some professional changes. I’ve accepted a contract offer to join the software development team of Belgium based Bricsys, maker of BricsCAD. I will continue my philanthropic work, including work on the OpenDCL project and my participation in online ObjectARX, AutoLISP, and C++ programming forums. I will continue maintaining and supporting ManuSoft software products. I will even continue blogging here and writing for upFront.eZine, but maybe my focus will shift a bit.

I’m looking forward to all these new challenges, and excited to see where this new road leads. Thank you for travelling with me!

Belgium Bound

Bricsys asked me to give a short presentation about OpenDCL to developers at their Bricsys 2010 Conference in Bruges next week. I’m looking forward to meet keynote speaker Deelip Menezes and other familiar names in the CAD community, and of course planning to learn more about the ever evolving Bricscad platform.

[Full Disclosure: Bricsys is paying for all my travel and conference expenses.]

OpenDCL Quick Intro

If you’re an AutoLISP programmer, you’ve probably heard about OpenDCL. Maybe you’ve even checked it out, but it looked complicated and you weren’t sure whether it was worth the trouble to learn how to use it. Either way, do yourself a favor and spend 10 minutes to go through the following 10-step quick introduction to OpenDCL.

  1. Download and install OpenDCL Studio. Select the latest version in your desired language (ENU in the filename means US English). The download is an .msi file that can be cleanly uninstalled afterward.
  2. Start AutoCAD (2004 or later). Use the APPLOAD command to load _MasterDemo.lsp from the OpenDCL Studio samples folder (it will be located in a language subfolder of the main OpenDCL Studio folder). When you close the APPLOAD dialog, the OpenDCL ‘MasterDemo’ dockable form will appear.
  3. Click on the [ListView] button to run the ListView sample. The ListView sample is very simple and will demonstrate some basic principles of OpenDCL. Leave it running as you proceed through the following steps.
  4. Locate and open ListView.lsp in the OpenDCL Studio samples folder. ListView.lsp contains all the code for the ListView sample. Look for the c:ListViewDlg_Close_Clicked function defined near the end of that file. That function is called an “event handler”, and it is the lisp function that is executed when the [Close] button is pressed. The event handler for the [Close] button simply closes the dialog. The c:ListViewDlg_OnInitialize event handler function initializes the controls on the dialog before it is displayed.
  5. Locate and open ListView.odcl in the OpenDCL Studio samples folder. Files with an .odcl extension can be opened and edited in OpenDCL Studio. OpenDCL Studio is used to design the user interface elements in an OpenDCL project. In the project tree pane, open the ‘Modal Forms’ folder, then double click on ListViewDlg. The ListView form will be displayed in design mode.
  6. Click on the [Close] button on the ListView form. In the font toolbar at the top of the editor, press the [B] button to make the font bold. Notice that the button’s caption becomes bold. In the ‘Properties’ pane, double click on the ‘Height’ property value and change it to 20. Press [Enter] to apply the new value. Use your mouse to drag the bottom of the button in design view to resize it dynamically.
  7. Leaving OpenDCL Studio open, switch back to AutoCAD. Resize the ListView dialog, and notice how the controls it contains are also resized. Now switch back to OpenDCL Studio, make sure the [Close] button is selected, then click in the right column of the ‘(Wizard)’ property in the Properties pane (or right click on the button control and select ‘Properties’ in the control’s context menu). In the Control Properties Wizard, the Geometry tab shows that the button’s “Left Side Alignment” has been set to “Offset From Center of Dialog” and it’s “Top Side Alignment” has been set to “Offset From Bottom Edge”. Once these properties are set, no additional code is needed for the control to react correctly when the dialog is resized.
  8. Exit AutoCAD, then restart. Enter the OPENDCL command. This command demand-loads the OpenDCL Runtime using AutoCAD demand loading mechanism. The OpenDCL Runtime must be loaded before the OpenDCL functions will work. The OpenDCL Studio installation includes OpenDCL Runtime, so it already exists on your computer.
  9. If you are developing an application for use by others, you’ll need to download and distribute the OpenDCL Runtime along with your application. This is best done by incorporating the OpenDCL Runtime merge module for your language directly into your own application’s installation script. Alternatively, you can distribute the standalone OpenDCL Runtime .msi file for your language, or publish the URL where end users can download the latest version.
  10. Switch back to OpenDCL Studio and double click on the [Close] button control. Intelligent help displays all the properties, methods, and events of the selected control, including their AutoLISP syntax. Click on a property, method, or event in the left pane to see detailed information for it.

Once you complete these ten steps, you are only a few minutes away from creating a fully functional OpenDCL application. Give it a try!