Products & Services You
Need to Know About.
Only on CADdigest.com.
Find Out More!
By William Forty, December 2, 2013
ZWSOFT positions its ZWCAD+ software as a strong alternative to AutoCAD, and so in this review I will look at how compatible it is with DWG and DWF files. I'll also review their cloud offering and their .Net API.
When talking about file format compatibility, it is important to understand exactly what ZWCAD+ is trying being compatible with. With the origins of DWG and DWF file formats firmly rooted by Autodesk in AutoCAD, I will use AutoCAD as the benchmark.
The first thing I did was to check that DWG files opened in ZWCAD+ contained the same list of basic entities that are created by AutoCAD. From my experience as a software developer, I know that reading data from a format such as DWG can be fraught with obstacles. The software needs to be written in such a way that it can cope with - and understand - all the possible ways in which a valid DWG file can be structured. If parts of the file are structured in a way that the receiving software does not understand, then entities might be omitted, drawn incorrectly, or converted to generic types.
For this first test, I opened several drawings, and then simply counted the entity types that they contained. My four test drawings each contain various entity types. Below, the table shows the results: entity types and the count of each (Table 1).
Table 1: Results of counting entities in test drawings
ZWCAD+ matched AutoCAD exactly, which was a good start. While this test is very basic, it indirectly tests quite a wide range of features, and so is a good way to establish compatibility of the fundamentals in one simple process.
Another way to see if ZWCAD+ is doing things differently with files from AutoCAD is to compare file sizes. The table below shows sizes of the same four files when saved by AutoCAD vs being saved by ZWCAD+ (Table 2).
Table 2: DWG File Sizes
|AutoCAD (KB)||ZWCAD (KB)|
ZWCAD+ tends to make larger files than AutoCAD, but it is a close match. It's reasonable to have some degree of variance, because data can be saved in different ways. As the numbers are well within what I'd call acceptable, I infer that ZWCAD+ is saving the data in a way very similar to that of AutoCAD.
DWF files are a compressed drawing file with some data stripped out. They are meant to be shown in Web pages or shared with clients. By reducing the size, DWF files don't take as long to load in Web pages. Stripping out some drawing data and also safeguard intellectual property.
It is not possible to compare entities (due to the stripping process), but I decided I could at least compare DWF sizes of files exported using the same DWF plot configuration in AutoCAD and ZWCAD+. Here is the comparison for the pairs of files I created (Table 3):
Table 3: Comparing file sizes of exported DWF files
|AutoCAD (KB)||ZWCAD (KB)|
I found it interesting that ZWCAD+ produced files that in some cases were smaller than AutoCAD's, and in some cases much larger. This is not a compatibility issue, but it is something to bear in mind should small file size be important.
The real test would be visually inspecting both sets of files in Autodesk's Design Review software. (I needed to use Design Review, because AutoCAD does not read DWF files, except as an attachment through the MarkUp command.)
Visual inspection of the two DWF versions showed that ZWCAD+ imitates the AutoCAD's DWF format to an impressive degree. For instance, line weights and line types are spot on; hatching is the same; and ZWCAD+'s annotation and dimensioning is indistinguishable from a DWF exported by AutoCAD.
I could not tell the two DWF files apart visually, except for a slight difference in the margin size (see figures 1a and 1b).
|Figure 1a: DWF file generated by ZWCAD|
|Figure 1b: DWF file generated by AutoCAD|
With the DWG and DWF testing accomplished, I turned to looking at the cloud offering from ZWSOFT. Whereas Autodesk has "360" for its cloud services, ZWSOFT has "Syble."
Syble is integrated into ZWCAD+ 2014, running in the background as it synchronizes drawings between the local desktop, online, and on portable devices running ZWCAD Touch, the company's viewing and markup app for iPads.
Initially I thought optimistically I could just switch to the ribbon's Online tab, and then click Save to Cloud. Of course, some configuration was required; I was, in fact, presented with a message stating that ZWCAD+ Syble was not enabled. Helpfully though, right under the cursor was an Open and Configure button. I tried clicking it, and so was taken to the Online tab of the Options dialog box.
Right at the top was the checkbox I was looking for: Enable Cloud Storage. I checked it but then needed to fill in options for setting up a cloud storage provider. (ZWSOFT itself does not provide the cloud service.)
I have a Dropbox account, so I selected it and then clicked the Authorize button. The Dropbox Web site popped up in my browser. By entering my username and password, I authorized ZWCAD to access my account. Thus, the configuration process was very simple.
Once I configured things, working with the cloud was easy. Now back on the Online tab, I simply clicked Save to Cloud, which presented the Save As dialog that we normally get when saving drawings. Automatically selected was a local folder named "ZWCAD+ Syble." When I clicked Save, there was a brief pause just as if it was saving the file, and then the dialog box just closed; there was nothing indicating it had uploaded the file to the cloud service. The process was so transparent that I felt I needed to check by logging into my Dropbox account. Sure enough, there was the new folder created for my ZWCAD+ files. I verified the file was saved.
I can see this feature being effective as a backup solution and an excellent way to share up-to-date versions of the drawings with others.
ZWSOFT added an API so that third-party developers can write add-on programs for ZWCAD+ using Microsoft's .NET interface. This being one of my specialty subjects, I looked forward to this part of this review.
There are two aspects to testing a .NET API. One is to see how well .NET programs written for AutoCAD work in ZWCAD (this is called "porting" the software), which I did here. The other is to write a new program for ZWCAD, which I didn't do.
To test how well ZWCAD works with add-on programs written for AutoCAD, I thought I would go all-out by porting one of my most popular developments, a survey-fixing utility available from http://howtoautocad.com/autocad-civil-3d-survey-fix-tool/. The purpose of this tool is to convert 2D survey drawings to 3D survey drawings.
When I thought about the process of porting one of my AutoCAD .NET projects, I figured originally it would involve rewriting code using the "type" libraries of the ZWCAD+ application, and I supposed it would probably involve modifying properties and methods here and there to suit what was required by ZWCAD+. Not so.
I had been given a helpful document that set out how to migrate .NET projects from AutoCAD to ZWCAD+. It claimed that the process was simple.
For the first step, I had to set the .NET build version to 4.0, and then replace any references to AcMgd.dll and AcDbMgd.dll with the ZWCAD+ equivalent. This for me is easy to do. Next step was to update namespaces. I had written my survey utility in VB.NET (Visual Basic), and so the code required the following changes to Imports statements at the top of the application (see Table 4).
Table 4: Namespace changes needing for porting
Throughout the project, there were a few other instances that required tweaking, but again it involved only modifying namespaces, as shown above. Apart from the minor changes, amazingly enough nothing else was required: all properties and methods that I used in the original AutoCAD API had a valid corresponding entry for ZWCAD+.
The IDE (integrated development environment) highlighted no errors. Building the project also yielded no errors. No way could it be this simple! But it was.
In ZWCAD+, I entered the NetLoad command and then selected the project. It actually worked first time. Entering the SURVEYFIX command (which is how my program is executed) worked the first time. The whole conversion process worked, and my software runs in ZWCAD+ exactly as I expected.
I cannot overstate how impressed I am with the ZWCAD+ API. It accurately mimics the AutoCAD API, allowing developers such as myself to reuse existing code without changing anything except for project references. Converting my project took roughly five minutes.
The other advantage is that programmers who learned to develop for AutoCAD have no need to re-learn an API for ZWCAD+, because ZWCAD+ has imitated AutoCAD so well. If you have developed for AutoCAD then you have also developed for ZWCAD+; plus ZWCAD+ developers can take advantage of the wealth of information already out there for developing .NET applications for AutoCAD.
Although I am a huge fan of AutoCAD, I am intrigued by alternatives that essentially do the same thing. Even so, I had never seriously considered porting my application to an alternative. But with the quality I found in ZWCAD+ and its incredibly (and accurate) likeness to AutoCAD, I will certainly be considering ZWCAD+ when I want to upgrade next - both for its compatibility and its development API.
|William Forty has 10 years experience working in both the mechanical and civil engineering industry, primarily using AutoCAD and Civil 3D. He has a keen interest in software development. More...|