Points to consider while developing regression suite for CAD Projects

As the development of software makes its progress, there comes a stage where it needs to be evaluated before concluding it as the final output. This phase is usually known as testing. Testing detects and pinpoints the bugs and errors in the software, which eventually leads to rectification measures. There are instances where the rectifications bring in new errors, thus sending it back to another round of testing, hence creating a repeating loop. This repeated testing of an already tested application to detect errors resulting from changes has a term — Regression Testing.

Regression testing is the selective retesting of an application to ensure that modifications carried out has not caused unintended effects in the previously working application.

In simple words, to ensure all the old functionalities are still running correctly with new changes.

This is a very common step in any software development process by testers. Regression testing is required in the following scenarios:

  • If the code is modified owing to changes in requirements
  • If a new functionality is added
  • While rectifying errors
  • While fixing performance related issues

Although, every software application requires regression testing, there are specific points that apply to different applications, based on their functioning and utility. Computer-Aided design or CAD software applications require specific points to keep in mind before undergoing regression testing.

Regression testing can be broadly classified into two categories, UI Testing and Functionality Testing. UI testing stands for User Interface which is basically testing an applications graphical interface. Numerous testing tools are available for carrying out UI testing. However, functional testing presents situation for us. This content focuses on the points to take care while carrying out functional regression testing.

Here are most effective points to consider for functional regression testing:

  • It is important to know what exactly needs to be tested and the plans or procedures for the testing. Collect the information and test the critical things first.
  • It is important to be aware of market demands for product development. Document or matrix should be prepared to link the product to the requirement and to the test cases. Matrices should be modified as per the changes in requirement.
  • Include the test cases for functionalities which have undergone more and recent changes.
    It’s difficult to keep writing (modifying) test cases, as the application keeps on getting updated often, which leads to some internal defects and changes into the code which in turn might break some already existing functionalities.
  • It is preferred to run the functionality testing in the background mode (non-UI mode) because often it is faster and eliminates problems associated with display settings on different machines.
  • One needs to lay down precise definitions of the output parameters that are of interest. Anything from the number of faces, surface area, volume, weight, centre of gravity, surface normal, curvature at a particular point etc. It is always a good idea to have a quantifiable output parameter that can be compared.
  • It is often advisable to develop a utility to write the parameters that are of interest in an output file it could be text, CSV or xml file.
  • Creating baseline versions of output data files is a good idea to visually see every part for which the baseline data is created.
  • Developing automation script enables the entire test suite to run without any manual intervention and the results can be compared.
  • Compare the output data generated with the baseline version, for every run of test case, for it is very important to keep in mind that if there are doubles or floats in the output data, tolerance plays a very important role.
  • Some areas in the application are highly prone to errors; so much that they usually fail with even a minute change in code. It is advisable to keep a track of failing test cases and cover them in regression test suite.

Failure to address performance issues can hamper the functionality and success of your application, with unwelcome consequences for end users if your application doesn’t perform to expectations.

Read More

The Reverse Engineering process

Sometimes, situations arise where you don’t have access to a part’s original design documentation from its original production. This might be due to the absence of the original manufacturer altogether or stoppage on the production itself.

Reverse engineering empowers us to analyze a physical part and explore how it was originally built to replicate, create variations, or improve on the design. The goal is to ultimately create a new CAD model for use in manufacturing.

Let us take a look at the steps involved in reverse engineering. Commonly, it involves careful executions of the following steps:

  • Scanning

The first step involves using a 3D scanner for collecting the geometric measurements and dimensions of the existing part quickly and accurately using projected light patterns and camera system. Generally, the types of scanners used for such execution are blue light scanner, white light scanner, CT scanner and /or laser scanner. The former two captures the outward dimension and measurements while the latter two is capable of scanning the entire inside out.

  • Point Cloud

Once a certain part is scanned, the data gets transformed in the form of point clouds. Point cloud is a 3D visualization consisting of thousands or even millions of points. Point clouds define the shape of a physical system.

  • Meshing/Triangulation

This stage serves involves conversion of point clouds to mesh (STL or Stereolithographic format). Mesh generation is the practice of converting the given set of points into a consistent polygonal model that generates vertices, edges and faces that only meet at shared edges. Common software tools used to merge point clouds are Polyworks, Geomagic, ImageWare, MeshLab. The meshed part is then run for alignment in the mentioned software tools.

  • Parametric/Non-parametric Modeling

After the meshed part is aligned, it goes through either of two stages. The first option involves applying surface modeling on meshed part in tools such as Polyworks. It results in the generation of non-parametric model (IGES or STEP format). An alternate option is creating a sketch of the meshed part instead of putting it through surfacing. This work-process is known as parametric modeling (.PRT format). For a non parametric model, predicting future data is based on not just the parameters but also in the current state of data that has been observed. For a parametric model to predict new data, knowing just the parameters is enough.

  • CAD Modeling

The next stage consists of transferring the data through CAD software tools such as NX, Catia, Solidworks, Creo etc, for applying functions such as ‘stitch’, ‘sew’, ‘knit’, ‘trim’, ‘extrude’, ‘revolve’ etc for creation of 3D CAD model.

  • Inspection

This stage includes visual computer model inspections and alignment of the merged models against actual scanned parts (STL) for any discrepancies in the geometry as well as dimensions. Generally, inspection is carried out by using tools such as Polyworks or Geomagic. Reverse engineering inspection provides sufficient information to check tolerances, dimensions and other information relevant to the project.

  • Documentation

Documentation of 3D stage model depends solely on one’s technical/business requirements. This step is about converting 3D model to 2D sketch, usually with the help of tools such as inventor or Isodraw/Coraldraw, citing measurements which can be used for reference in the future.

 

Read More

Three-Dimensional (3D) CAD Formats

Every CAD design/model, upon completion, is stored in a respective file format. A 3D file format stores information about 3D models in plain text or binary data. The 3D formats encode a model’s

geometry, which describes its shape,

scene, which includes position of light and peripheral objects;

appearance, which means colors and textures;

and animations, which defines how a 3D model moves.

Not every 3D format stores all such data. Each software comes with its 3D file formats. However, every software has a different file format due to many reasons such as cost, feature, etc. It is necessary for any two software to enable interchangeability/interoperability to make things work. Some of the popular 3D file formats are STL, OBJ, FBX, COLLADA, etc. Each industry comes with its version of 3D file formats. This article gives a brief description of 3D file formats.

 

A 3D CAD model

 

SALIENT FEATURES OF 3D FILE FORMATS

Considering there are different file types, it is essential to understand the various properties. Different file types allow CAD model viewing in different ways. Some CAD files are limited to only 2D viewing to show the end customer. Following are the main features of 3D file formats:

Proprietary or neutral

The two main types of file format are – proprietary and neutral. All CAD design software uses a proprietary file type. This file type is specific to that particular software. Generally, such file types can only be viewed using the same software it was created with. However, it won’t open in a completely different design program. Proprietary files could be used in intercompany tasks.

Neutral files, on the other hand, are designed to be interoperable. Hence they can be viewed on a multitude of programs. Neutral data come in handy if the document is being distributed to end-users who don’t use CAD software.

Precise or tessellated

CAD designs are displayed in two different ways, namely, precise or tessellated. The difference lies in the fact that the product that is viewed while designing looks quite different from the actual product in real life. It is particularly noticeable in the case of lines and edges that form the product shape. This differentiates between precise drawings versus tessellated drawings.

To create a product, CAD software uses precise lines and angles to complete complex manufacturing processes. Such specific instructions have to be included in a file format to edit the actual drawing or change its design. While displaying a CAD drawing for visual purposes, the lines and edges are tessellated.

Type of assembly

Multi-part designs present a complicated situation while choosing a file format. Depending on the type of file format, multi-part product design may be limited to one single file for the whole assembly. Alternatively, designers also opt for separate files for each component. Awareness of how a particular software will display a multi-part product or if it will display a multi-part product is essential.

Parts Listings

CAD designs accompany models with a list of parts. Different 3D file formats come up with different ways of showing parts list. Two main types of parts list displays are Bill of Material (BOM) and flat list. A bill of material showcases a single part and all its positions in a drawing. A flat list shows all parts individually.

Now that the different features of 3D CAD file formats have been explained, let us walk through some of the popular and most used file formats out there.

NEUTRAL FILE FORMATS

To counter interoperability, neutral file formats, also called open source formats, are used as intermediate formats for converting between two proprietary formats. Naturally, these formats are widely used nowadays. Two known examples of neutral formats are STL (with a .STL extension) and COLLADA (with a .DAE extension).  They are used to share models across CAD software.

3D CAD file formats generally fall into two categories: Native or Neutral file formats.

  • Native file formats are exclusive to particular CAD software, which can be used with the respective software only.
  • Neutral or Standards were explicitly created to enable interoperability, which helps the exchange of files between different CAD software. Neutral file formats allow easier transfer of files with someone who uses different CAD software.
DIFFERENT 3D FILE FORMATS
  • STEP: STEP is the most recommended and widely used of 3D file Formats. It is an ISO 10303-21 certified standard. Most of the software support STEP importing and exporting.
  • IGES: IGES is the abbreviation for Initial Graphics Exchange Specification. It is a vendor-neutral file format. Using IGES, a CAD user can exchange 3D models in the form of circuit diagrams, wireframe, or solid models. Applications backed by IGES include traditional engineering drawings, analysis models, and other manufacturing functions
  • Parasolid: Parasolid, initially developed by ShapeData, is now owned by Siemens PLM Software. It is licensed to other companies for use in their 3D computer graphics software products.
  • STL: STL, which stands for stereolithography, is the universal format for pure 3D information. It is used in 3D printers and somewhat loved by CAM. STL denotes only the surface geometry of a 3D object without any representation of color, texture, or other common CAD model attributes.
  • VRML: VRML stands for Virtual Reality Modeling Language. It is a standard file format for representing 3D interactive vector graphics.
  • X3D: X3D is an ISO standard XML-based file format for representing 3D computer graphics. X3D features extensions to VRML (e.g., CAD, Geospatial, NURBS, etc.).
  • DXF: DXF stands for Drawing Interchange Format, or Drawing Exchange Format. It is a simple 2D format and technically should be viewed as a Native format. It is Autocad’s native 2D format.
Read More

Types of Geometric Modeling

The previous edition gave a brief introduction of Geometric Modeling and its features. Geometric modeling is the mathematical representation of an object’s geometry. It incorporates the use of curves to create models. It can be viewed either in 2D or 3D perspective.

This edition details the primary types of geometric modeling. Geometric modeling can be classified into the following:

SOLID MODELING

Also known as volume modeling, this is the most widely used method as it provides a complete description of solid modeling. Solid modeling defines an object by its nodes, edges, and surfaces;  therefore, it gives a perfect and explicit mathematical representation of a precisely enclosed and filled volume. Solid modeling requires the use of topology rules to guarantee that all surfaces are stitched together correctly. This geometry modeling procedure is based upon the “Half-Space” concept.

 

Solid Modeling

 

There are two prevalent ways for representing solid models –

Constructive solid geometry: Constructive solid geometry is a combination of primary solid objects (prism, cylinder, cone, sphere, etc.). These shapes are either added or deleted to form the final solid shape.

Boundary representation: In boundary representation, an object’s definition is determined by their spatial boundaries. It describes the points, edges, surfaces of a volume, and issues command to rotate, sweep a binds facets into a third dimensional solid. The union of these surfaces enables the formation of a surface that explicitly encloses a volume.

Solid Modeling is the most widely used geometric modeling in three dimensions, and it serves the following purpose:

  • Solid modeling supports weight or volume calculation, centroids, moments of inertia calculation, stress analysis, heat conduction calculations, dynamic analysis, system dynamics analysis.
  • Solid modeling supports the generation of codes, robotic and assembly simulation
  • Solid modeling stores both geometric and topological information; can verify if the two objects occupy same space
  • Solid modeling improves the quality of design, enhances visualization, and has the potential for functional automation and integration.

 Different solid modeling techniques are as follows:

  • Constructive Solid Geometry
  • Boundary Representation
  • Feature-based modeling
  • Primitive Instancing
  • Cell decomposition, spatial enumeration, octree
SURFACE MODELING

Surface modeling represents the solid appearing object. Although it is a complicated method of representation than wireframe modeling, it is not as refined as solid modeling. Although surface models and solid models look identical, the former cannot be sliced open the way solid models can be. This model makes use of B-splines and Bezier for controlling curves.

 

 

Surface Modeling

 

 

A typical surface modeling process involves the following steps:

  •  Generation of a model combining the three-dimensional surfaces and solids
  • Conversion of the model to surfaces, taking advantage of associative modeling
  • Validation of imperfections with surface analysis tools
  • Reconstructing surfaces of objects to apply smoothness to the object

Surface modeling is used to:

  • To shape design and representation of complicated objects such as a car, ship, and airplane bodies as well as castings
  • There are situations where models imported from another CAD system usually lack details of the features it is comprised of. If the surfaces are complex, applying changes to this type of geometry can be quite the task. In such cases, surface modeling techniques can be used to one or more faces of the model to make the desired changes.
  • Surface modeling enables building one face at a time so that one can control the exact contour and direction of any face. This feature comes in handy at a time when solid modeling technique fails to create the complex shape of a feature as it builds up several sides of shape at once.
  • As it is not limited to the direct construction of a model face, surfaces can also be used as a reference geometry in a transitional step towards the creation of the required model face.
  • Now, there is another modeling technique which requires a combination of solid and surface modeling techniques to create a solid model. This technique generally involves starting the model as a solid and using surfaces to modify it. Or, changing the solid to surfaces to shape and contour it, then turning it back to a solid when done.
WIREFRAME MODELING

The wireframe model is perhaps one of the earliest ways of representing a solid model. It consists of vertices and lines and is a skeletal representation of a real-world 3D object. It was developed back in the 1960s; it is also referred to as “Stick figure” or “edge representation.”

 

Wireframe Modeling

 

The lines within a wireframe connect to create polygons, such as triangles and rectangles, that represent three-dimensional shapes when bound together. The outcome may range from a cube to a complex three-dimensional scene with people and objects. The number of polygons within a model is a good indicator of how detailed the wireframe 3D model is.

Wireframe modeling helps in matching a 3D drawing model to its reference. It allows the creator to match the vertex points, so they are in alignment with the desired reference and see the reference through the model as well. Although Wireframe modeling is a quick and easy way to demonstrate concepts, creating a fully detailed, precisely constructed model for an idea can be extremely time-consuming, and if it does not match what was visualized for the project, all that time and effort was wasted. In wireframe modeling, one can skip the detailed work and present a very skeletal framework that is simple to create and is apprehensible to others.

Read More

What is CAD Customization

There is no doubt computer-aided design or CAD software has changed the game of manufacturing altogether. Manufacturing industry has been using CAD software for sometimes now. These are the times when engineering departments, R&D centres & Design departments use Computer-Aided design (CAD) to ease up the product development process, thereby reducing the entire cycle time. CAD software makes our working fast, efficient & accurate.

While CAD software comes with its own offering of general tools, it is a bit hard to fathom what each individual user may find useful to accomplish very specific tasks. Such limitations have pushed the minds of developers of the CAD systems to come up with the capability of customizing their software to cater to the needs. With customization, it is possible to modify or create new tools that are better suited to our needs. One of the great improvements we can get with customization is to replace a series of commands with a single tool that accomplishes the task.

CAD customization is the activity of creating specific enhancements or tools to support CAD software.

As name suggests, CAD customization means customizing or configuring OOTB (out of the box) CAD software to suit the specific needs of a particular organization.

CAD customization predominantly involves developing supporting tools for CAD software. It is mostly customised which means it is suited to a clients particular requirements. CAD software built en-masse might not satisfy the needs of every requirement, as many organizations have their own specific criteria. That is when customizing CAD software comes into play. Customizing existing CAD software is perhaps the fastest and most economic way of getting the work done. 

Steps for Creating a Customization

Before developing customized CAD software, make some preparations as follows:

  • Try your hands on a few simple drawings; follow a tutorial to see how the commands work.
  • Understand the kind of work the user does, identify the issues he is facing, ask for features the user would like to have.
  • Examine the available customization tools and find the most effective way to get the job done.
  • An deep understanding of the function library is an absolutely necessary condition for customization.
  • Use Software Engineering methods to plan the development of the customized system.
How CAD Customization is done

Most CAD systems provide the following two mechanisms

  • Record-Edit-Play of a macro or VB code

VBA stands for Visual Basic Applications, which is an event driven programming language by Microsoft. It also allows integration with other applications that use VBA. The implementation of VBA in CAD customization is easy to learn and use. Developers can create application prototypes and receive feedback on designs quickly. VBA provides an extremely efficient way for manipulating CAD objects and exchanging data with other applications.

  • Develop an Add-On using Open APIs or toolkits

Another method for customizing CAD software is by developing add-ons using open source API’s and toolkits. One can develop API implementations by using a developer toolkit. Nowadays, many API’s come as open source which makes the whole operation a lot smoother. API’s can be fabricated as per the requirements and can be applied as an added feature. One important factor is that, the API must be compatible with the said CAD software.

Benefits of CAD Customization

Customization of CAD software has indeed introduced us to many benefits which are as follows:

  • Access to a functionality that does not exist in the OOTB package
  • Improving the efficiency of the team by providing tools for faster development
  • Reducing the manual error in performing many tasks
  • Reducing the skill requirement of the operator (A wizard for a process can allow a user with relatively less experience to complete the tasks)
  • Capture and protect the proprietary domain knowledge in a custom command/wizard
  • By applying time saving automation, it increases productivity
  • Reduces workload by huge proportions eliminating tedious tasks, data entries, and numerous repetitive steps.
  • The usage of custom made algorithms helps in reducing errors
  • Customization is a great mean to integrate a software with latest technologies
Read More

Why CAD Customization is needed

As previously stated; one might encounter complex design situations in engineering scenarios. Earlier, designs were drawn on sheets with pen and necessary scaling instruments and manufactured manually using old school techniques. But now, with the advent of CAD customization, the entire work-process has become easier and smoother than ever.

When CAD customization is integrated in CAD software application, a number of advantages occur. With CAD customization, the production of a drawing and design of a mechanical component can be generated with great accuracy. This facilitates the engineers to have tools to make quick modifications to any issues found in the design. The design can be customized according to the needs outlined before or after the CAD design is generated.

Need for CAD Customization
  • Implementing a functionality that does not exist in the OOTB package: The activity of CAD customization is carried out when a particular organization needs tailor made CAD software to address their need. It might be a separate functionality that a specific task needs or it might be about a format.
  • Repetitive tasks can be done in a single click: Working on a product using CAD software can involves repetitive actions. This often ends up consuming a lot of time. Although, most CAD software provides generic features, one can have it customized for specific functions that repeat more like a loop.
  • Checklist for inspection can be customized: You can reinvent the way you conduct by creating smart inspection templates. This aids in streamlining the quality and documentation processes even more.
  • Wizards can be created for guiding the use through the complete workflow: Wizards are used to properly set something up. In some cases, wizards are used for setting up all tool-path and drilling operations within the CAD-CAM system. CAD customization can setup automated wizards for carrying out repetitive tasks and regression testing without having to put in extra emphasis and time on those, thus completing a workflow without human intervention.
  • Big time saving impact: Companies have the capability to automate design, process, and systems integration when customizing CAD software. With customization of CAD functions, companies automate redundant tasks and experience great time savings.
  • Core focus on product development: CAD customization allows engineers to keep their prime focus on product development without having to worry about support functions.
  • CAD Customization effect on digital thread: CAD customization and automation of CAD software propels advancement in areas such as the digital thread.
Challenges with CAD customization

Like every other entity out there, CAD customization comes with its own drawback. One big challenge with CAD customization is keeping it in sync with the latest technology in the market. Also, every CAD software is gets its new releases so it becomes quite hectic to keep a check and customizing accordingly. We have learned before how add-ons/plug-ins has been introduced to add new features to CAD software. Such add-ons are also prone to updates which need to be worked upon to make it compatible with customized software. Modern technology, however, is working its way towards making the process of updating and customizing a more lenient process.

 

Read More

Page 2 of 2