CAD-Zilla is a very "low level" CAD program: although it contains some sophisticated geometrical modeling abilities, it does not contain high-level connections between ideas and geometry such as a door frame builder, or engine block builder. These types of features may be added in the future through specialized application modules. An example of an idea to geometry tool already in the Modelzilla family is VincentVanMol, a molecular graphics program that maps the ideas of macro molecular chemistry to geometrical models in a convenient and specialized way.
Typical users of a CAD program, mechanical engineers and architects, are farmiliar with the idea controling a geometric shape, because they design in shapes. CAD-Zilla is a powerfull builder of shapes. It can create anything AutoCAD v13 could and more. However, CAD-Zilla finds it self as a Modelzilla application, so its user might be a scientist that struggles with the idea of design. Visualization and presentation is what they want to do. Hopefully they will find CAD-Zilla a usefull tool when used together with other applications in the Modelzilla universe. One could design a presentation, an imagined physical model, or as a tool to prepare input to a more specialied tool. Geometry is everywhere, and CAD-Zilla is Modelzilla's most general tool.
The principal types of geometry in CAD-Zilla are:
All geometrical objects in CAD-Zilla from polygons to solids are created within the current user coordinate system (UCS). This means that if the UCS is currently 50 units to the left and rotated to funny orientation, the new objects created with CAD-Zilla will have this transformation matrix copied to their coordinate system. Any specifying points, vectors etc. will be with respect to this coordinate system. This system is esspecially evident in planar polygons, which will not depend on any z value of the input points.
Most operations in CAD-Zilla result in a continued association between the input geometries and the resultant geometries. Resultant geometries are re-computed if the input objects are changed or moved. CAD-Zilla makes use of the dependancy tracking system of the Modelzilla database to achive this.
Value entry devices take input from a variety of sources. They may take mouse input from the viewport, looking at the mouse position to calculate a value. They may have a text entry field. They may have traditional scrollbar.
Data entry devices may have several methods of finalizing the value, causing the next entry device in the sequence to start. There are:
It is possible to specify the values in a sequential input dialogue out of order if you want to. Just select the entry device, enter the value and finalize it. Do this for each piece of information that needs specification. Although it is possible to specify a the values out of order, it is not recommended because in many cases the setup for entry device is effected by the values entered in the previous entries. For example, in the three dimensional rotator function, the "axis" entry comes before the "angle" entry because the "axis" entry specifies the plane in which angle is be drawn.
The cancel button in the sequential input dialog uses the undo system to remove the current object you building.
The first step to create any polygon is to get the UCS in the right place. If you're going to create a planar polygon, it will live in the X Y plane of the current UCS.
Line from two pointsThis object is specified by two end points. To create a line interactively, pick the first point, and then pick the second point. You will see the line is being updated as you picked second point. Whenever possible, geometries in CAD-Zilla are updated if sufficient information has been specified. See line. |
![]() |
Polyline from point setThis object is specified by set of points. To create online interactively, enter points to add to the polygon. Use the close button to automatically close the polygon. See polyline. |
![]() |
Circle from center and raidusThis object is specified by by a center and radius. See circle. |
![]() |
Ellipse from center and two radiiThis object is specified by a center and two radius values. See ellipse. |
![]() |
Arc from three circumference pointsThis object is specified the point where the arc begins, a point on the arc's circumference, and the point where the arc ends. See arc. |
![]() |
Arc from start direction and endThis object is specified by the point where the arc begins, a point on the tangent from the first point, and the point where the arc ends. See arcSTE. |
![]() |
Arc from start angle, end angle, center, radiusThis object is specified by the start angle, end angle, center, and radius. See arcCRAA. |
![]() |
Rectangle from two pointsThis object is specified by opposite corner points of the rectangle. See rect. |
![]() |
Inscribed regular polygonThis object is specified by a center, raidus, and side count. See inscribed. |
![]() |
Circumscribed regular polygonThis object is specified by center, radius, and side count. See circumscribed. |
![]() |
Parametric polygon functionThis is specified by a parametric function descring x, y and z across a range of s. See paramCurve. Note: This polygon type is currently not working because JPython support for Modelzilla may be removed. We plan on making more general system for this type of need, which would have the user write a small piece of Java code that they would have too keep with their model. If you're in love with JPython let us know. |
Polygon join constructionThe polygon join constructions connects together a number of polygons that were created separately. The polygon should be touching at the end points. The join the algorithm is looking for a minimum distance between the set of polygons in the join, so polygons do not actually have to be exactly touching, however endpoints that are not touching they may be moved in a surprising ways. The input polygons become a part of the join object. If the inputs are chaged the join will be changed as well. See joinPoly. |
![]() |
Break operationThe break operation takes a set of polygons and a set of boundaries. The given polygons are broken into multiple polygons where they intersect the boundary polygons. No relationships are keeped. See breakPoly. |
![]() |
Extend operationThe extend operation extends the end point of the polygon to the boundary. If the polygon has an analytical representation the extension will be added along the direction of the tangent at the end of the extended polygon. No relationships are keeped. See extendPoly. |
![]() |
Trim operationThe trim operation works something like a break operation, except it removes segments between boundaries. See trimPoly. |
![]() |
Extend to point operationThe extend to point operation extends input polygons to their extrapolated intersection point. No relationships are keeped. See intersectExtendPoly. |
![]() |
Smooth constructionThe smooth construction makes a smooth polygon using B-Splines. The input polygon becomes a piece of the smooth polygon. If the input is changed the smooth polygon follows. See smoothPoly. |
![]() |
Fillet effectorThe filled operation rounds the corner of a sharp polygon vertex. Note it is possible to select only a user vertex to fillet, as opposed to computed vertices, because computed verticies may come and go. The relationship is keped with a fillet effector object. The input polygon is not reparented. See filletPoly. |
![]() |
Offset constructionThe offset construction creates a polygon offset object that is tangent everywhere to the source object. The input polygon becomes part of the offset. See offset. |
![]() |
The poly-curve functionThis function is a convenient way to construct a variety of polygon types and automatically join them as they are drawn. See polyCurve. |
![]() |
Region from polygonThis is a region specified by set of polygon boundaries. The only requirement is that the boundaries must not intersect and they must be approximatly in the same plane, because the z component will be ignored. The resulting region may be discontinuous and may have holes. The input polygons become a part of the region object. See region. |
![]() |
Region of unionThis is a region specified by a union of other regions. The input region becomes part of the union object. The computed region will have area everywhere there was area in any (not all) of the input regions. The input regions become a part of the union object. See unionRegions. |
![]() |
Region of subtractionThis is a region specified by subtraction of other regions. Two distinct sets of regions are supplied as input: positive regions and negative regions. The computed region has area everywhere the positive regions have area in the negative regions do not have area. The input regions become part of the subtraction object. See subtractRegions |
![]() |
Region of intersectionThis works just like the union and subtraction, except at the computed region will have area where all (not any) input regions have area. The input regions become part of the subtraction object. See intersectRegions. |
![]() |
Box from rectangle and heightThis is specified by two corner points on the base plane, and the height. See box. |
![]() |
Wedge from rectangle and heightThis is specified by two corner points on the base plane, and the height. See wedge. |
![]() |
Sphere from center radiusThis is specified by center point and a radius. See sweep. |
![]() |
Cylinder from center, raidus, and heightThis is specified by center and a radius on a base plane, and a height. See cylinder. |
![]() |
Torus from center and two radiiThis is specified by center and a radius on a base plane, and a tube radius. See torus. |
![]() |
Cone from center, raidus, heightThis is specified by center and a radius on a base plane, and a height. See cone. |
![]() |
Solid of extrusion objectThis is specifed by a set of section objects that can be polygons or regions, and a path vector. The solid is generated by sweeping the sections along a straight line. The inputs become part of the resulting solid. See extrusion. |
![]() |
Solid of revolution objectThe solid of revolution is specifed by a set of section objects that can be polygons or regions, and an axis and angle. The solid is generated by sweeping the sesctions along a circle arc. The inputs become part of the resulting solid. See revolution. |
![]() |
Solid by general path sweep objectThe solid by general past sweep is specifed by a set of section objects that can be polygons or regions, and a path object that must be polygon. The solid is generated by sweeping sections along a polygon. The path polygon should usually be smooth. If the path polygon is a line this function is the same as the solid the extrusion. If the path polygon is a circle arc this function is the same as the solid of revolution. The inputs become part of the resulting solid. See sweep. |
![]() |
Solid by multi section sweep objectThe multi section sweep operation is specifed by a set of section objects that must be polygons, a path object that must be polygon, and guide points that indicates the connectivity between sections. The path takes the sweep from one section to the next. Intermediate sections are calculated as blends of the input sections. The inputs become part of the resulting solid. See msSweep. |
![]() |
Ruled sweep objectThe ruled sweep operation generates a solid from several sections and several paths. The paths should approximately intersect the sections. The paths and the sections essentially have the same relationship as the chord and span framing of an airplane wing. The inputs become part of the resulting solid. See ruledSurface. |
![]() |
Solid of union objectThe solid of union is specifed by a set of solids. It generates a solid that has volume everywhere any of the input solids have volume. The input solids become part of the resulting union. See union. |
![]() |
Solid of sutraction objectThe solid of subtraction is specifed by a set of positive solids, and negative solids. It generates a solid that has volume everywhere the positive input solids has volume, and the negative input solids do not have volume. The input solids become part of the resulting subtraction. See subtraction. |
![]() |
Solid of interseciton objectThe solid of intersection is specifed by a set of solids. It generates a solid that has volume everywhere all input solids have volume. The input solids become part of the resulting. See intersectRegions. |
![]() |
Solid by cleaving objectThis is specifed by a set of solids and a cleaving plane. It generate a solid by cutting an existing solid into with a plane. This is the same as subtracting a very large box from a solid, but it may be faster to use and compute. See cleave. |