Can nanoCAD replace western CAD solutions? Let's look for an answer ...
When introducing our CAD platform, we often find that few in our country can adequately evaluate the functionality of such a complex and multifaceted tool as CAD, fully compare competing solutions and make an unbiased assessment. Most often, such work is entrusted to the local CAD-guru - a specialist “fan” who may (and most likely will) be biased, because He likes the solution he is currently using. As a result, we get a list of “tasty” but underutilized functions that “you should do otherwise no implementation!”, And the topic of import substitution smoothly fades. In response, we thought about a tool that would allow an independent assessment, implemented it and are now ready to share it with you.
IntroductionThe idea of the tool is to put together a list of functions that an average CAD user uses every day - i.e. we select a group of users, enable command line logging on their computer, collect them in a specific folder on the organization’s network, and then analyze them. The scheme itself is very convenient:
- everything is fully automated: you only need to enable logging;
- everything is completely confidential: only information about called commands is included in the logs, and not about the project itself;
- collecting statistics does not interfere with the daily work of the user: writing to the log is a rather inconspicuous operation.
Most importantly, this collection of statistics allows you to conduct the most complete analysis: you can collect logs at least for a whole year, and the program will neatly collect team calls in one folder. You can also analyze by breaking users into groups - just specify different folders for collecting statistics. And the logs will then show which platform commands were used, whether any applications or additional developments were used, what level of use of the platform and applications (frequency of command calls) - i.e. unbiased pure statistics and no subjectivity.
The question arises: “how to include such a magazine?”. Everything is simple here: at the command line, enter the command “Parameters” (or “OPTIONS” for the English version). Next, go to the tab "Open \ Save" (or "Open and save"). And we cock the option “Keep a log file” (or “Maintain a log file” - see Fig. 1). As a result of this command, information from the command line (command log) will be saved in the system folder specified by the LOGFILEPATH variable.
Fig. 1. By enabling the option "Log file" you can accumulate statistics about the commands used in the CAD solution in the folder that is set by the LOGFILEPATH variable.
In principle, all this is configured through three more system variables: LOGFILEMODE (enable / disable logging mode), LOGFILEPATH (path to the logging folder) and LOGFILENAME (path to the current command log). You do not have such commands and variables? Most likely you are using CAD, which does not allow you to keep a log of called commands, and you will not have import substitution, but the transition from competing solutions - this is a slightly different story ...
UPG: Often, system administrators ask how to configure these variables through domain policies (so as not to go to each workplace and not to configure the collection of logs through the user interface). We answer - through the registry. In particular, the variables are located in the section HKCU \ Software \ Autodesk \ AutoCAD \ <version> \ ACAD-1001: 419 \ Profiles \ << Profile without name >> \ (or the profile that the user uses):
- Enable logging: a LogFileOpen variable of type REG_DWORD from the General subfolder should have a value of "0x00000001" (that is, logging). If there is no variable, then it must be created.
- Log file saving path: a LogFilePath variable of type REG_EXPEND_SZ from the Editor Configuration subfolder must have a string value for the path. For example, "D: \ temp \ log"
So, we turned on the logging log, collected the logs in a folder - what's next?
Data preprocessingThe resulting files are a pile of files, inside which the used commands are hidden (Fig. 2).
Fig. 2. A typical folder with command logs - a separate log for each file.
If you look inside, we will see everything that was written in CAD on the command line: command calls (what interests us), system messages, user responses, variable values, error messages, warnings, etc. All this now needs to be processed and a list of commands to be called up with information on how often it was called. To do this, we wrote a simple utility in AutoIt , which is launched onto the log files in the specified folder, sequentially processes them, and forms an array of commands with the calculation of the frequency of their call (Fig. 3).
Fig. 3. The utility StatCAD, which allows you to process command logs and create a list of used commands.
Working with the StatCAD utility is very simple: just specify the folder with the logs, click on the “Analysis” button, wait for the work to finish, and by clicking on the “Show Statistics” button, get the list in a separate window. From this window, you can copy data to Excel or a text format - as you prefer. What's next? And then the creative work begins.
Processing received statisticsFirst, we must select CAD-platform commands in the list found, i.e. it is necessary to have a list of regular CAD platform teams with which we are comparing. We have now accumulated about 2400 commands, system variables and abbreviations aliases (both in Russian and in English), with which we compare - a simple intersection of tables in Access allows you to get similar and different commands in one click. The most difficult thing is with different commands - they have to be analyzed manually, separating syntax errors from application commands, commands written by users, etc. Often the result is surprising (see Figure 4). - Statistics may show that the share of the platform significantly higher than the proportion of applications:
Fig. 4. A preliminary list of commands may contain both application calls and syntax errors.
Secondly, we can compare the list of recognized CAD platform commands with the list of implemented nanoCAD Plus platform commands - this is also the intersection of two tables in Access. As a result, we get a list of commands implemented in a one-to-one mode (complete coincidence).
Analysis resultsAnd finally, the list of remaining teams is divided into three parts:
- The implemented functionality , i.e. commands that do not pass through the nanoCAD Plus command line, but are nevertheless implemented through the program interface and the user will not notice their absence in practice. For example, the “PDFATTACH” command (insert PDF substrates) is not currently registered in the nanoCAD command list, however, it is accessible from the Insert \ Substrates ... menu.
- Alternative functionality , i.e. teams that, by virtue of the design features, differ from similar teams of other CAD systems, but allow the user to solve tasks in a similar or even higher performance. For example, working with tables in the environment of nanoCAD Plus 7.0 is sharpened by Russian design standards plus data collection operations from the current DWG drawing - a rather unique function that combines several tools into one.
- Not implemented functionality , i.e. teams that currently do not work in nanoCAD Plus 7.0 and, alas, there is no alternative to replace them. Some of these functions are under development (for example, Binder, Tool palettes), some require analysis and additional approval for implementation, and some are clearly optional for implementation (for example, “calling 360 website”).
The third part from the point of view of analysis is the most difficult - you need to analyze each team, clarify what it does, whether there is an alternative in the nanoCAD Plus platform (or maybe already implemented), and if the team is missing, then evaluate: how much the missing function is necessary in the organization’s work . This is a manual analytical work, but as a result you will be awarded an excellent speaking chart (Fig. 5):
Fig. 5. A diagram that clearly compares the list of nanoCAD Plus commands with the list of commands of the western CAD platform used by one of the Customers.
But this is not all - remember that we not only formed a list of called commands, but also collected statistics on the frequency of their call? And the truth is, one thing is the answer to the question “is the team implemented or not?” and completely different - "is the called command used?". And here you can also get talking results (see Fig. 6) - the share of functionality not implemented in nanoCAD can drop to 1-3%! This means that in the vast majority of cases, users will not notice the difference between nanoCAD and Western solutions in functional terms:
Fig. 6. And if you compare the teams on the frequency of the call, the picture will be even more convincing.
Instead of a conclusionI admit, when I first got such results, I myself was shocked. It turns out that at the moment, the nanoCAD platform can quite freely replace popular Western solutions in functional terms: in 97-99% of cases, users will receive an alternative tool for work. To date, I have carried out a similar analysis in five organizations: the ratio of teams is about the same and I stop wondering.
However, I think the results of the analysis can be very different from one organization to another. That is why I want to share all the materials with you - try to conduct an analysis at your enterprise and let's answer the question “is it possible to import substitution for nanoCAD Plus?”. What I have:
- StatCAD 3.01 utility that processes log files and collects statistics on the commands of your CAD platform. I share with you both the executable module (x32 and x64) and the AutoIt script (source code).
- An Excel table with a list of currently known commands , system variables and abbreviations of both the nanoCAD platform and one of the well-known western CAD platforms. In addition, the table contains a list of found different teams with analysis on the topic of which group of teams it belongs to (alternative, implemented, not implemented).
- An example of a folder with log files where you can run the utility StatCAD 3.01. It’s better, of course, to put your log files collected here.
- An Excel and Access document analyzing tables - just put the results of the StatCAD 3.01 utility into the CLIENT_CMD.xlsx file and in Access open the tables 02ACAD_CROSS, 02ACAD_NOTFOUND, 03ACAD-NCAD_CROSS, 04ACAD-NCAD_NOCROSS - I think that the names of the tables speak for themselves.
If you are unable to analyze the collected statistics on your own, then I will be happy to receive your log files. Or Excel spreadsheets with a list of the commands you use (filled with CLIENT_CMD.xlsx from the attached archives). In this case, I can carry out the analysis myself and use the results for the development of the nanoCAD platform. Believe me, this will be very useful information for us - based on these data, we develop the product further, and you get a convenient tool.
DisclaimerThis analysis demonstrates the fundamental possibility or impossibility of replacing one CAD solution with another, but does not guarantee the result. Any implementation other than the technical aspect described in the article is associated with a number of other technical, organizational, psychological and other points. That is why we recommend the work on import substitution to be carried out together with authorized dealers of Nanosoft CJSC .
UPD: At the request of the PM - I reported the x32 version to the archive with the utility ...