New Application Development – Addon vs Standalone
At the starting phase of developing an application, the primary question usually comes like this—whether to make it an add-on application or a standalone application? Before we get into the details, we need to understand what exactly these two terms mean in the computing world. An add-on (also known as addon or plug-in) is a software application, which is added to an existing computer program to introduce specific features. As per Microsoft’s style guide, the term add-on is supposed to represent the hardware features while add-ins should be used only for software utilities, although these guidelines are not really followed as terms are mixed up quite often. When a program supports add-ons, it usually means it supports customization. Web browsers have always supported the installation of different add-ons to suit the tastes and topics of different users by customizing the look and feel of that particular browser. There are many reasons for introducing add-ons in computer applications. The primary reasons are: Usually, the host applications operate independently, which makes it possible for developers to add and update add-on features without impacting the host application itself. A host application doesn’t depend on add-ons but on the contrary, an add-on depends on the host application. Add-ons usually depend on the services provided by the host application and cannot operate by themselves. A Standalone application is the type software that doesn’t comes bundled with other independent software features. In simple words, a standalone application does not require any separate software to operate. A stand-alone application deploys services locally, uses the services, and terminates the services when they are no longer needed. If an application does not need to interact with any other applications, then it can be a stand-alone application with its own exclusive local service deployment. Services locally deployed by this application are not available to any other application. A standalone application needs to be installed on every system which makes it hard to maintain. In the event of a system crash or a virus attack, when a system needs to be replaced or reinstalled, the application also needs to be reinstalled. The access to the application is limited only to the systems that have the application installed. Standalone applications can never be kept online, and remote availability of data is practically impossible. However, there are situations where standalone application is the best choice. Here are a few:
Read MoreFive 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 MoreWhat is CAD | Types of CAD Models and CAD Formats
Table of content What is CAD? Types of CAD models Types of CAD formats Use of CAD What is CAD? Computer-Aided Design, aka CAD, is undoubtedly a crucial stage in product development. By definition, CAD is the acronym for Computer-Aided Design. It covers various design tools used by multiple professionals like artists, game designers, manufacturers, and design engineers. After a meshed part is aligned, it goes through surface modeling in tools such as Polyworks. It generates a non-parametric model (IGES or STEP format) or parametric modeling where a sketch of the meshed part is created instead of putting it through surfacing (.PRT format). The resultant is generally called a 3D computer-aided model or CAD model. The technology of CAD systems has tremendously helped users by performing thousands of complex geometrical calculations in the background without anyone dropping a sweat for it. CAD has its origin in early 2D drawings where one could draw objects using basic views: top, bottom, left, right, front, back, and the angled isometric view. 3D CAD programs allow users to take 2D pictures and convert them into a 3D object on the screen. In a simple definition, CAD design is converting primary design data into a more perceptible and more understandable design. Each CAD system has its algorithm for describing geometry mathematically and structurally. Types of CAD models. Everything comes with its variety, and CAD modeling is no stranger. As the technology evolved, CAD modeling came up in different styles. There are many methods of classifying them, but a broad general classification can be as follows: Two-dimensional or 2D CAD: The early version of CAD that most of us are aware of. These are 2-dimensional drawings on a flat sheet with dimensions, layouts, and other information needed to manufacture the object. The 2D CAD objects consist of lines, ovals, circles, ovals, curves, and slots. 2D CAD platforms generally come with a library of geometric images and the ability to create Bezier curves, polylines, and splines. They are also capable of generating a bill of materials (BOM). 2.5D CAD:The 2.5 D CAD are prismatic, which means they represent the depth of an object. They fall between 2D and 3D CAD, and the objects consist of geometric patterns like in 2D CAD. Three-dimensional or 3D CAD:The purpose of both 2D and 3D models is the same. But what sets 3D models apart is their ability to present more excellent details about the individual component and assembly by projecting it as a full-scale 3-dimensional object. 3D CAD offers a realistic portrayal of the CAD model. 3D models can be viewed and rotated in X, Y, or Z axes. It also shows how two objects can fit and operate, which is impossible with 2D CAD. 3D models can be further classified into three categories: 3D Wire-frame Models:These models resemble an entire object made of just wires, with the background visible through the skeletal structure. Surface Models:Surface models are the next stage of wireframe models, and they are created by joining the 3D surfaces together and look like real-life objects. Solid Models:They best represent real physical objects in a virtual environment. Unlike other models, solid models have weight, volume, and density properties. They are the most used models and serve as prototypes for engineering projects. The Boundary Representation (BREP) solid modeling links Constructive Solid Geometry (CSG) images while a hybrid systems mix CSG and BREP to attain the intended design. Types of CAD formats Different professionals use different software platforms for various reasons like cost, project requirements, features, etc. Although the software comes with its file formats, there are instances where one needs to share their project with someone else, either partners or clients, who are using different software. In such cases, it is necessary that both parties’ software understand each other’s file formats or, in other words, interoperable. As a result of this situation, it is essential to have file formats that can be accommodated in various software. CAD file formats can be broadly classified into two types: STEP: This is the most popular CAD file format of all. It is widely used and highly recommended as most software support STEP files. STEP is the acronym for Standard for the Exchange of Product Data. IGES: IGES is the acronym for Initial Graphics Exchange Specification. It is an old CAD file format that is vendor-neutral. IGES has fallen out lately since it lacks many features that newer file formats have. Parasolid: Parasolid was initially developed by Shape Data and is currently owned by Siemens PLM Software. STL: STL stands for Stereolithography which is the format for 3D information created by 3D systems. STL finds its usage mostly in 3D printers. STL describes only the outer structure or surface geometry of a physical object but doesn’t give out the color, texture, and other attributes of an object. VRML: VRML stands for Virtual Reality Modeling Language. Although it gives back more attributes than STL, a handful of software can read it. Prototyping & pilot runs (preliminary design stage) In this stage, prototypes are built and tested after several iterations, and a pilot run of the manufacturing process is conducted. This stage involves creating rapid prototypes for a concept deemed to have business relevance and value. Prototype means a ‘quick and dirty’ model rather than a refined one that will be tested and marketed later. Adjustments are carried out as required before finalizing the design. X3D: X3D is an XML-based file format for representing 3D computer graphics. COLLADA: COLLADA stands for Collaborative Design Activity and is mostly used in gaming and 3D modeling. DXF: DXF stands for Drawing Exchange Format, a pure 2D file format native to AutoCAD. Use of CAD CAD technology has placed the entire engineering process in an adrenaline mode. It is possible to mold or fold, modify, or make a new part from scratch, all with the help of CAD modeling software. The many uses of CAD are as follows:CAD generates design and layouts, details and calculations, and 3-D
Read MoreMesh – List of operations
Good cell quality of meshes translate into accurate results within optimum time after computation. But more often than not, we get a mesh output, which is far from accuracy. There are number of factors affecting a mesh, that might compromise with the final result. This chapter focuses on the various shortcomings of a mesh and their repair algorithms. Mesh Decimation/Simplification Mesh decimation/simplification is the method of reducing the number of elements used in a mesh while maintaining the overall shape, volume and boundaries preserved as much as possible. It is a type of algorithm that aims to transform a given mesh into another with fewer elements (faces, edges and vertices). The decimation process usually involves a set of user-defined quality criteria, that maintains specific properties of the original mesh as much as possible. This process reduces the complexity of a mesh. Mesh Hole-Filling To analyze a mesh model, it must be complete. Often, some mesh models carry holes in them, which must be filled. The unseen areas of the model appear as holes, which are aesthetically unsatisfying and can be a hindrance to algorithms that expect a continues mesh. The Fill Hole command fills the holes and gaps in the mesh. Note – The Fill Hole command only works on triangulated mesh and not tetrahedral mesh Mesh Refinement Certain situations arise which makes us concerned about the accuracy a model in certain areas. Such scenarios prompt us to have fine mesh in those areas to ensure accurate results. However, creating a surface mesh of the entire model with a fine mesh size may ask for unnecessary hours to analyze the fine mesh in those regions where the results are not as important to you. The answer to this issue is the usage of refinement points. A refinement point identifies a region or volume of space in which a finer mesh has to be generated. Mesh refinement can be defined by identifying an absolute size for the local mesh. Mesh refinement ends up in creating more number of elements in the specified region of the model. Mesh Smoothing Mesh smoothing is also known as mesh relaxation. Sometimes it is necessary to modify that mesh after a mesh generation. It is achieved either by changing the positions of the nodes or by removing the mesh altogether. Mesh smoothing results in the modification of mesh point positions, while the topology remains as it is.
Read More