while not keypressed (Posts about cad)https://www.keypressure.com/blog/tags/cad.atom2022-11-06T22:59:43ZRoman YepishevNikolaA Sudden BeckerCAD Review Part 2https://www.keypressure.com/blog/a-sudden-beckercad-review-part-2/2022-01-03T20:17:20Z2022-01-03T20:17:20ZRoman Yepishev<div><figure>
<img alt="/galleries/beckercad/about.png" src="https://www.keypressure.com/galleries/beckercad/about.png">
<figcaption>
<p>About BeckerCAD</p>
</figcaption>
</figure>
<p>A month after I started playing with BeckerCAD, I think I understand why it was released and why one may be interested in using this tool instead of, say,
IntelliCAD-based solutions, ViaCAD, or CorelCAD.</p>
<p>My take on this piece of software is mixed. On one hand, it is clearly aiding you with design on a computer with support for DWG drawing and ACIS SAT solids.
On the other hand, they packed this powerful functionality into an application using outdated design and deployment practices, a proprietary file format,
and documentation that works against you.</p>
<p>TL;DR: I think this application is okay for basic sketches and some modeling of small 3-D printable things. Building anything other than these will be a
painful experience. If you are wondering if you should buy it, I would heavily lean "no".</p>
<p><a href="https://www.keypressure.com/blog/a-sudden-beckercad-review-part-2/">Read more…</a> (23 min remaining to read)</p></div><figure>
<img alt="/galleries/beckercad/about.png" src="https://www.keypressure.com/galleries/beckercad/about.png">
<figcaption>
<p>About BeckerCAD</p>
</figcaption>
</figure>
<p>A month after I started playing with BeckerCAD, I think I understand why it was released and why one may be interested in using this tool instead of, say,
IntelliCAD-based solutions, ViaCAD, or CorelCAD.</p>
<p>My take on this piece of software is mixed. On one hand, it is clearly aiding you with design on a computer with support for DWG drawing and ACIS SAT solids.
On the other hand, they packed this powerful functionality into an application using outdated design and deployment practices, a proprietary file format,
and documentation that works against you.</p>
<p>TL;DR: I think this application is okay for basic sketches and some modeling of small 3-D printable things. Building anything other than these will be a
painful experience. If you are wondering if you should buy it, I would heavily lean "no".</p>
<!-- TEASER_END -->
<p>Before jumping into unpacking that, let's explore the origins of this software package.</p>
<figure>
<img alt="/galleries/beckercad/caddy_translation.png" src="https://www.keypressure.com/galleries/beckercad/caddy_translation.png">
<figcaption>
<p>CADdy++ English version showing German labels</p>
</figcaption>
</figure>
<p>I have confirmed that BeckerCAD 3D 12 Pro is a rebranded DataSolid CADdy++ Basic 2019. Telltale signs of that were a prominent CADdy++
label in the title bar of the main window, a DataSolid logo at the bottom of the window and a reference on the splash screen.
I've also installed the CADdy++ Basic 2021 and the only difference I found was the product names and minor menu updates. Unfortunately,
3 years later, CADdy++ still has incomplete English translation of their UI and documentation, is not HiDPI-aware, and changes various
files within its installation directory, which I've complained about already.</p>
<p>I kept wondering why somebody would use CADdy++, given there are so many better alternatives with a larger feature set. And the answer
is that hobbyists are not really a market for CADdy++, and companies which have for some reason selected CADdy++ are in some sort of
vendor lock-in and likely use economy/professional editions of the software.</p>
<p>The CADdy++ lineup is as follows (see DataSolid Price list - <a class="reference external" href="https://english.datasolid.com/images/stories/DataSolid/CAD/PDF/E-PlMA.pdf">https://english.datasolid.com/images/stories/DataSolid/CAD/PDF/E-PlMA.pdf</a>)</p>
<ul class="simple">
<li><p>CADdy++ Mechanical Design Professional, €5,990 (~$6800 at the time of writing)</p>
<ul>
<li><p>Supports 2D and 3D parametric modeling, and everything in the Economy version.</p></li>
</ul>
</li>
<li><p>CADdy++ Economy, €3,190 (~$3700)</p>
<ul>
<li><p>Supports 2D parametric modeling, ODMA interface, defining 3D models using outlines.</p></li>
</ul>
</li>
<li><p>CADdy++ Basic, €790 (~$900)</p>
<ul>
<li><p>2D drawing, basic 3D modeling.</p></li>
</ul>
</li>
</ul>
<p>Then we have Becker CAD editions (prices from Markt+Technik Verlag website):</p>
<ul class="simple">
<li><p>BeckerCAD 3D Pro, €124.99 (~$142)</p>
<ul>
<li><p>Same features as CADdy++ Basic.</p></li>
</ul>
</li>
<li><p>BeckerCAD 3D €79.99 (~$90)</p>
<ul>
<li><p>Stripped-down 3D operations.</p></li>
</ul>
</li>
<li><p>BeckerCAD 2D €39.99 (~$45.49)</p>
<ul>
<li><p>Only 2D operations.</p></li>
</ul>
</li>
</ul>
<figure>
<img alt="/galleries/beckercad/mut_store.png" src="https://www.keypressure.com/galleries/beckercad/mut_store.png">
<figcaption>
<p><a class="reference external" href="https://www.mut.de/">Markt und Technik Verlag</a> store listing</p>
</figcaption>
</figure>
<p>Now, if you are a company and in need of a CAD, and you went with DataSolid, you'll likely will go to CADdy++ Mechanical Design
Professional/Economy and add a bunch of extra modules (such as sheet metal bending or STEP import/export) to support your design
and manufacturing processes. You are unlikely to migrate to another solution since the file format used for the drawings and 3D
models is proprietary, and, while you can export 2D DWG/DXF and 3D ASIC solid data, the hassle related to migrating somewhere else
may not be worth it.</p>
<p>However, if you are an individual, you will not likely want to spend ~$900 for the basic version.</p>
<p>I know nothing anything about the agreements between MuT and DataSolid, but I suspect MuT wanted a general-purpose CAD
in their portfolio, and they went with a rebranded and discounted CADdy++ basic.</p>
<p>BeckerCAD is marketed as being "fully compatible with AutoCAD", which may lure in somebody who expects AutoCAD for $150,
and ends up confused. The lack of tutorials and accessible information, and with English version, poor translation quality make
the learning curve even steeper.</p>
<section id="the-good">
<h2>The Good</h2>
<p>A thing that makes CADdy++ stand out is it does not try to copy AutoCAD.</p>
<p>It has a standalone 2D drawing mode which allows focusing on refining the 2D drawings in a familiar paper space with predictable
dimension scaling. I know this is a lousy argument, but dedicated 2D and 3D spaces make more sense to me.</p>
<p>They do not clutter the interface with all the operations you can do. This is both good, since it does not present you with 3D
boolean operations while drawing a 2D rectangle, and bad, leading one to believe something is not supported because it is not
prominently displayed in the ribbon.</p>
<figure class="pull-left">
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/layers.png"><img alt="/galleries/beckercad/layers.thumbnail.png" src="https://www.keypressure.com/galleries/beckercad/layers.thumbnail.png"></a>
<figcaption>
<p>Model Explorer / Layer Explorer</p>
</figcaption>
</figure>
<p>I liked the default separation of drawing elements by layers. Even if your current layer is Geometry, adding a construction line
would send that line to another layer. Same with dimensions and other types which can be assigned through the Layer Explorer
tab in Model Explorer panel.</p>
<p>There is no separate command line and while there is a concept of commands (and nested commands too), you call them via a
button in the interface. However, you still need to enter parameters somehow, and here's where things start to go awkward.</p>
</section>
<section id="the-bad">
<h2>The Bad</h2>
<section id="this-status-window">
<h3>This "Status" Window</h3>
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/status.png"><img alt="/galleries/beckercad/status.thumbnail.png" class="pull-left" src="https://www.keypressure.com/galleries/beckercad/status.thumbnail.png"></a>
<p>Your operations are decoupled from the parameters, which are entered primarily through Status window (unless you are
grid-snapping all the time). The Status window does not work that well on a high-resolution monitor. The action that's
being taken is physically removed from the Status window where inputs and outputs are displayed. This has tripped me multiple
times, creating unexpected geometry because I did not notice that some value was incorrect.</p>
<p>My snap hotkeys ("e", "l", "s", etc.) constantly ended up in the fields of the Status window because I forgot to press the spacebar.</p>
<p>One can move the window closer to the center of the screen, but then it impedes all operations since the drawing window does not
receive cursor events when the pointer is passing above the Status window. Other CAD applications moved this functionality to a
docked bar or attach the input fields to the cursor location. You can dock the Status window as well, but its fields can only
stack vertically, and the window can't share the docked area, so docking wastes a lot of space.</p>
</section>
<section id="font-handling">
<h3>Font handling</h3>
<figure class="pull-left">
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/dimension_adsk_viewer.png"><img alt="/galleries/beckercad/dimension_adsk_viewer.thumbnail.png" src="https://www.keypressure.com/galleries/beckercad/dimension_adsk_viewer.thumbnail.png"></a>
<figcaption>
<p>Angled dimension text from BeckerCAD as displayed by <a class="reference external" href="https://viewer.autodesk.com/">Autodesk Viewer</a></p>
</figcaption>
</figure>
<p>Text handling is generally confusing, starting from the broken TrueType fonts in 3D view to arbitrary sizing of the glyphs
resulting in stretched appearance even in default title blocks (aka Standard Sheets). You just need to know your font's dimensions somehow.</p>
<p>Font families are not properly supported, so the application will happily select the Arial Narrow family if you choose "Arial".</p>
</section>
<section id="d-drawing-performance">
<h3>2D Drawing Performance</h3>
<p>You will notice flickering for all objects in 2D view immediately when you pan/zoom. However, once you reach about 50 objects,
you will start noticing redraw sequences. At 500+ visible lines, horizontal panning with a mouse wheel becomes annoying.
To me it looks more like a DOS application without hardware acceleration. Copying such drawings into the 3D space removes the
lag, so that may be a workaround. You will need to transfer the drawing back to the 2D space to export as .dwg though.</p>
<video controls muted="true">
<source src="https://www.keypressure.com/files/video/beckercad-2d-flicker.mp4" type="video/mp4">
</source></video></section>
<section id="interoperability">
<h3>Interoperability</h3>
<p>Every 2D drawing I exported from BeckerCAD looked different in the DWG export. Fonts are a particular pain point, with stretched,
squeezed or misaligned text elements being the most prominent difference. Dimensions may also look wrong. If you specify
the "fit" style, the resulting dimension text will overlap with the dimension line.</p>
<p>The import process for DWG files only reads data from the model space. If the file to be imported has any paper space layouts
defined, it will ignore them. While you can import DWG files with 3D geometry, with varying usability after import, you cannot
export DWG files with embedded 3D objects.</p>
<p>When exporting drawings to SVG your text elements will have default browser font regardless of what you had in the drawing.</p>
<p>If your workflow only revolves around CADdy++ tools (which is unlikely), you might not notice these issues, however do
not expect your drawings to be rendered in the same way in other applications when you export DWG/DXF or SVG. Application
listings claim BeckerCAD is "Fully compatible with AutoCAD", however, what "compatible" means is left as an exercise for the user.</p>
</section>
<section id="localization">
<h3>Localization</h3>
<p>Even though the software is being sold in the US, and there is built-in support for inches, you don't have a way of
presenting values as feet and inches, e.g. 7' 2", which are used in US architecture drawings. It would be great for the US
to switch to a metric system someday, but for now applications have to adapt to be usable in the target market.</p>
<p>There are no default ANSI paper sizes in the standard.tpl file, so here's my <a class="reference external" href="https://www.keypressure.com/files/beckercad/standard-imperial.tpl">standard-imperial.tpl</a> file containing ANSI and Arch paper sizes.</p>
</section>
<section id="general-attention-to-details">
<h3>General Attention to Details</h3>
<p>While working with this software, I kept finding items that can be classified as "paper cuts". They are small/trivial to
fix issues, which make me question the willingness of the product owner to ship a quality product.</p>
<p>BeckerCAD ships with default hotkeys configuration, which uses commands that are not available, e.g. ".sys.wnd.openToolWinMenu".</p>
<p>Symbols shipped with the program have "interpret size related to paper size" option set, which causes the contained text
to be HUGE, and the only solution is to disassemble the symbol and update this text attribute.</p>
<p>I mentioned the translation issues before, and Symbols shipped with BeckerCAD are all in German regardless of your installation language.</p>
<p>Single-clicking the symbol in the palette does nothing, double-clicking it would insert it at a random location in the drawing
as well as allow to place a copy where you want it, so you must use the "OK" button.</p>
<p>The annoying modal dialog boxes you get when you execute a command outside of the proper context (e.g. Enabling snapping
when there are no drawing commands) can be redirected to a Model Explorer tab message box. However, that text area does not
wrap words, resulting in truncated visible messages. You'll need to scroll horizontally to get to see the full message.</p>
<p>You can't create a line with a parallel line tool to have an overlapping "straight line", since the application will
exclaim "Only positive entries permitted!". The application generally likes to shout.</p>
</section>
<section id="future-concerns">
<h3>Future Concerns</h3>
<p>The way the application stores its configuration files and databases makes it incompatible with Microsoft Store or
deployment via .appx installs, so the product relies on customized installation path. While this is not an immediate
concern, seeing the same behavior in the 2021 does not bring joy.</p>
<p>The .MOD files created by application are proprietary and DataSolid sells standalone viewer software to view and print
the drawings and models outside of the editor. CADdy++ View & Plot will cost you €640 (~$730) and a Pro version of that
will be €900 (~$1024). Seeing how other players distribute free viewers, I can't help but wonder who the target audience
of that is and what it means for archives of your models in CADdy++ format.</p>
<p>The application ships with Python runtime v2.7.8 released in 2014. Note that Python 2 support officially ended on Jan 1, 2020.</p>
</section>
</section>
<section id="likely-audience">
<h2>Likely Audience</h2>
<p>I've tested BeckerCAD drawing a real-world floor plan, designing and re-designing a small 3D-printable part covered
in the next section, and browsing a bunch of DWG files - samples and real-world drawings.</p>
<p>Even though there are architectural symbols included, I don't think you will want to draw floor plans with BeckerCAD 12.
The application does not treat architectural symbols in any way different to plain lines, so you are in charge of the
alignment and scaling. Simple floor plans may work. You can use the built-in "Building" functionality, which allows
creating a 3D model out of your floor plan. However, it is limited to a single floor and there are no standard 3D
models for any of the architectural objects, so your 2D door symbol does not magically become a door in 3D.</p>
<figure>
<img alt="/galleries/beckercad/floorplan.png" src="https://www.keypressure.com/galleries/beckercad/floorplan.png">
</figure>
<p>That's why I believe this software is better suited for modeling standalone objects.</p>
</section>
<section id="designing-in-beckercad">
<h2>Designing in BeckerCAD</h2>
<p>Now, in order to test BeckerCAD with a useful real-world task, I attempted to fix an annoyance of a Dell MSA-14
monitor arm, which was always slightly tilted because of an undersized pivot shaft. After a few days of
measurements and modeling, I made the following subtle change:</p>
<figure>
<img alt="/galleries/beckercad/msa14_pivot-side.jpg" src="https://www.keypressure.com/galleries/beckercad/msa14_pivot-side.jpg">
<figcaption>
<p>Before (original) and after (3D-printed part)</p>
</figcaption>
</figure>
<p>I probably got a 20% decrease in tilt after printing the part slightly bigger than the original, and while it
probably was not worth doing, I learned quite a bit.</p>
<p>I have gone through 10 iterations of this part in the past month, so I am pretty sure my measurements are as
good as I could get them. Since I don't own a 3D printer and my experience with such devices has been troublesome,
I sent the STL model exported from BeckerCAD to a local shop, <a class="reference external" href="https://jinxbot.com">jinxbot.com</a>. It was quite a
feeling of accomplishment to receive a printed version of something you've spent so much time looking at in the
virtual space.</p>
<p>The printed part had perfect dimensions, but it turned out that my cheap calipers had a constant -0.2mm offset
while measuring internal diameters because of a manufacturing defect, and it took some force to get the
bolt and the nut to seat properly. Subsequent revisions had this issue rectified to the best of my ability.</p>
<p>I start with the 2D space and draw an outline of the profile for half of the part:</p>
<figure>
<img alt="/galleries/beckercad/process_01.png" src="https://www.keypressure.com/galleries/beckercad/process_01.png">
</figure>
<p>Then copy this profile into the 3D space, selecting the ZX workplane.</p>
<figure>
<img alt="/galleries/beckercad/process_02.png" src="https://www.keypressure.com/galleries/beckercad/process_02.png">
<figcaption>
<p>Default dimensions using a TrueType font got replaced with box outlines.</p>
</figcaption>
</figure>
<p>I create a rotational solid using the centerline as the rotational axis. After selecting Process/Erase active 2D section I have a cleaned up 3D view:</p>
<figure>
<img alt="/galleries/beckercad/process_03.png" src="https://www.keypressure.com/galleries/beckercad/process_03.png">
</figure>
<p>Since I need a place to insert the nut on top, I am adding a "prism" on top by creating a temporary workplane,
creating a 15.6mm diameter prism with 6 faces, extruding it down 10mm, and then subtracting it from the model:</p>
<figure>
<img alt="/galleries/beckercad/process_04.png" src="https://www.keypressure.com/galleries/beckercad/process_04.png">
</figure>
<p>I need a notch on the bottom to prevent the part from rotating when installed. So I create a solid rectangle and
run a boolean subtraction operation on the model. This is tricky because I found no way to snap to 3D objects
other than endpoints intersecting with the workplane, so using 2D tools I project the base cylinder to the
Standard XZ workplane, create a centerline, measuring 10mm from the outside diameter and a 3D box with 10mm depth,
2.75mm height and 6mm width. I carve the hole by boolean "Subtraction" from the main model:</p>
<figure>
<img alt="/galleries/beckercad/process_05.png" src="https://www.keypressure.com/galleries/beckercad/process_05.png">
</figure>
<p>The pivot shaft has a groove that restricts the rotation angle to 90 degrees. I don't know of a better way to do
that than to create a tool with an arc, extrude it and then subtract from the model. Based on my measurements, it is
offset from the centerline by 30 degrees and is 90 degrees long with 15.15mm radius.</p>
<figure>
<img alt="/galleries/beckercad/process_06.png" src="https://www.keypressure.com/galleries/beckercad/process_06.png">
</figure>
<p>That's it, basic shape is done. Now, since I wanted to be fancy, I also removed some material by creating edges
instead of solid infill. For that I re-used the top face workplane do draw a circle 3mm smaller than the outer
diameter and a hexagon 3mm larger than the nut opening using Parallel Line/Contour 2D tool. Joined them with another
3mm bridge, cleaned up all of the extra lines, then created an array of these "holes". Then I extruded them downwards
15mm, merged into a separate solid, moved the workplane to the origin and extruded them up 12.75 mm:</p>
<figure>
<img alt="/galleries/beckercad/process_07.png" src="https://www.keypressure.com/galleries/beckercad/process_07.png">
<figcaption>
<p>I left the created arc "tool" in the final drawing, it's a transparent yellow chunk.</p>
</figcaption>
</figure>
<p>Then I "subtract" these "holes" from the main model:</p>
<figure>
<img alt="/galleries/beckercad/process_08.png" src="https://www.keypressure.com/galleries/beckercad/process_08.png">
</figure>
<p>Now I am done with the actual model. now I can create model views and add dimensions and sections for reference.</p>
<p>I am 99% sure this style of dimensioning and drawing would score F- in some design school, but all I
wanted from this process was a printable STL file, so everything else is extra:</p>
<figure>
<img alt="/galleries/beckercad/process_09.png" src="https://www.keypressure.com/galleries/beckercad/process_09.png">
</figure>
<p>The resulting model can now be displayed online, using the exporter producing a web page, which apparently, comes
from another DataSolid product, CADdy++ Event Planning.</p>
<p>You may wonder why the default camera view is inside the model. Click the "Home" button to switch to the starting
position, because for some reason the viewer does not start in starting position.</p>
<iframe src="https://www.keypressure.com/files/beckercad/msa14_pivot-demo/scene.html" style="width: 100%; height: 400px">
</iframe><p>Downloads:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://www.keypressure.com/files/beckercad/msa14_pivot-demo.mod">msa14_pivot-demo.mod</a> - CADdy++ Drawing</p></li>
<li><p><a class="reference external" href="https://www.keypressure.com/files/beckercad/msa14_pivot-demo.stl">msa14_pivot-demo.stl</a> - STL export</p></li>
<li><p><a class="reference external" href="https://www.keypressure.com/files/beckercad/msa14_pivot-demo.dwg">msa14_pivot-demo.dwg</a> - DWG export for the 2D part</p></li>
<li><p><a class="reference external" href="https://www.keypressure.com/files/beckercad/msa14_pivot-demo.sat">msa14_pivot-demo.sat</a> - ACIS SAT export of the model</p></li>
</ul>
</section>
<section id="lessons-learned">
<h2>Lessons Learned</h2>
<section id="common">
<h3>Common</h3>
<section id="d-vs-3d">
<h4>2D vs 3D</h4>
<p>You can start in either 2D or 3D. If you don't need 3D, you can close the 3D view and forget about it. If you expect
to transform your 2D image into 3D, then you have two choices:</p>
<ul class="simple">
<li><p>Start in 2D, draw the edges, outlines, and everything else you can for a single projection, then
use "Transform/Move with Copy Dynamically" to copy the drawing into the 3D space plane.</p></li>
<li><p>Start in 3D on one of the Standard XY, XZ, and YZ plane. Use 2D primitives in the same way you'd
use in the 2D view, and/or 3D shapes.</p></li>
</ul>
</section>
<section id="hotkeys">
<h4>Hotkeys</h4>
<p>By default BeckerCAD ships with Hotkeys.txt file in <cite>Program\Bin</cite> directory which has the default settings.
Copy that file as <cite>user_hotkeys.txt</cite> file to your working directory (by default that's <cite>C:\BeckerCAD12\User</cite>, but, as mentioned
in my <a class="reference external" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/">first post on BeckerCAD</a>, it can be anywhere you want) and edit it.</p>
<p>You can find the names of the commands to use through the View/Toolbar dialog. You don't need to create a new toolbar.</p>
<p>If you select the nodes of the tree on the right, you'll get information in the Function area, e.g. "Top View" is
mapped to command <cite>.view.dirTop.</cite> Some of the entries in the default Hotkeys.txt don't work, since likely they
changed the functionality without updating the file.</p>
</section>
<section id="fonts">
<h4>Fonts</h4>
<p>BeckerCAD 12 3D Pro ships with 14 vector fonts in a proprietary format in <cite>Program\FNT</cite> directory.</p>
<p>TrueType fonts can be used, however they are not visible in 3D space unless you enable outline property of each individual text object.</p>
</section>
</section>
<section id="d">
<h3>2D</h3>
<section id="partial-drawings">
<h4>Partial Drawings</h4>
<p>A 2D drawing is built from Partial Drawings, which contain objects such as lines or circles, or groups of such objects.
By default, you get a Partial Drawing (PD) and a Standard Sheet (SSH). Standard Sheet is used for placing a title block
and Partial Drawings are used to create a composite of your drawing. Your geometry goes into a Partial Drawing,
and detail views are created in separate Detail View Partial Drawings (DT).</p>
</section>
</section>
<section id="d-1">
<h3>3D</h3>
<section id="workplanes">
<h4>Workplanes</h4>
<p>Workplanes are used to create a reference point for subsequent operations. By default there are three Standard
workplanes. I create new ones to draw 2D lines on top of 3D faces by first "Define WP using Face/Center of Gravity",
and then drawing what I needed in the new workplane.</p>
<p>We can convert Workplanes to "Cut Planes", which allows exposing an internal structure of the model as if it was
cut. This, however, has no relation to section view, which you can create in 2D mode from a model view.</p>
</section>
<section id="push-pull">
<h4>Push/Pull</h4>
<p>BeckerCAD 3D has an Offset Faces tool which functions similarly to Push/Pull tools in other applications and can be
found in "Solid Local Operations/Offset Faces" 3D toolbar. You will see the changes in the 3D view or specify the
offset in the Status window, which then can apply to other faces.</p>
</section>
</section>
<section id="troubleshooting">
<h3>Troubleshooting</h3>
<ul>
<li><p>I can't get the camera inside the model</p>
<p>By default, you are in an orthogonal projection, which will always show a face perpendicular to your view. Switch to the Perspective
mode on in View -> Perspective/Orthogonal and then you'll be able to zoom into your model.</p>
</li>
<li><p>Measurements appear as boxes in 3D view</p>
<p>If you are using a TrueType font for dimensions or text, it will be displayed as boxes in 3D space because of limitations of BeckerCAD.
Select a vector font in Settings/Text.../Text Style/current font for specific styles.</p>
</li>
<li><p>I can't select anything</p>
<p>If you receive "No valid object found!" or "Point no found" when clicking on an entity you expect to select, check the following items:</p>
<ul>
<li><p>You have the correct Partial Drawing selected in the 2D menu bar.</p>
<p>Active Partial Drawing selector is set to either the "Select on current sketchboard only", "Select on all sketchboards", or, if you
need to use "Select on listed sketchboards", click the "Define Activ (sic) Partial Drawings..." icon and select the Partial Drawings
you need to interact.</p>
<p>Partial Drawing appears to be the same thing as sketchboards in BeckerCAD 3D localization.</p>
<p>If you regularly switch between the Partial Drawings, enable "Show/Hide status of partial drawing" (enabled is grayed-out)
to gray-out ("lowlight") the geometry on a Partial Drawing that's not currently active.</p>
</li>
<li><p>The object you are trying to select belongs to a layer that's "pickable", or "active".</p>
<p>Open the Model Explorer, click on the Layer
Explorer tab and open Properties... menu for the layer your object is located (e.g. Hidden Lines). If the "Active" state is off,
then you won't be able to select it, or use the "Activate Layer" icon to switch the layer to that element.</p>
</li>
</ul>
<p>If you are in 3D view, then check the following items:</p>
<ul>
<li><p>Your 2D/3D selection buttons are what you expect, if the mode is not selectable, you cannot select geometry of that kind:</p>
<ul class="simple">
<li><p>Green background/black text = selectable.</p></li>
<li><p>Red background/white text = not selectable.</p></li>
</ul>
</li>
<li><p>Your camera view does not match the current workplane, so your dimensions are projected to the wrong workplane.</p>
<p>Switch to a workplane which has the projection of your geometry that you want to measure/or reference for other commands.</p>
</li>
</ul>
</li>
<li><p>Low STL Export Resolution</p>
<p>SAT and STL export settings live in "General 3D Import / Export Settings" dialog that's only accessible from File/Export/Settings.
If your STL files appear to have low resolution, check the "Settings stereo lithography" group in that dialog. In my case, setting
normal deviation to 5 has increased the polygon count for the arcs in the export.</p>
</li>
<li><p>Status Window Does Not Show Up</p>
<p>Status window can go out of display bounds. In this case, select View/Status Dialog Box, then without moving the mouse,
press Alt+Spacebar to get the Windows menu allowing to move the window. Select "Maximize", which will bring the window
in and maximize it. Then use your mouse to resize the window and position it within the viewport. If your status window
cannot be properly positioned, that may be due to Windows scaling. Disable scaling for the application in the shortcut settings.</p>
</li>
</ul>
</section>
</section>
<section id="afterword">
<h2>Afterword</h2>
<p>It was an interesting experience, and I learned a lot. I hope DataSolid fixes the paper cuts, and that CADdy++ and BeckerCAD
improve enough to be featured more on the internet, but for now I have exhausted my patience and will happily search for another
thing to learn the hard way.</p>
</section>A Sudden BeckerCAD 3D Pro Reviewhttps://www.keypressure.com/blog/a-sudden-beckercad-review/2021-11-27T16:14:57Z2021-11-27T16:14:57ZRoman Yepishev<div><a class="pull-left reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/beckercad_12_3d_pro_box.jpg"><img alt="/galleries/beckercad/beckercad_12_3d_pro_box.thumbnail.jpg" src="https://www.keypressure.com/galleries/beckercad/beckercad_12_3d_pro_box.thumbnail.jpg" style="width: 200px;"></a>
<p class="alert"><strong>Update (2021-01-03)</strong>: I've written more on BeckerCAD, and why you probably shouldn't buy it. Go read the <a class="reference external" href="https://www.keypressure.com/blog/a-sudden-beckercad-review-part-2/">sequel</a>.</p>
<p>Occasionally I run into an interesting piece of software while doing unrelated things, and this time I stumbled upon a Windows-only “BeckerCAD 12 3D Pro” application <a class="reference external" href="https://www.softmaker.com/en/beckercad">on sale</a> in <a class="reference external" href="https://www.softmaker.com/en/">SoftMaker</a> store, a company developing the blazing fast Linux/Windows/Mac OS X <a class="reference external" href="https://www.softmaker.com/en/softmaker-office">SoftMaker Office</a> suite, and a free <a class="reference external" href="https://www.freeoffice.com/en/">FreeOffice</a> version of one.</p>
<p>I like <a class="reference external" href="https://docs.google.com">Google Docs</a> as much as the next guy, but sometimes I enjoy looking at what else is out there. So I bought a license to the office suite that I’ve had my eyes on for some time, and put a $20 BeckerCAD12 3D Pro in the cart along for the ride.</p>
<p><a href="https://www.keypressure.com/blog/a-sudden-beckercad-review/">Read more…</a> (12 min remaining to read)</p></div><a class="pull-left reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/beckercad_12_3d_pro_box.jpg"><img alt="/galleries/beckercad/beckercad_12_3d_pro_box.thumbnail.jpg" src="https://www.keypressure.com/galleries/beckercad/beckercad_12_3d_pro_box.thumbnail.jpg" style="width: 200px;"></a>
<p class="alert"><strong>Update (2021-01-03)</strong>: I've written more on BeckerCAD, and why you probably shouldn't buy it. Go read the <a class="reference external" href="https://www.keypressure.com/blog/a-sudden-beckercad-review-part-2/">sequel</a>.</p>
<p>Occasionally I run into an interesting piece of software while doing unrelated things, and this time I stumbled upon a Windows-only “BeckerCAD 12 3D Pro” application <a class="reference external" href="https://www.softmaker.com/en/beckercad">on sale</a> in <a class="reference external" href="https://www.softmaker.com/en/">SoftMaker</a> store, a company developing the blazing fast Linux/Windows/Mac OS X <a class="reference external" href="https://www.softmaker.com/en/softmaker-office">SoftMaker Office</a> suite, and a free <a class="reference external" href="https://www.freeoffice.com/en/">FreeOffice</a> version of one.</p>
<p>I like <a class="reference external" href="https://docs.google.com">Google Docs</a> as much as the next guy, but sometimes I enjoy looking at what else is out there. So I bought a license to the office suite that I’ve had my eyes on for some time, and put a $20 BeckerCAD12 3D Pro in the cart along for the ride.</p>
<!-- TEASER_END -->
<p>BeckerCAD’s installation process suggested installing it into a folder at the root of the drive, and there’s a reason for that - this application does not respect the non-writable nature of modern “Program Files” folder, so it suggests using a location that is not locked down.</p>
<p>Since I tagged this post as “the hard way”, I did not go that default route.</p>
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/errors_composite.jpg"><img alt="/galleries/beckercad/errors_composite.thumbnail.jpg" class="pull-right" src="https://www.keypressure.com/galleries/beckercad/errors_composite.thumbnail.jpg"></a>
<p>BeckerCAD is a 32-bit Win32 program, so it should really be installed into <code class="docutils literal">Program Files (x86)</code>. With this change, the installation proceeds as expected, but you get a slew of error messages related to inability to creating files (including a Python stacktrace), reading files, initializing DLLs, etc on startup.</p>
<p>Based on <a class="reference external" href="https://docs.microsoft.com/en-us/sysinternals/downloads/procmon">SysInternals ProcessMonitor</a>, throughout its runtime, BeckerCAD writes data to:</p>
<div class="code"><pre class="code text"><a id="rest_code_b632669652ac4a78a0febe698b6785c3-1" name="rest_code_b632669652ac4a78a0febe698b6785c3-1" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-1"></a>%ProgramFiles(x86)%\BeckerCAD12\Program\Database\*
<a id="rest_code_b632669652ac4a78a0febe698b6785c3-2" name="rest_code_b632669652ac4a78a0febe698b6785c3-2" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-2"></a>%ProgramFiles(x86)%\BeckerCAD12\Program\Python\Lib\site-packages\win32com\gen_py\*
<a id="rest_code_b632669652ac4a78a0febe698b6785c3-3" name="rest_code_b632669652ac4a78a0febe698b6785c3-3" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-3"></a>%ProgramFiles(x86)%\BeckerCAD12\Program\Python\Lib\site-packages\win32com\gen_py\dicts.dat
<a id="rest_code_b632669652ac4a78a0febe698b6785c3-4" name="rest_code_b632669652ac4a78a0febe698b6785c3-4" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-4"></a>%ProgramFiles(x86)%\BeckerCAD12\Program\Python\CADdyPython.log
<a id="rest_code_b632669652ac4a78a0febe698b6785c3-5" name="rest_code_b632669652ac4a78a0febe698b6785c3-5" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-5"></a>%ProgramFiles(x86)%\BeckerCAD12\Program\Bin\webBrowser.MES
<a id="rest_code_b632669652ac4a78a0febe698b6785c3-6" name="rest_code_b632669652ac4a78a0febe698b6785c3-6" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-6"></a>%ProgramFiles(x86)%\BeckerCAD12\Program\Bin\startAssistent.MES
<a id="rest_code_b632669652ac4a78a0febe698b6785c3-7" name="rest_code_b632669652ac4a78a0febe698b6785c3-7" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-7"></a>%ProgramFiles(x86)%\BeckerCAD12\Program\Bin\Buildings.MES
<a id="rest_code_b632669652ac4a78a0febe698b6785c3-8" name="rest_code_b632669652ac4a78a0febe698b6785c3-8" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-8"></a>%ProgramFiles(x86)%\BeckerCAD12\Program\Bin\CADdyWebExport.MES
<a id="rest_code_b632669652ac4a78a0febe698b6785c3-9" name="rest_code_b632669652ac4a78a0febe698b6785c3-9" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-9"></a>%ProgramFiles(x86)%\BeckerCAD12\User\TMP\*
<a id="rest_code_b632669652ac4a78a0febe698b6785c3-10" name="rest_code_b632669652ac4a78a0febe698b6785c3-10" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_b632669652ac4a78a0febe698b6785c3-10"></a>%ProgramFiles(x86)%\BeckerCAD12\User\UIBECKER.SYS
</pre></div>
<p>I did not like how it wrote to those folders, especially the <code class="docutils literal">Program\Bin</code> one. Even though the binary was compiled in 2019, it was using practices from pre-2007 era, when Windows Vista introduced restrictions on applications writing to their installation folder within Program Files. Now, by default, the installer would have put this application in the root folder, which is exempt from these restrictions, but I still felt uneasy granting the application access to overwrite whatever it wants in its installation directory. That’s how random corruptions happen.</p>
<p>When Microsoft restricted access to Program Files on Windows Vista, they created <a class="reference external" href="http://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx">UAC Virtualization</a>. This enabled 32-bit Win32 applications to work as expected even with restrictions in place, because Windows would redirect writes to the files into <code class="docutils literal"><span class="pre">%APPDATA%\VirtualStore</span></code>.</p>
<p>Now, Becker3D 12 Pro <strong>is</strong> a 32-bit application. Why doesn’t it get redirected?</p>
<p><cite>UAC Virtualization</cite> document states:</p>
<blockquote>
<p>The presence of the trustInfo element in a manifest (which you can see in the excerpted string dump of Firewallsettings.exe below), denotes an executable that was written for Windows Vista and the requestedElevationLevel element nests within it.</p>
<p class="attribution">—<a class="reference external" href="http://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx">Microsoft: Security: Inside Windows Vista User Account Control</a></p>
</blockquote>
<p><cite>Targeting your application for Windows</cite> brings additional details:</p>
<blockquote>
<p>Adding trustInfo isn't essential, but it is highly recommended, even when your app doesn't need any particular UAC-related behavior. In particular, if you don't add trustInfo at all, then 32-bit x86 versions of your app will be subject to UAC file virtualization, which allows writes to administrator-privileged folders like the Windows system folders to succeed when they would otherwise fail, but redirects them to a user-specific "VirtualStore" folder.</p>
<p class="attribution">—<a class="reference external" href="https://docs.microsoft.com/en-us/windows/win32/sysinfo/targeting-your-application-at-windows-8-1">Microsoft: Targeting your application for Windows</a></p>
</blockquote>
<p>Okay, let’s look at the manifest. <a class="reference external" href="https://docs.microsoft.com/en-us/windows/win32/sbscs/mt-exe">mt.exe</a> is a binary from Windows SDK that deals with manifests, extracting the manifest from BeckerCAD.exe shows:</p>
<div class="code"><pre class="code text"><a id="rest_code_094c4850e15e466a8a914010d24ccdf1-1" name="rest_code_094c4850e15e466a8a914010d24ccdf1-1" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_094c4850e15e466a8a914010d24ccdf1-1"></a>> & 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\mt.exe' -inputresource:"C:\Program Files (x86)\BeckerCAD12\Program\Bin\BeckerCAD.exe" -out:.\Projects\BeckerCAD.exe.manifest -nologo
</pre></div>
<div class="code"><pre class="code xml"><a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-1" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-1" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-1"></a><span class="cm"><!-- .\Projects\BeckerCAD.exe.manifest --></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-2" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-2" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-2"></a><span class="cp"><?xml version="1.0" encoding="UTF-8" standalone="yes"?></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-3" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-3" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-3"></a><span class="nt"><assembly</span> <span class="na">xmlns=</span><span class="s">"urn:schemas-microsoft-com:asm.v1"</span> <span class="na">manifestVersion=</span><span class="s">"1.0"</span><span class="nt">></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-4" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-4" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-4"></a> <span class="nt"><dependency></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-5" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-5" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-5"></a> <span class="nt"><dependentAssembly></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-6" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-6" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-6"></a> <span class="nt"><assemblyIdentity</span> <span class="na">type=</span><span class="s">"win32"</span> <span class="na">name=</span><span class="s">"Microsoft.Windows.Common-Controls"</span> <span class="na">version=</span><span class="s">"6.0.0.0"</span> <span class="na">processorArchitecture=</span><span class="s">"*"</span> <span class="na">publicKeyToken=</span><span class="s">"6595b64144ccf1df"</span> <span class="na">language=</span><span class="s">"*"</span><span class="nt">></assemblyIdentity></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-7" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-7" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-7"></a> <span class="nt"></dependentAssembly></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-8" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-8" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-8"></a> <span class="nt"></dependency></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-9" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-9" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-9"></a> <span class="nt"><trustInfo</span> <span class="na">xmlns=</span><span class="s">"urn:schemas-microsoft-com:asm.v3"</span><span class="nt">></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-10" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-10" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-10"></a> <span class="nt"><security></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-11" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-11" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-11"></a> <span class="nt"><requestedPrivileges></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-12" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-12" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-12"></a> <span class="nt"><requestedExecutionLevel</span> <span class="na">level=</span><span class="s">"asInvoker"</span> <span class="na">uiAccess=</span><span class="s">"false"</span><span class="nt">></requestedExecutionLevel></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-13" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-13" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-13"></a> <span class="nt"></requestedPrivileges></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-14" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-14" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-14"></a> <span class="nt"></security></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-15" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-15" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-15"></a> <span class="nt"></trustInfo></span>
<a id="rest_code_28f39dd54ddb42b789ee464943a82f9b-16" name="rest_code_28f39dd54ddb42b789ee464943a82f9b-16" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_28f39dd54ddb42b789ee464943a82f9b-16"></a><span class="nt"></assembly></span>
</pre></div>
<p>So the application declares that it does not explicitly need to run as administrator (<code class="docutils literal"><span class="pre">level="asInvoker"</span></code>), yet it needs to write to its installation directory. The manifest also does not pass validation because it is missing <code class="docutils literal">assemblyIdentity</code> information:</p>
<div class="code"><pre class="code text"><a id="rest_code_4bae2d3be99d410ca609600a5553bb0b-1" name="rest_code_4bae2d3be99d410ca609600a5553bb0b-1" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_4bae2d3be99d410ca609600a5553bb0b-1"></a>> & 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\mt.exe' -manifest .\Projects\BeckerCAD.exe.manifest -validate_manifest -nologo
<a id="rest_code_4bae2d3be99d410ca609600a5553bb0b-2" name="rest_code_4bae2d3be99d410ca609600a5553bb0b-2" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_4bae2d3be99d410ca609600a5553bb0b-2"></a>
<a id="rest_code_4bae2d3be99d410ca609600a5553bb0b-3" name="rest_code_4bae2d3be99d410ca609600a5553bb0b-3" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_4bae2d3be99d410ca609600a5553bb0b-3"></a>.\Projects\BeckerCAD.exe.manifest : general error 10100ba: The manifest is missing the definition identity.
</pre></div>
<p><cite>mt.exe</cite> is a tool for updating the manifest in the resources, so I added the missing identity information, dropped the <code class="docutils literal">trustInfo</code> node and attempted to update the configuration.</p>
<div class="code"><pre class="code xml"><a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-1" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-1" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-1"></a><span class="cm"><!-- Updated .\Projects\BeckerCAD.exe.manifest --></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-2" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-2" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-2"></a><span class="cp"><?xml version="1.0" encoding="UTF-8" standalone="yes"?></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-3" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-3" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-3"></a><span class="nt"><assembly</span> <span class="na">xmlns=</span><span class="s">"urn:schemas-microsoft-com:asm.v1"</span> <span class="na">manifestVersion=</span><span class="s">"1.0"</span><span class="nt">></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-4" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-4" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-4"></a><span class="nt"><assemblyIdentity</span> <span class="na">type=</span><span class="s">"win32"</span> <span class="na">name=</span><span class="s">"BeckerCAD"</span> <span class="na">version=</span><span class="s">"2019.0.0.1"</span> <span class="na">processorArchitecture=</span><span class="s">"x86"</span><span class="nt">></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-5" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-5" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-5"></a><span class="nt"></assemblyIdentity></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-6" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-6" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-6"></a><span class="nt"><dependency></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-7" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-7" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-7"></a> <span class="nt"><dependentAssembly></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-8" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-8" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-8"></a> <span class="nt"><assemblyIdentity</span> <span class="na">type=</span><span class="s">"win32"</span> <span class="na">name=</span><span class="s">"Microsoft.Windows.Common-Controls"</span> <span class="na">version=</span><span class="s">"6.0.0.0"</span> <span class="na">processorArchitecture=</span><span class="s">"*"</span> <span class="na">publicKeyToken=</span><span class="s">"6595b64144ccf1df"</span> <span class="na">language=</span><span class="s">"*"</span><span class="nt">></assemblyIdentity></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-9" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-9" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-9"></a> <span class="nt"></dependentAssembly></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-10" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-10" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-10"></a><span class="nt"></dependency></span>
<a id="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-11" name="rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-11" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_9fa22d7140be4ad1a8bafbc4704c6e71-11"></a><span class="nt"></assembly></span>
</pre></div>
<div class="code"><pre class="code text"><a id="rest_code_767476b8b37744388db652cec38e8be0-1" name="rest_code_767476b8b37744388db652cec38e8be0-1" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_767476b8b37744388db652cec38e8be0-1"></a>> 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\mt.exe' '-updateresource:.\Projects\BeckerCAD.exe;#1' -manifest .\Projects\BeckerCAD.exe.manifest
</pre></div>
<p>Unfortunately for me, <code class="docutils literal">mt.exe</code> does a merge of the existing manifest and the incoming one, so I kept getting trustInfo in the final binary. Eventually I realized I needed to edit the original resource, so I opened the binary in Visual Studio and updated <code class="docutils literal">RT_MANIFEST</code> entry to remove <code class="docutils literal">trustInfo</code> node completely, then did the <code class="docutils literal">updateresource</code> described above to have a new shiny manifest that passes validation.</p>
<p>I put the updated binary into <code class="docutils literal">Becker3D12\Program\Bin</code>, started it, expecting things to blow up spectacularly, and instead I got a fully working application, and <code class="docutils literal"><span class="pre">%APPDATA%\VirtualStore</span></code> showed all the redirected files.</p>
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/uibecker_sys_error.png"><img alt="/galleries/beckercad/uibecker_sys_error.thumbnail.png" class="pull-right" src="https://www.keypressure.com/galleries/beckercad/uibecker_sys_error.thumbnail.png"></a>
<p>However, upon exit, I got an exception that <code class="docutils literal">UIBECKER.SYS</code> could not be opened.</p>
<p><code class="docutils literal">UIBECKER.SYS</code> was not being redirected, and that file contains UI configuration. Ideally, it should have been written to the User folder, but I have a suspicion there’s a filter in VirtualStore that does not allow redirection of SYS files, which is an extension used for device drivers.</p>
<p>BeckerCAD documentation suggested that this file gets created either in User directory or in a working directory of the application, based on this quote from “Installing the current version in a folder of an earlier version” help section:</p>
<blockquote>
<ul>
<li><p>Erase the files containing general defaults for the user interface:</p>
<p>UIBECKER.SYS</p>
<p>These are in ...USER or in the directory which you specified as the working directory, when you connected the program.</p>
</li>
</ul>
</blockquote>
<p>Creating an <code class="docutils literal"><span class="pre">%APPDATA%\BeckerCAD12</span></code> folder and changing the shortcut to use it as a startup directory made the application write <code class="docutils literal">UIBECKER.SYS</code> into a non-redirected folder in my profile.</p>
<p>However, launching the application by opening .mod files would still trigger the error on exit.</p>
<p>It turned out that the registry entries for opening .mod and .tpl files that the installer planted in my Windows registry had a <code class="docutils literal"><span class="pre">-HOME</span></code> parameter which was hardcoded to the User location in my Program Files, so I needed to change that as well. You can’t use environment variables in <code class="docutils literal">REG_SZ</code> field, so I had to craft a .reg file with <code class="docutils literal">REG_EXPAND_SZ</code> which used <code class="docutils literal"><span class="pre">%APPDATA%\BeckerCAD12</span></code> as a <code class="docutils literal">HOME</code> parameter, and it worked.</p>
<div class="code"><pre class="code ini"><a id="rest_code_be88404b241448cc9b09987c26a7bcb8-1" name="rest_code_be88404b241448cc9b09987c26a7bcb8-1" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-1"></a><span class="na">Windows Registry Editor Version 5.00</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-2" name="rest_code_be88404b241448cc9b09987c26a7bcb8-2" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-2"></a>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-3" name="rest_code_be88404b241448cc9b09987c26a7bcb8-3" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-3"></a><span class="c1">; This sets all open commands to</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-4" name="rest_code_be88404b241448cc9b09987c26a7bcb8-4" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-4"></a><span class="c1">; "C:\Program Files (x86)\BeckerCAD12\Program\Bin\BeckerCAD.exe" "-HOME:%APPDATA%\BeckerCAD12" "%1"</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-5" name="rest_code_be88404b241448cc9b09987c26a7bcb8-5" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-5"></a><span class="c1">; %APPDATA%\BeckerCAD12 must exist before the program can use it</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-6" name="rest_code_be88404b241448cc9b09987c26a7bcb8-6" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-6"></a>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-7" name="rest_code_be88404b241448cc9b09987c26a7bcb8-7" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-7"></a><span class="k">[HKEY_CLASSES_ROOT\CADdy++ Maschinenbau MOD\shell\open\command]</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-8" name="rest_code_be88404b241448cc9b09987c26a7bcb8-8" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-8"></a><span class="na">@</span><span class="o">=</span><span class="s">hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-9" name="rest_code_be88404b241448cc9b09987c26a7bcb8-9" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-9"></a><span class="na">00,46,00,69,00,6c,00,65,00,73,00,20,00,28,00,78,00,38,00,36,00,29,00,5c,00,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-10" name="rest_code_be88404b241448cc9b09987c26a7bcb8-10" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-10"></a><span class="na">42,00,65,00,63,00,6b,00,65,00,72,00,43,00,41,00,44,00,31,00,32,00,5c,00,50,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-11" name="rest_code_be88404b241448cc9b09987c26a7bcb8-11" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-11"></a><span class="na">00,72,00,6f,00,67,00,72,00,61,00,6d,00,5c,00,42,00,69,00,6e,00,5c,00,42,00,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-12" name="rest_code_be88404b241448cc9b09987c26a7bcb8-12" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-12"></a><span class="na">65,00,63,00,6b,00,65,00,72,00,43,00,41,00,44,00,2e,00,65,00,78,00,65,00,22,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-13" name="rest_code_be88404b241448cc9b09987c26a7bcb8-13" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-13"></a><span class="na">00,20,00,22,00,2d,00,48,00,4f,00,4d,00,45,00,3a,00,25,00,41,00,50,00,50,00,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-14" name="rest_code_be88404b241448cc9b09987c26a7bcb8-14" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-14"></a><span class="na">44,00,41,00,54,00,41,00,25,00,5c,00,42,00,65,00,63,00,6b,00,65,00,72,00,43,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-15" name="rest_code_be88404b241448cc9b09987c26a7bcb8-15" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-15"></a><span class="na">00,41,00,44,00,31,00,32,00,22,00,20,00,22,00,25,00,31,00,22,00,00,00</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-16" name="rest_code_be88404b241448cc9b09987c26a7bcb8-16" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-16"></a>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-17" name="rest_code_be88404b241448cc9b09987c26a7bcb8-17" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-17"></a><span class="k">[HKEY_CLASSES_ROOT\CADdy++ Maschinenbau MOD\shell\Open with BeckerCAD - 32 Bit\command]</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-18" name="rest_code_be88404b241448cc9b09987c26a7bcb8-18" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-18"></a><span class="na">@</span><span class="o">=</span><span class="s">hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-19" name="rest_code_be88404b241448cc9b09987c26a7bcb8-19" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-19"></a><span class="na">00,46,00,69,00,6c,00,65,00,73,00,20,00,28,00,78,00,38,00,36,00,29,00,5c,00,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-20" name="rest_code_be88404b241448cc9b09987c26a7bcb8-20" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-20"></a><span class="na">42,00,65,00,63,00,6b,00,65,00,72,00,43,00,41,00,44,00,31,00,32,00,5c,00,50,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-21" name="rest_code_be88404b241448cc9b09987c26a7bcb8-21" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-21"></a><span class="na">00,72,00,6f,00,67,00,72,00,61,00,6d,00,5c,00,42,00,69,00,6e,00,5c,00,42,00,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-22" name="rest_code_be88404b241448cc9b09987c26a7bcb8-22" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-22"></a><span class="na">65,00,63,00,6b,00,65,00,72,00,43,00,41,00,44,00,2e,00,65,00,78,00,65,00,22,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-23" name="rest_code_be88404b241448cc9b09987c26a7bcb8-23" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-23"></a><span class="na">00,20,00,22,00,2d,00,48,00,4f,00,4d,00,45,00,3a,00,25,00,41,00,50,00,50,00,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-24" name="rest_code_be88404b241448cc9b09987c26a7bcb8-24" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-24"></a><span class="na">44,00,41,00,54,00,41,00,25,00,5c,00,42,00,65,00,63,00,6b,00,65,00,72,00,43,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-25" name="rest_code_be88404b241448cc9b09987c26a7bcb8-25" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-25"></a><span class="na">00,41,00,44,00,31,00,32,00,22,00,20,00,22,00,25,00,31,00,22,00,00,00</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-26" name="rest_code_be88404b241448cc9b09987c26a7bcb8-26" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-26"></a>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-27" name="rest_code_be88404b241448cc9b09987c26a7bcb8-27" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-27"></a><span class="k">[HKEY_CLASSES_ROOT\CADdy++ Maschinenbau TPL\shell\open\command]</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-28" name="rest_code_be88404b241448cc9b09987c26a7bcb8-28" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-28"></a><span class="na">@</span><span class="o">=</span><span class="s">hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-29" name="rest_code_be88404b241448cc9b09987c26a7bcb8-29" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-29"></a><span class="na">00,46,00,69,00,6c,00,65,00,73,00,20,00,28,00,78,00,38,00,36,00,29,00,5c,00,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-30" name="rest_code_be88404b241448cc9b09987c26a7bcb8-30" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-30"></a><span class="na">42,00,65,00,63,00,6b,00,65,00,72,00,43,00,41,00,44,00,31,00,32,00,5c,00,50,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-31" name="rest_code_be88404b241448cc9b09987c26a7bcb8-31" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-31"></a><span class="na">00,72,00,6f,00,67,00,72,00,61,00,6d,00,5c,00,42,00,69,00,6e,00,5c,00,42,00,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-32" name="rest_code_be88404b241448cc9b09987c26a7bcb8-32" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-32"></a><span class="na">65,00,63,00,6b,00,65,00,72,00,43,00,41,00,44,00,2e,00,65,00,78,00,65,00,22,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-33" name="rest_code_be88404b241448cc9b09987c26a7bcb8-33" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-33"></a><span class="na">00,20,00,22,00,2d,00,48,00,4f,00,4d,00,45,00,3a,00,25,00,41,00,50,00,50,00,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-34" name="rest_code_be88404b241448cc9b09987c26a7bcb8-34" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-34"></a><span class="na">44,00,41,00,54,00,41,00,25,00,5c,00,42,00,65,00,63,00,6b,00,65,00,72,00,43,\</span><span class="w"></span>
<a id="rest_code_be88404b241448cc9b09987c26a7bcb8-35" name="rest_code_be88404b241448cc9b09987c26a7bcb8-35" href="https://www.keypressure.com/blog/a-sudden-beckercad-review/#rest_code_be88404b241448cc9b09987c26a7bcb8-35"></a><span class="na">00,41,00,44,00,31,00,32,00,22,00,20,00,22,00,25,00,31,00,22,00,00,00</span><span class="w"></span>
</pre></div>
<section id="okay-what-about-the-app-itself">
<h2>Okay, What About The App Itself?</h2>
<figure class="pull-right">
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/blender_bevel_omg.png"><img alt="/galleries/beckercad/blender_bevel_omg.thumbnail.png" src="https://www.keypressure.com/galleries/beckercad/blender_bevel_omg.thumbnail.png" style="width: 400px;"></a>
<figcaption>
<p>My Blender SD Card model after applying a Bevel modifier.</p>
</figcaption>
</figure>
<p>Back in the university, I had a Technical Drawing course which required us to draw things on paper to start, and then somehow learn a CAD tool, heavily hinting towards Autodesk’s AutoCAD. When introduced to that piece of software, I felt completely out of my comfort zone because everything worked in a way that I did not expect. It wasn’t a tool you pick up and run with. I resorted to using OpenOffice Draw to create printable drawings, and then migrated to <a class="reference external" href="https://qcad.org/en/">QCAD</a>. For some minor 3D explorations I’ve only ever used <a class="reference external" href="https://www.blender.org/">Blender</a>, which was, and still is too powerful for me, so I am definitely not a power user of any CAD package.</p>
<img alt="/galleries/beckercad/markt_und_technik_logo.png" class="pull-left" src="https://www.keypressure.com/galleries/beckercad/markt_und_technik_logo.png">
<p>BeckerCAD by <a class="reference external" href="https://www.mut.de/">Markt+Technik Verlag GmbH</a> appears to be a rebranded <a class="reference external" href="https://www.datasolid.com/produkte/caddy-maschinenbau">CADdy++</a> “basic” application by <a class="reference external" href="https://www.datasolid.com/">DataSolid</a>, who also sells an “economy”, and “Mechanical Design Professional” variants, that are much more expensive, and that’s the first advantage of BeckerCAD, the cost. The documentation covers all items I’ve search for, however the English localization suffers from numerous translation issues where words are technically correct, but a native spearker would not have used them in such context. If you speak German, then you are likely to find the German version top be perfectly fine. “Determine a line object” is “Select a line object”, and “Dimensions [...] are displayed lowlighted” is “dimensions [...] are greyed-out”.</p>
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/ui_examples_combined.png"><img alt="/galleries/beckercad/ui_examples_combined.png" src="https://www.keypressure.com/galleries/beckercad/ui_examples_combined.png"></a>
<p>Another thing is that the icons are not distinct enough. While there aren’t colorblind issues that blocked me, there are icons that look almost the same that do different things.</p>
<p>Tooltips are also unhelpful e.g. in the Model Explorer an icon with a “Hidden Lines” tooltip means setting the type of the currently selected layer to “Hidden Lines”, and you need to go into documentation to realize that.</p>
</section>
<section id="who-is-it-for">
<h2>Who Is It For?</h2>
<p>Neither CADdy++ nor BeckerCAD are in any way popular on the internet. I found a German <a class="reference external" href="https://ww3.cad.de/cgi-bin/ubb/forumdisplay.cgi?action=topics&forum=CADdy%7CPLS%7C%7CPLS%7C&number=19">CAD.de forum</a>, where people were discussing CADdy++, a <a class="reference external" href="https://www.youtube.com/user/DataSolid/videos">few YouTube videos</a> by DataSolid describing CADdy++, and a small set of third-party tutorials, so your best reference will most likely be the example projects bundled with the package. Educational content about SolidWorks, AutoCAD, FreeCAD, TurboCAD, CorelCAD, Onshape, Siemens NX, and SketchUp (which I also tried) dwarfs BeckerCAD. To be fair, all packages above except FreeCAD also cost more, but it is important to consider what capabilities you will get. BeckerCAD is a traditional non-parametric CAD, while more expensive editions of CADdy++ support <a class="reference external" href="https://www.designworldonline.com/what-is-parametric-modeling/">parametric modeling</a>, and other packages also support <a class="reference external" href="https://www.ptc.com/en/blogs/cad/parametric-vs-direct-modeling-which-side-are-you-on">direct modeling</a>.</p>
<p>The majority of CAD applications are now licensed via subscriptions. Solidworks, AutoCAD and other Autodesk apps, SketchUp, Siemens NX, are all subscription-only. BricsCAD has both a subscription and a perpetual license starting from $560 for a 2D version. IronCAD pricing is not disclosed on their website, which is a red flag. A tinkerer who needs a CAD for occasional use but does not want a recurring subscription might want a cheap (or with FreeCAD, a free) alternative.</p>
<p>BeckerCAD requires an Internet access to activate the application, which will become a problem when the activation servers go offline. There’s also no quick way to unbind the license from an offline computer, which may be a problem in case the device gets stolen or becomes inoperable because of hardware failure. I got a license for 3 computers, which is nice.</p>
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/msa14_c_rev05.png"><img alt="/galleries/beckercad/msa14_c_rev05.thumbnail.png" class="pull-right" src="https://www.keypressure.com/galleries/beckercad/msa14_c_rev05.thumbnail.png" style="width: 250px;"></a>
<p>Can you use it to make 2D drawings and 3D models? Yes, definitely. A <a class="reference external" href="https://www.keypressure.com/blog/a-sudden-beckercad-review-part-2/">follow up blog post</a> will tell a story of the thing on the right once I get the latest version printed in the local 3D print shop. It took me a week to go through tutorials, a day to create the design, a day to get the first 3D-printed version, and another day to figure out why my measurements were slightly off... well, we’ll see how it goes with my second attempt.</p>
<p>Once you learn the basics, and learn to consult the manual heavily, the layout becomes usable, operations start making sense. It handles 2D and 3D drawings and solid operations, at least to my eye, albeit with visible screen repaint events in 2D mode. It stores data in its own proprietary .mod format, but can export and import ACIS SAT files, STL files, and claims support for DWG files. I did not have any, so I looked up Autodesk sample files, and the conversion produced the drawing.</p>
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/dwg_beckercad.png"><img alt="BeckerCAD 3D 12 Pro showing Gear Pump Subassembly." src="https://www.keypressure.com/galleries/beckercad/dwg_beckercad.png"></a>
<p>The fonts were definitely an issue, however even Autodesk’s online viewer complained their <a class="reference external" href="https://download.autodesk.com/us/support/files/mechanical_2019_sample_files/Gear_Pump_Subassy.dwg">Gear_Pump_Subassy.dwg</a> sample was missing fonts:</p>
<a class="reference external image-reference" href="https://www.keypressure.com/galleries/beckercad/dwg_autodesk_viewer.png"><img alt="Autodesk Viewer showing Gear Pump Subassembly." src="https://www.keypressure.com/galleries/beckercad/dwg_autodesk_viewer.png"></a>
<p>It can also create a web page for your model.</p>
<figure>
<img alt="/galleries/beckercad/collisions.png" class="pull-left" src="https://www.keypressure.com/galleries/beckercad/collisions.png" style="width: 400px;">
</figure>
<p>It does not have constraints support or model animation, and promotional images do not match renders you get in 3D. There is no simulation for material properties, or direct modeling in 3D, but it is likely that the user of this package is not looking for all that. I would like some sort of unwedging the models from one another as part of collision checks, but for now I have to get by with three screaming message boxes (you can see the scaling issue with the icons here).</p>
</section>
<section id="wishlist">
<h2>Wishlist</h2>
<p>If anybody from DataSolid or MuT would ever stumble upon this post, the items that I'd like to see fixed are:</p>
<ol class="arabic simple">
<li><p>Better English documentation and translation of the UI elements.</p></li>
<li><p>Respect Program Files restrictions by using user profile or even ProgramData files that need to be updated. Better yet, a Windows Store app which is forced to abide by those restrictions.</p></li>
<li><p>HiDPI support and proper scaling - some elements overlap with others when scaling is controlled by application, and all elements are blurry if system controls the scaling on HiDPI screens. Some icons in dialog windows remain extremely small and are hard to distinguish.</p></li>
<li><p>Icons with a consistent style and distinguishing features.</p></li>
<li><p>Reduced number of exclamation points in the UI!</p></li>
</ol>
<p>And with that I conclude my BeckerCAD review and will go spend some time drawing lines <cite>Relativ to Foot Point</cite>.</p>
</section>