OpenDCL 4.1 Released

OpenDCL 4.1 adds support for the AutoCAD 2008 64-bit platform, includes many improvements in the OpenDCL Studio editor, and has a completely rewritten grid control. Next on the agenda is adding support for localization so that local language translations can be easily created.

November 21, 2007 · 1 min · Owen Wengerd

The War On Security

Security and encryption legend Bruce Schneier posted this essay: The War on the Unexpected I think we should all be reminded that representative governments are always at risk of death by democracy: suicide under the watchful eyes of a body politic beholden only to the next election.

November 1, 2007 · 1 min · Owen Wengerd

AutoCAD 2008 Slow Startup Fix

[Update: See Disable AutoCAD InfoCenter] I’ve noticed more frequent posts in the Autodesk discussion groups about slow startup problems since AutoCAD 2008 was released, and I have the same problem on my development system. Part of the problem is .NET loading, due to the new .NET gadgets like the dashboard palette. Another long running startup hassle is the communication center (WSCommCntr1.exe if you check running processes in task manager) that Autodesk products use to call home. ...

September 6, 2007 · 2 min · Owen Wengerd

OpenDCL 4.0 Debuts

OpenDCL 4.0 has finally been released. If you’re not familiar with OpenDCL, check it out at www.opendcl.com, or on SourceForge at sourceforge.net/projects/opendcl. OpenDCL, based on the original commercial ObjectDCL software by Chad Wanless, is a modern replacement for the old DCL dialog control language in AutoCAD. The current OpenDCL Runtime supports AutoCAD 2002 through 2008 (except AutoCAD 2008 x64). It is designed to give AutoCAD end users and AutoLISP application developers a simple yet powerful way to design and use rich user interfaces in their applications. The goal for version 4.0 was to get it stable and fix all the bugs, with minimal new feature development. OpenDCL 4.1 will add support for AutoCAD 2008 x64. After that we will start working on localized language versions, and adding new features. OpenDCL is licensed under the GNU General Public License (GNU GPL) open source license, completely free to use, and source code is available on SourceForge.

August 1, 2007 · 1 min · Owen Wengerd

What time is it?

AutoCAD 2004 introduced the ability to digitally sign drawing files when they are saved, but very few people use this feature. Even fewer use the time stamp feature that goes along with it. Time stamping a digital signature is important when it’s not only important to know who signed it, but also when they signed it. For time stamping to be reliable and trustworthy, you need an independent (and trustworthy) third party to provide the time stamp, along with a verifiable receipt so that anyone can verify the authenticity of a claimed time stamp in the event of a future dispute. Since the inception of the digital signature feature, AutoCAD has included three default time servers for this purpose. Unfortunately, none of the three are accessible any more. If you need to digitally sign drawing files with a time stamp, you’ll have to modify this list of time servers. The list of time servers is maintained in a file named timesrvr.txt in the AutoCAD installation folder. You can edit the file with notepad, and the format is obvious and straightforward when you view the file. If you just want to play around with time stamps, try adding the following to the end of the file (you do not need to restart AutoCAD to see the new servers): NIST A [Maryland] (time-a.nist.gov) NIST B [Maryland] (time-b.nist.gov) As of this writing, both of these NIST servers are available and working, but you get what you pay for. For officially incorporating time stamped digital signatures into your workflow, I recommend subscribing to a commercial time service with guaranteed uptime and a web based time stamp verification console. I can’t recommend one, because I have never used a commercial time service myself, but a good place to start is the list of public time servers maintained by NTP.org at http://support.ntp.org/bin/view/Servers/.

June 21, 2007 · 2 min · Owen Wengerd

Visual Studio Build Configuration Tip

I’ve received several emails recently from users of my VC Build Hook utility that mention switching the ‘UseVC7Paths’ setting on and off depending on the build configuration they are working on. If you are doing this, you need to change your project structure! ...

June 15, 2007 · 2 min · Owen Wengerd

DWFx: The Emperor's New Clothes?

I pointed out in a previous post that while the press release headlines pronounced that Vista will support DWF natively, the fine print says otherwise. What Vista does support natively is Microsoft’s new XPS (http://www.microsoft.com/whdc/xps/downloads.mspx) (XML Paper Specification) format. Autodesk has since clarified that they are working on a new DWF format called DWFx that is, essentially, a DWF in XPS format. A quick test verified my suspicions that XPS files produced by the Microsoft XPS Document Writer (http://www.microsoft.com/whdc/xps/viewxps.mspx) are much larger than comparable DWF files. The jury is still out on DWFx file sizes, but a recent post on Scott Sheppard’s blog (http://dwf.blogs.com:80/beyond_the_paper/2007/02/autocad_2008_dw.html) has buried within it a telling comparison point between DWF and DWFx. The chart uses a neat gambit by comparing both DWF and DWFx file sizes to the completely different DWG format, but the math cognoscenti among you will notice that “typically 1/20 the size of the DWG” for DWF and “typically 1/10 the size of the DWG” for DWFx translates into “DWFx files are twice as large as DWF”. There is no information on file generation times, another metric worth monitoring. Autodesk has been pretty generous lately, first giving away Design Review, now perhaps gearing up for an exclusive two-for-the-price-of-one deal on DWFx. I haven’t heard too many customers requesting larger file sizes, though.

March 1, 2007 · 2 min · Owen Wengerd

Introducing OpenDCL for AutoCAD

AutoLISP programmers may remember a product named ObjectDCL, by 3rd Day Software. ObjectDCL was released as open source in the summer of 2006 by developer Chad Wanless due to his inability to continue supporting the software because of “health reasons”. At the time, many users of ObjectDCL hoped that someone would update the code to work in AutoCAD 2007. Programmer David Robison did some work to get AutoCAD 2007 supported, but the project has been languishing, almost to the point of extinction. After being asked by several ObjectDCL users whether I could help, I decided a few weeks ago to contribute to the community by getting the original C++ code updated to support AutoCAD 2007. As I am wont to do, I’ve ended up re-architecting much of the code in the process. The results of my work are available now at the new OpenDCL project on SourceForge. The new 4.0 release is still in the alpha testing phase. If you program in AutoLISP and want to create rich user interfaces for your applications, check it out!

January 31, 2007 · 1 min · Owen Wengerd

I'll take web sites for $200, Alex: Part IV

(continued from Part III) Creating custom modules for DotNetNuke is an esoteric process that I don't recommend unless you're prepared to invest quite a bit of time and effort. I slogged through the process because I'm too stubborn to quit, but it's hardly worth the investment in time for a one-off custom module. I don't expect many of my readers to try it anyway, so I won't bother describing the technical aspects in any detail. ...

January 17, 2007 · 2 min · Owen Wengerd

I'll take web sites for $200, Alex: Part III

(continued from Part II) DotNetNuke (aka DNN) is not simple to set up. It needs at least the free SQL Server Express Edition (http://www.microsoft.com/sql/editions/express/default.mspx) on the host system (full SQL Server requires some changes to the default configuration) and either IIS or another ASP .NET 2.0 compatible web server to run on. If you have Visual Studio 2005 fully installed, you have all you need to run DNN. ...

January 12, 2007 · 4 min · Owen Wengerd

My ManuSoft manifest manifesto

With the advent of Visual Studio 2005 and automatically generated manifest files, the topic of when and how to use manifest files comes up occasionally. Since a default ObjectARX wizard generated project in Visual Studio 2005 generates an embedded manifest by default, most people don’t even think about it. Of course that was the whole idea – the manifest would ensure that the correct dependent DLLs get loaded, and voila, no need to think about it. One of my programming axioms applies in this case: TANSTAAFL. The problem is that ObjectARX applications are not in charge. AutoCAD is in charge, and it will decide which VC runtime and MFC runtime DLLs to load. If your ObjectARX application loads a different VC or MFC runtime than the ones AutoCAD is using, you’ll encounter big problems. I’ve always advised disabling the manifest completely (see my ObjectARX Tips page) to avoid such a possibility. Unfortunately, there’s a catch. The problem is that linking to the ATL80.DLL file isn’t possible by just disabling the manifest and doing nothing more. ATL is now a side-by-side (SxS) assembly, and it no longer lives on the Windows support path, so a standard un-manifested DLL won’t be able to find it. The preferred solution is to link statically to ATL (see Configuration -> General -> ‘Use of ATL’ in VS 2005 project properties) and avoid the problem altogether. If you only have one module that uses ATL, this is always the best solution. The less desirable solution is to add a manually-created manifest that specifies the desired ATL SxS assembly, but ignores the VC and MFC runtime DLLs. You’ll still need to decide whether to make ATL shared or private, and in either case you must distribute ATL with your application to ensure that it is available when your application is deployed. You can cheat, and let VS generate your manifest file (instruct it to not embed the file), then just edit the resulting .manifest file to remove references to the VC and MFC assemblies. For example, here’s one that I generated (you’ll need to generate your own to ensure that the manifest matches the version you are redistributing): <?xml version=“1.0” encoding=“UTF-8” standalone=“yes”?> <assembly xmlns=“urn:schemas-microsoft-com:asm.v1” manifestversion=“1.0”> <dependency> <dependentassembly> <assemblyidentity type=“win32” name=“Microsoft.VC80.ATL” version=“8.0.50727.762” processorarchitecture=“x86” publickeytoken=“1fc8b3b9a1e18e3b”> </assemblyidentity> </dependentassembly> </dependency> </assembly> In my work, I’ve had very little need for manifests. The VC optimizer is able to strip the unused portions of statically linked ATL out of your code, leaving a much smaller footprint than the entire assembly would require. This eliminates the need to redistribute ATL with your application, thus reducing the overall potential for deployment issues. Nevertheless, there are exceptions to every rule, and your mileage may vary.

January 11, 2007 · 3 min · Owen Wengerd

I'll take web sites for $200, Alex: Part II

(continued from Part I) The kind of web site I wanted to create is usually built on top of a Content Management System (CMS) that becomes the administrative user interface as well as the framework for web pages that get served to web site visitors. The first thing I learned is that there are thousands of CMS products floating about the internet, from simple “guest book” type scripts to full blown corporate extranet management systems designed for use by tens of thousands of employees and customers. I’ve also been looking for an excuse to learn ASP.NET, so I decided to narrow my search to CMS software that was based on ASP.NET. Finally, the software had to be free or very inexpensive. ...

January 11, 2007 · 3 min · Owen Wengerd