Five points to consider for a CAD Software Development Process

In any software development process, the methodology involved is more or less the same. The most generic requirements are developers, preferred programming language, testers and carefully planned set of actions to perform. The same can be applied to development of CAD software as well.

Having CAD software that can actually meet product development needs is an obvious necessity. Although, there is a lot of common ground between a CAD software development project and a regular software development project, there are criteria very specific to CAD software development projects which needs to be addressed.

Let us take a walkthrough:

  • Acceptance Criteria
    Acceptance criteria are a list that mentions user requirements and product scenarios, one by one. Acceptance criteria explain conditions under which the user requirements are desired, thus getting rid of any uncertainty of the client’s expectations and misunderstandings. However, defining acceptance criteria is not simple, but has its complications. Also, it is not convenient to expect a 100% pass rate. In such case, an ideal way is to have a set of test cases with defined input and output data.
  • Algorithmic Complexities
    To successfully develop a complex product, two critical questions must be answered, how to develop the right product and how to develop the product right.Unlike some of the other problems like interest rate calculations or workflow management system, there is not a defined set of steps that results in the final answer. There are often multiple algorithms for a single issue and the situation becomes more complicated when a particular algorithm, deemed to be perfect for a given situation, may not perform that well in a different scenario, which often leads to trade offs.
  • Tolerances
    Tolerance is one of the factors to evaluate product quality and cost. It has a significant role. As tight tolerance assignment ensures design requirements in terms of function and quality, it also induces more requirements in manufacturing, inspection and service that results in higher production cost. Most of CAD data works on variables that are doubles and floats and Floating point precision, Tolerance plays a very important role in the algorithms. When using data from other systems say STEP file from other source, if there is a mismatch in the tolerance, the destination system can cause lot of issues.
  • Risk of Regression
    Adding a new functionality or improving an algorithm always has a risk of impacting the test cases that were working before the fixes. One should always develop a robust test suite for catching regressions while carrying out testing. To create a regression test case suite one must have thorough application knowledge or complete understanding of the product flow.
  • Interoperability
    The quick emergence of varied CAD software has led designers to democratize, leading to the usage of multiple CAD systems in the design process, thus challenging the CAD interoperability aggressively. Different suppliers require different CAD platforms. It depends on many factors, primarily the nature of the task and product upon which it has to work. Merging different CAD data together without affecting the design intent is quite the hassle. Although, a lot of software these days support different CAD files, there are instances, where the particulars of a project has made the product confined to that one CAD software. Interoperability eases up extra work and whether to make your own software compatible with other, is a decision that should be seriously taken into account.
Read More

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

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