The JOIN command in BricsCAD has been around since V12. The Release Notes of V 14.1.11, the most recent update as on today, says that this command has been completely re-implemented from scratch. I have not been keenly following the JOIN command earlier but today I took a deep look at it and reviewed this command. I figured out that the best way to do it would be to read the Release Notes and check if it really does what it says.
This new implementation allows to join any of the following curves at their common endpoints: lines, LW polylines, 2D polylines, 3D polylines, circular arcs, elliptical arcs, splines, helixes.
Construction lines, rays and closed curves cannot be joined, for obvious reasons.
- The type of the resulting entity depends on the types of the input entities and on their coplanarity. Entities that are on different planes cannot be joined.
- If lines are collinear they will be joined into a line, even if there are gaps between them. I like this feature. It is something we have been providing to users through small macros and utilities for many years now. BricsCAD finally does it. I tested this tool on entities having extended data attached to it. Any XDATA contained in the source entity is preserved and carried to the resulting joined entity but any XDATA from the target object is lost.
- If coplanar circular arcs have the same radius and center points, they will be joined into a circular arc or circle, even if there are gaps between them. Please be aware that the joining happens in an anti-clockwise manner, and this may not always be what you expect to see as the desired end result. For example, if two arcs are close to each other, they may be joined from the longer circular path behind if that happens to be the counter-clockwise direction.
- If coplanar elliptical arcs have the same major and minor axes, they will be joined into an elliptical arc or ellipse, even if there are gaps between them. The same rules apply - about the counter-clockwise direction of joining.
- Circular and elliptical arcs are joined in a counterclockwise direction starting from the source arc.
- The result of joining two 2D polylines is a 2D polyline if they are coplanar. Else, if the 2D polylines only have straight segments the result is a 3D polyline. If at least one of the polylines has bulged segments the result will be a spline. I like this intuitive behaviour. This is how most users would like it to function.
- The result of joining a coplanar line and circular arc is a 2D polyline, if not coplanar the result is a spline.
- the result of joining a line and an elliptical arc is a spline.
- the result of joining a spline and an elliptical arc is a spline.
- the result of joining a 2D polyline and a 3D polyline is a 2D polyline if the input polylines are coplanar. Otherwise the result is a 3D polyline if the 2D polyline only has straight segments or a spline if the 2D polyline has bulged segments. The command works well, but remember the word coplanar in the release notes. Even if either or both the polylines are a 3d polyline, the resulting joined polyline will still be a 2d polyline if all vertices are co-planar. This may not be exactly what one would expect but that is how it is implemented.
- the result of joining a helix and a circular arc is a spline.
Follow us on Twitter: https://www.twitter.com/rakesh_rao