CAD – Linux Hint https://linuxhint.com Exploring and Master Linux Ecosystem Fri, 29 Jan 2021 04:08:46 +0000 en-US hourly 1 https://wordpress.org/?v=5.6.2 openSCAD cylinder https://linuxhint.com/openscad_beginner_guide-2/ Mon, 21 Sep 2020 19:04:58 +0000 https://linuxhint.com/?p=68915 When preparing this article, I wanted to find out what people have problems with openSCAD. To my surprise, the most common question was about creating a cylinder. There is a cylinder command that you will learn the details about first. After that, you will see innovative ways to create cylinders to your liking. You can also take away cylinders from other pieces to create more interesting things. Most readers, who come here probably wants to see a hollow cylinder or a tube of some kind. Keep reading, we have lots in store for you.

The cylinder command

If you use the simplest version of the cylinder command, you only need one parameter. This makes one solid uniform cylinder and nothing more. You should note that that cylinder will be of standard radius and the height of the value in the parenthesis. The command has many options though, let’s dig through them.

cylinder( r1 = 20 );
cylinder( r1 = 20, r2 = 5 );
cylinder( r1 = 20, h = 40 );
cylinder( r = 20, h = 40 );
cylinder( r1 = 20, r2 = 5, h = 40, center = true );

The first two cylinders in the code above make no sense because they have no height. A common mistake is when you forget the value and it does not look the way you intended. When you use variables, the same thing happens if you use an undefined variable. In this case for height, but check the console log when you run it.

A Cone

The third one is a cone, the reason is that the r2 value has a standard size. Try the fourth one, and see what happens. The last one creates a cone where you have full control of the dimensions. This one is simple to use for solid cones. You set the two radii and the height and you are done. You can also use the diameter if that suits you better.

The center = true value is valid for the z axle, leaving the cone halfway up from the “ground”. Default is false, which makes the bottom of the cone end up on the “ground” so to speak. You can also choose how close the cones walls are to being circular with the ‘$fn’ parameter.

Hollow cylinder

Hey, wait a minute! This only creates solid pieces, how do I drill holes in them? You ask, thank you! I will tell you. The answer is all in the difference. The command that is. Consider the code below, it contains two cylinders which are embraced with curly brackets and the difference command.

difference(){
    cylinder(r = 30, h = 40);
    cylinder(r = 28, h = 41);
    }

Simply put, when you have several pieces, then you cut away material from the first piece using all the following pieces. In this case, you cut a cylinder out of a cylinder. If you want to cut any other shape out, you can do that also. Try a cube or a sphere! Note the interesting, and sometimes devastating effects the $fn value can have on this code.

Hollow Cone

You can also do this with a cone, just use the double radius values. Since you are defining both cones, you have a lot of control on the final result. The simplest hollow cone is just two cones inside each other with a thickness for the material.

difference() {
    cylinder( r1 = 30, r2 = 12, h = 50);
    cylinder( r1 = 25, r2 = 7, h = 45);
}

This cone is covered at the top, you can open it by simply setting the second height higher than the first. Since you have two cylinders, you can change any of the two. As an example, you can cut a straight hole through it by changing the second cylinder. You can also choose a cube, but be aware this can cut too much material out of the cone.

Pyramid

This may seem irrelevant but it is a useful trick you need to keep in mind as you continue using openSCAD. All cylinders, and other elements, are an approximation of a shape. You read about the $fn parameter earlier, here you take advantage of it. With this in mind, you may think: A Pyramid is a cone with four sides. Correct! use $fn = 4 and you have a cone with four sides, meaning a pyramid.

difference() {
    cylinder(r1 = 30, r2 = 12, h = 40, $fn = 4);
    cylinder(r1 = 25, r2 = 7, h = 35, $fn = 4);
    }

The inner cylinder cuts the same cylinder as the outer one. Until you start playing with the $fn parameter. To get familiar with the effects of this parameter, try to make a four-legged stool. How does the $fn parameter affect the result? Also, how can you cover the top or the bottom?

Combining many

To have a lot of use of cylinders, you should learn how to combine many of them. The final result can be very complex and sometimes even useful. Putting a top on your cylinder is one option. To do this well, you must start using variables. Make it a habit to put them at the top of what you are designing. It makes it easier to make modules later.

thickn = 5;
baser = 30;
topr = 12;
height = 50;


union() {
// The bottom cone
    difference() {
        cylinder(r1 = baser, r2 = topr, h = height);
        cylinder(r1 = baser-thickn, r2 = topr - thickn, h = height + thickn);
        }
// The top ball
    translate([0, 0, height])
     difference(){
       sphere(r = topr);
       sphere(r = topr -thickn);
       translate([0, 0, -topr])
            cube(size = topr*2, center = true);
     }
}

Starting from the top, you have variables. They are for the thickness, base radius, top radius, and height. The union statement brings the pieces together. Inside the braces, you have the cone and then the top ball. Because they are inside the union, they will become one piece at the end. You can do even more when you use many cylinders in many angles.

Making a test tube

Moving on from cones, make a test tube. First, you need to consider what shapes make a test tube. The main part is a cylinder, nothing fancy, just the regular difference between two cylinders. If you set the length as a variable, you can use that value as a reference. You need to know where the tube ends and becomes the half-sphere at the bottom. You will also use the radius for the tube to define the sphere.

tubr = 20;
tubl = 80;
thickn = 2;

   difference() {
    cylinder(r1 = tubr, r2 = tubr, h = tubl);
    cylinder(r1 = tubr - thickn, r2 = tubr - thickn, h = tubl);
   }

Try this and you will have only a simple cylinder, to make the whole tube you need to melt it together with the half sphere. There is no half-sphere in the default openSCAD, you must make it. Use the difference between two spheres to create a hollow sphere, then remove another cube that cuts off the sphere.

difference() {
     sphere(tubr);
     sphere(tubr - thickn);
     translate([0, 0, -tubr])
         cube(size=tubr*2, center = true);
}

Now, you have two separate pieces. The next step is to put them together. Here, you can use the union command. Like the difference command, the union takes all the pieces in order. In union, the order is not as important since it is an addition. The code will look a little ugly because we do not use modules here.

union() {
// Main Tube
difference() {
    cylinder(r1 = tubr, r2 = tubr, h = tubl);
    cylinder(r1 = tubr - thickn, r2 = tubr - thickn, h = tubl);
   }
// Bottom sphere
   translate([0, 0, tubl]) {
       difference() {
            sphere(tubr);
            sphere(tubr - thickn);
            translate([0, 0, -tubr])
                cube(size=tubr*2, center = true);
       }
     }
// Top ring
difference() {
    cylinder(r = tubr + thickn, h = thickn);
    cylinder(r = tubr, h = thickn);
            }
  }

Here we design it upside down, this is up to you. Do what is convenient for the particular case. You can always rotate it when you use it. The top ring has sharp edges, you can remedy this by using a circle and rotate_extrude it. There are other ways to do it, explore, and experiment!

rotate_extrude(convexity = 10, $fn = 100)
translate([tubr, 0, 0])
circle(r = thickn, $fn =100);

Combining Many cylinders

Once you have made a tube out of several cylinders, you may also want to connect them in different ways. To do this, you can use a union again. Let’s say you want one tube in a forty-five-degree angle to the other tube. To make this, you position the angled tube halfway up the large tube.

union() {
    tube(50, 4, 300);
    translate([0, 0, totlength/2]) rotate([45, 0, 0]) {
    tube(50, 4, 150);
    }
}

When you try this, it looks great from the outside. When you look inside, you see that you have both entire tubes. The short one is blocking the flow in the long tube. To remedy this, you need to erase both cylinders inside the tubes. You can consider the whole union one piece and put the corresponding cylinders after it inside a difference.

difference() {
    union() {
        tube(50, 4, 300);
        translate([0, 0, totlength/2]) rotate([45, 0, 0]) {
        tube(50, 4, 150);
        }
    }
    cylinder(r = 50 - 4, h = totlength);
    translate([0, 0, totlength/2]) rotate([45, 0, 0]){
        cylinder(r = 50 - 4, h = totlength/2);
        }
}

As you can see, the first cylinder stretches the whole length of the tube. This will erase anything inside the large tube but the small tube that is leaning also needs to be erased. The translate command moves the tube up halfway, it then rotates and put the cylinder inside the tube. In fact, the code is copied from above and the tube is replaced with a cylinder.

Plumbing

If you want to make more tubes, you can use the module in the example above and start expanding. The code is available at https://github.com/matstage/openSCAD-Cylinders.git, At the time of writing, there are only these two but check back often to see more. You may be able to create more exciting stuff.

Inside a block

If you are aiming to make an internal combustion engine, you need a cylindrical hole in a solid piece. Below is an example, the simplest possible, for cooling channels and pistons there is a lot more to add. That is for another day though.

module cylinderblock(
        cylinderR = 3,
        Edge = 1,
        numCylinders = 8)
{
    difference() {
        cube([cylinderR*2 + Edge * 2,
                cylinderR*2*numCylinders+Edge*numCylinders + Edge,10]);
        for(x = [0:1:numCylinders-1])
          translate([cylinderR + Edge, cylinderR*x*2+Edge*x+ cylinderR+Edge,0])
          cylinder(r = cylinderR, h = 12);
    }
}

Here, you have a cube that grows according to the number of cylinders you want inside the block. All values in the module are the default so you can use it without values. To use it, use the ‘use <cylinderBlock.scad>’ statement at the top of your file and then add cylinderblock(numCylinders = 8). You can use or omit any value, when you do omit them, it will take the default. In short, the inside the module starts with the values and then creates a cube to be long enough to fit the cylinders. It then continues by removing the cylinders with a for statement. Thanks to the for statement, you can make a bigger or smaller block. For more advanced modules, you can put constraints in that change the design when certain values are reached. Maybe you want to make it a V if it is 8 or more cylinders.

Extruding from a flat shape

Another way to create a cylinder is to make a circle and extrude it. A solid cylinder is only two lines:

linear_extrude(15)
circle(20);

This creates a 15 (no units in openSCAD) long, with a 20 radius. You can use the diameter using the d parameter. Just creating a cylinder is not very useful but you can use the same technique for any 2D shape. You will see this later. While a hollow cylinder the code is a little longer.

linear_extrude(15)
difference() {
circle(20);
circle(18);
}

This is the same but, as we have done earlier, you remove the centre circle. You can also bend it in a circle with the rotate_extrude version. This is great for making donuts, the simplest version looks like one.

rotate_extrude(angle =180, convexity =10) {
    translate([30,0,0])
    difference() {
        circle(20);
        circle(10);
        }
    }

This code creates a half-circle that is hollow. A note that you should be careful with is the translate is necessary or you will get an error: “ERROR: all points for rotateextrude() must have the same X coordinate sign (range is -2.09 -> 20.00)”. The numbers will depend on the value in the circle. Since this creates the same shape as a cylinder it may seem useless. It is not! The best use of this command is to make flat shape functional somehow. The manual has a simple polygon as an example, it creates a round shape where you can run a belt. You also can twist it around. The below code creates a corkscrew.

translate([-80,0,0])
linear_extrude(80, twist = 900, scale = 2.0, slices = 100)
translate([2, 0, 0])
square(10);

The example in the manual shows a polygon that can be useful. The below code can be whatever you like but illustrates the power of doing it this way.

translate([0, -80, 0])
rotate_extrude(angle = 275)
translate([12,3,2])
polygon(points = [[0,0], [20,17], [34,12], [25,22], [20, 30]]);

You can experiment with the shape of the polygon until you get it right for your application. If it feels a little daunting using just numbers, you can create the profile in other CAD programs and import the dxf result using the import() command.

Conclusion

Making a cylinder is simple but just the start of the process. The tricky part is to make something useful with it. You also need to incorporate it into your design and maybe create more complex issues than cylinders. Find ways and challenges for your ongoing expansion of knowledge using openSCAD. Remember to use the documentation and lean on other software when it cannot be easily achieved with numbers and such. Something not covered in this post is that you can draw stuff in Inkscape and Blender and import it to openSCAD. Exporting from openSCAD to stl and other formats is well supported and if you are really curious, check out the creations over on Thingiverse. They have a bundle of enthusiasts contributing things to their site. ]]> openSCAD tutorial https://linuxhint.com/openscad_beginner_guide/ Mon, 07 Sep 2020 09:40:00 +0000 https://linuxhint.com/?p=67604 Making a mechanical part requires a drawing. It started with paper, and the first CAD programs used exactly the same style. There are even standard squares on the drawings so that each drawing is identified. All this is useful when you start going into production in large corporations. However, when you start making a new mechanical piece, you may want other methods.

3D CAD methods allow you to see the whole piece as it is. You can also twist and turn it. In advanced software, you can also simulate movement. In all cases, you draw the pieces using a graphical interface. This is great for making boxes and cylinders, but when you want to make more complex shapes, you may need mathematical methods.

Enter a standard way to describe any material with commands.

What makes openSCAD so special?

In openSCAD, you do not draw anything with your pointer or pen. You code the entire piece with commands and functions. This is awkward for mechanical engineers, but for programmers, you have another situation. Apart from personal preference, you also have the advantage of precision. When you design it with code, you have the precision there in the code.

The most powerful feature of openSCAD is binary operations. You can use binary operators to put pieces together or cut material out. It is easy to make a cube with a hole in the centre by retracting the cylinder from the cube. Some of these operations are available in other CAD software, but it falls naturally to use them in openSCAD.

What are your project needs?

After you have put your design on a napkin, you may think that you need to see what is happening when you try to make it a full design. Don’t worry; there is a preview window for you to look at while you code. Once you understand the basic ideas, you will know if it is the best fit for your project.

In short, if you want to create small pieces that have complex shapes, you should try openSCAD. For full equipment and mechanical systems, you want to use more advanced graphical applications. Having said that, it is all a matter of taste. You can make complicated shapes with just code, would you consider coding an entire car?

Installing

OpenSCAD, available in your standard repositories for most distributions, can also be installed using a snap and AppImage. Interesting is that you also have a second package that includes screws, gears, and generic shapes. The newest package is in the openscad-nightly snap.

sudo apt install openscad
sudo snap install openscad-nightly

If you want to use the included screws that come as a separate package, use your distribution’s repositories.

sudo apt install openscad-mcad

Using the included parts is another matter, covered further down.

Several standard shapes

The principles of scripting CAD is that you have a few standard geometric shapes. You use these shapes and combine them into more complex shapes. The standard shapes are circle, square, and polygon for 2D. For 3D, you have a sphere, cube, cylinder, and polyhedron. By using some of these to build and others to cut, you can create very complex shapes.

There is also a text function that creates a 2D text. When you need to create drawings for further processing, you can use the projection command. This command cuts a 3D shape along a plane so you can transfer it to a drawing. You can also add shapes from other programs or even images, using the import command. This also works with 3D-shapes.

In addition, you can extrude shapes from existing objects.

Transformations

By default, you create all pieces at the centre point of the grid in all dimensions. This makes them all overlap. Once you have a number of shapes, you want to have them placed in the right spot and rotated. These functions are the simple ones, translate puts the object in another place. The rotate command rotates the object or child objects. You also have the mirror function, which creates a copy of the object mirrored around the given axle.

The other transformations need examples to explain. In short, hull creates the outer lines of many shapes. Try with two circles and combine them with hull(). Or the code below.

translate([-10,0,0]) {
   hull() {    
       cylinder(30, 5, 1);
       cube(9);
       sphere(12);
          }
}

The Minkowski operation is usually used to create edges; if you want them rounded, use a sphere.

Boolean operations

Many pieces cannot be created with only squares, cylinders, and spheres. The first thing you can do is to combine and cut many shapes into a single shape. You use boolean operators to do this. They are union, difference, and intersection.

union() {
   cube([35, 5, 2], center = true);
   cylinder(h = 2, r = 5, center = true );
   }
}

In the code above you get a single piece that has a bulb at the centre. To make a tube, you take the difference between one cylinder and another.

difference() {
   cylinder(h = 15, r1 = 30, r2 = 30, center= true );
   cylinder(h = 15, r1 = 25, r2 = 25, center = true) ;
   }

As we move on, you will use these and more. Here is an intersection example.

intersection()
{
   rotate([45,0.0])
       cylinder( h = 40, r = 4, center = true);
   translate(5,5,5) {
       cylinder( h = 40, r = 6, center = true);
   }
}

Intersection leaves only the overlapping stuff; you can create many shapes using this method.

For Loops

Many of your designs will have the same piece many times, consider a patio. They are usually made of several planks with gaps between them. In this case, you make one plank and just iterate over them with a for loop.

gap = 8;
plank_width = (bed_width / 4) - gap;
num_planks = 4;

for(plank_x_pos = [0:1:num_planks - 1])
{
   translate([plank_width*plank_x_pos + gap * plank_x_pos,0,0])
       cube([plank_width,4,200]);
}

Without the for loop, you would have written the cube and translate statements four times. You also would have had to calculate how far out the next plank would go. Even with only four pieces, this solution looks much easier. In the example, you can also see variables that need to be set. All variables are set at compile-time, this is important since you may run into debugging problems if you think of them as values in other programming languages. As you will see later, you can also make the whole patio a module.

Mathematics

Included in openSCAD, you have a few mathematical functions available. Supported features are most trigonometric functions, rounding in different ways and logarithmic function. You can see an example below.

for(i=[0:36])
  translate([i*10,0,0])
     cylinder(r=5,h=cos(i*10)*50+60);

The above function creates a long straight row of cylinders of differing height. The main functions are connected to trigonometry. However, with random, rounding functions and the standard operators, you can create pretty much everything. There is also support for vectors, matrices, and square root. Even with these functions, you can get really far. However, they do not cover everything you can imagine; instead, you can create functions.

Modules & Functions

You have many modules included in the openSCAD install. However, you can also download other libraries. In your distribution, you probably find MCAD, also called openscad-mcad. To install under Ubuntu.

$ sudo apt install openscad-mcad

Inside this package, you find both modules and functions. Before you start any project, look around for libraries and modules. There is already a library of screws, and that is just the beginning. Missing a part of your design? Make your own modules; you use them to make new pieces. When you use parameters, you can make many versions out of them. The best way to create a module is to make the design as a separate file, figure out what needs to be dynamic, and add ‘module’ around the piece.

To use a module, you call it by its name. Since many modules come in separate files, you must put an include statement at the top of your file. Pay attention to the difference between the “include” statement and the “use” statement. If you want everything in a file to execute, you “include” it, if you want modules and functions defined only, “use” the file. To make sure you can use the modules, you must put them in your model’s current directory or one of the search paths.

First, let’s look at a few you can download and use.

Screws

In the package from the earlier section, you can find a lot of things. One group are screws! You can try them out by loading them into the application and calling the module. In the MCAD Library, you can find many screws. There are many other collections from other sources. To use a screw, create a file that contains the include statement for the module you need. Now, anywhere you want to use the module, you can use the name of the module to create your screw.

include <screw.scad>;
ball_groove(12, 40, 2);

This is a screw that can fit a ball. You can also find nuts_and_bolts_scad, which defines metric screws and bolts. The designers used a website where you can find bolts and created a method for you to use. Another example is a hole for a bolt.

include <nuts_and_bolts.scad>

difference() {
    cube([12,16,20],center = true);
    translate([0,0,-3])
        boltHole(8, length = 300);
    }

The above code creates a hole large enough for the M8 bolt, this example creates a cube and cuts out two cylinders of two sizes. That is not very complicated, but the complexity quickly grows when you use other components. Add the screws to parametric boxes, and you can see how a library helps.

Making a cart

To make any construction of any complexity, you will need to make one piece at a time. Later, you combine them with each other. As we have mentioned earlier, you can use modules and functions. The best way to get started is to decide where you need to set variables. For a simple cart, you need height, wheelbase, and length. You need to set the values in one place and use them to make the parts fit around the design. You may need more values, but don’t put all of them when you start out. When you start a new project, you will not have all the parts ready, so be prepared to change things around.

wheelbase = 150;
cartlength = wheelbase * 1.2;
cartwidth = 50;
wheeldiameter = 25;
suspensionheight = (wheeldiameter/2) + 5;

translate([wheelbase/2,cartwidth,0])
    rotate([90,0,0])
        cylinder(r = wheelradius, 10, center = true);

translate([wheelbase/2,-(cartwidth),0])
    rotate([90,0,0])
        cylinder(r = wheelradius, 10, center = true);

The code shows the code for the first two wheels. If you think a little about it, you can probably make the rear wheels. To add the flak, the surface where all the stuff goes, you just add a cube. Use the variables you put in the code.

translate([0, 0, suspensionheight])
cube([cartlength, cartwidth,10], center = true);

This flak is on the same height as the wheels, though, so we took care of that with the suspension height value. The translated statement affects what is directly after it. Note that there is no semi-colon at the end of a line. When the statements inside become long, you use curly braces around it.

Now, you need to add axles and suspension. The axles can be simple cylinders that go between the wheels. You place them the same way you did the wheels using rotate and translate. In fact, the best is to use the same values.

translate([wheelbase/2,0,0])
    rotate([90,0,0])
        cylinder(r = wheelradius * 0.25 , h = (cartwidth * 2) + 15, center = true);

The code here puts the front axle in place. The rear axle, I leave you the reader to figure out. We can solve the suspension in many ways. In this case, we will keep it simple.

// Suspension
translate([wheelbase/2, 0, suspensionheight ])
    rotate([90,0,0]){
    {
        difference() {
            cylinder(r = suspensionheight, 10, center = true );
            cylinder(r = suspensionheight - 5, 11, center = true );
            cube([102, suspensionheight/6, 12], center = true);
        }

    translate([suspensionheight, 0, 0])
        cylinder(r = suspensionheight/3, h = 12, center =true);

    translate([-suspensionheight, 0, 0])
        cylinder(r = suspensionheight/3, h = 12, center =true);


    }
}

This code creates a very crude suspension; it only uses cylinders, so it will not be the best when you start using it. It does illustrate one way of creating designs form the primitives; cylinder, cube, and well, that’s it for this model. As you progress, you will make each piece a module and place those pieces.

The code for the cart is available at https://github.com/matstage/Carriage! Further developments may come later.

Libraries

In the earlier part, you used only circles. Any designs using only those primitives will not be the best for all applications. You need to create good looking and efficient designs. The solution is mathematics! To add this, you should start by using other people’s libraries.

There are a large number of libraries built by smart people in the community. The people who build are users who solve their problems and then graciously shared it with everyone else. Thanks to all of you! A good example is dotSCAD; for the suspension example, you can find a Bézier curve.

Exporting to other software

Once you have a decent design, you may want to use it in another software. You can export to stl, dwg, and a host of other formats. Your 3D-printing enthusiasts can use the stl files directly in your slicer programs.

Alternatives

Another exciting alternative is ImplicitCAD. This software is very much in development. You have to run its command line, and it requires Haskell on your system. Most standard installs do not have Haskell!

Conclusion

At first, glance, using openSCAD is very hard. Getting past the learning curve is a bit of a struggle, but it is worth it for many users. Thanks to the projects to contribute to the project. You have many features available at the end of a git command. Just getting through the basics of creating mechanical designs through code changes the way you think about shapes. This is beneficial even if you will keep using point and click to make your other projects.

]]>
Top 5 CAD software available for Linux https://linuxhint.com/top_cad_software_linux/ Tue, 06 Nov 2018 04:15:50 +0000 https://linuxhint-com.zk153f8d-liquidwebsites.com/?p=32040 If you’re an engineer then you must be familiar with the term “CAD”. Computer Aided Design is a term which is used to define the use of computer technology aimed at designing real or virtual objects. It is an essential part of many streams of engineering and often refers to the drafting of a product or a part. Whether it is architecture, space shuttle research, auto parts design, bridge construction even jewelry or clothing, CAD plays an important role. It may help you design curves and figures in two-dimension and in three-dimensions as well. The CAD world in Windows has already some of the most powerful AutoCAD software. Unfortunately, Lunix didn’t have its fair share of such software.

Whilst it is possible to run CAD software on Linux through an emulator like Wine, this article will specifically point out the top CAD software available for Linux. So let’s dive in!

1. FreeCAD

The FreeCAD is an open source, free software and the best option for 3D solid and general purpose design. The software makes comprehensive use of open source libraries like OpenCascade, Qt, Python, and Coin3D. You can use FreeCAD on Mac OS X+, Linux and Windows. FreeCAD is favored by many users for small tasks. However, it cannot be deployed on large scale because it is still running on version 0.17. The good news is that the development has recently picked up the pace.

One of the few shortcomings of FreeCAD is that it is not suitable for organic shape animations and 2D drawings. However, you can easily benefit from its mechanical engineering designing abilities. You can find FreeCAD version 0.15 from Ubuntu repositories. Following are the commands that can help you install it.

sudo apt install freecad

The current version is 0.17. The software offers newer builds on daily basis which can be obtained by performing following commands:

  • Press (ctrl+alt+t) to open the terminal
  • Once terminal is open, enter and run the following commands:
sudo add-apt-repository ppa:freecad-maintainers/freecad-daily
sudo apt update
sudo apt install freecad-daily

2. OpenSCAD

OpenSCAD is a free 3D CAD Software that is light weighed and flexible. It is one of the most complicated tools since it is limited interactivity. It requires you to ‘program’ the model and then it renders a visual model corresponding to your code. If you think of it, it works like a compiler, taking commands from you, interpreting them and providing you the results. You cannot actually draw the model in this software, you can only describe it. It is however complicated to use but once you get hold of it, you’ll really love using it.

Install OpenSCAD on your system by performing these commands:

sudo apt-get install openscad

3. BRL-CAD

BRL-CAD is a complete package with powerful Constructive Solid Geometry (CSG). It is one of the oldest CAD tools with over 20 years of development and production us by U.S military and is still being developed actively. It comes with interactive 3D solid geometry editor, image and signal processing tools, a network-distributed symmetric, multiprocessing and high-performance ray-tracer, a network-distributed frame buffer support, animation capabilities, ray-tracing and numerical processing libraries and much more. Now it is not AutoCAD but is still used widely for transport studies such as ballistic penetration. This software finds numerous other uses in tasks like system benchmarking, medical visualization of objects, planning of radiation doses, education and training of computer graphics. You might keep all this in mind before installing it.

4. QCad

QCad is an application designed specifically for 2D computer-aided drafting with an intuitive user interface. If you are looking for software which can help you in designing your home interior, this software is best. It features technical drawings and diagrams related to building plans and mechanical parts as well. It is available in two editions: the commercial one and the free one called Community Edition. The difference between the two editions is mostly regarding the number of features they have to offer and the date of availability. It uses DXF and DWG as its standard input and output format, 35 CAD fonts, part library with over 4800 CAD parts, multi-document interface and object snaps.

5. LibreCAD

The two highlighting properties of LibreCAD are that it is open source software which allows 2D Computer Aided designing. CAD is usually a resource-intensive task which requires a rather modest hardware. The free LibreCAD tool is lightweight and does not put much strain on resource usage. This makes it a good choice for CAD. As a 2D tool, we cannot expect it to render 3D models and renderings. You get the backup of an autosave option if you ever have struggle with large files whilst using this software. Libre CAD wins the contest for being the best software for creating geometric sketches.

LibreCAD can be installed on Linux by running the following command

sudo apt install librecad

Conclusion

All the tools mentioned above are currently under constant development and we can expect great things for them in the future. What kind of software you should go with certainly depends on what you’re looking for. Although, Linux is now catching up with Windows, in our opinion you should stick with what your college prescribes (if you’re a student) which will most probably run on Windows only. Speaking of industry standards and advanced requirements, these software might fail to meet professional expectations. But we highly respect the work that is being put forward by the developers of the above-mentioned software.

]]>
How to install KiCad on Ubuntu 20.04 (LTS) and 20.10 https://linuxhint.com/install-kicad-ubuntu-linux/ Mon, 22 May 2017 18:08:04 +0000 http://sysads.co.uk/?p=16880 KiCad is an open-source, multi-platform electronic design automation (EDA) software suite that assists in designing circuits, schematics, and printed circuit boards. Some notable features of KiCad are:

  • KiCad comes with a schematic editor that lets you design without any limit.
  • All features of KiCad are completely free without any restriction.
  • It lets you make PCB layouts up to 32 copper layers.
  • KiCad allows you to view the design in 3D; the board can be rotated or panned, which helps inspect the details.

There are two approaches to install KiCad on Ubuntu, using software center and terminal. Let’s get it to install on Ubuntu using both of these methods.

Installing KiCad on Ubuntu 20.04 (LTS) and 20.10 using Ubuntu’s software store:

Ubuntu has made it easy for many new users to install software using its software center. Let’s get KiCad from Ubuntu’s Software Store. Go to applications and open Software Center:

kicad/1%20copy.png

Click on the “Magnifying Glass” icon for searching a package and then type “KiCad” in the search bar:

kicad/3%20copy.png

Open KiCad and click on the “Install” button:

kicad/4%20copy.png

Since it is a suite, therefore multiple programs will be installed that can be viewed in applications:

kicad/8%20copy.png

Open them:

kicad/9%20copy.png

Installing KiCad on Ubuntu 20.04 (LTS) and 20.10 using the terminal:

The second approach of installing KiCad is terminal; use to command shown below to add the repository:

$ sudo add-apt-repository ppa:kicad/kicad-5.1-releases

kicad/5%20copy.png

Now, update the packages lists using the command:

$ sudo apt update

To get a full installation of KiCad, use the below-mentioned command:

$ sudo apt install --install-recommends kicad

kicad/6%20copy.png

The entire suite will take up to 5GB of space of your drive. If you are not interested in installing all the packages, then use:

$ sudo apt install --no-install-recommends kicad

kicad/7%20copy.png

Installing libraries for KiCad 5.x:

If the installation of KiCad is not full, then you may need additional libraries that can

be downloaded from the link https://kicad.org/libraries/download/ :

For schematic symbols, visit: https://kicad.github.io/symbols

For the footprints of printed circuit boards (PCB), visit: https://kicad.github.io/footprints

To download the 3D features, use: https://kicad.github.io/packages3d

These libraries can be installed from the respective software preferences.

Uninstalling KiCad from Ubuntu 20.04 (LTS) and 20.10:

If the KiCad is installed using the software center, then open it again and click on the “Installed” tab. It will show the installed applications. Find KiCad and click on remove to delete it:

a1%20copy.png

If it is installed using the terminal, then type the below-mentioned command to delete KiCad:

$ sudo apt remove kicad*

kicad/10%20copy.png

Conclusion:

KiCad is a very robust software suite and a perfect alternative to premium software. In this guide, we learned how to install different versions of KiCad and how to download libraries and uninstall them from a Ubuntu device.

]]>
How to install LibreCAD 2.1.3 on Ubuntu 20.04 & Linux Mint 20 https://linuxhint.com/install-librecad-ubuntu/ Fri, 17 Mar 2017 01:43:24 +0000 http://sysads.co.uk/?p=16506

LibreCAD is a Computer-aided design (CAD) application that is free and open source. It is a multi-platform application and is available for all major operating systems, including Linux, Windows, and macOS. It is a complete 2D CAD application. LibreCAD application is available in various languages, so there is no language barrier in using LibreCAD application. It can be easily installed on Ubuntu 20.04 and Linux Mint 20.

Install LibreCAD on Ubuntu 20.04 and Linux Mint 20

LibreCAD is included in Ubuntu 20.04 and Linux Mint 20 standard repositories. The installation procedure is the same on both operating systems because Linux Mint is based on Ubuntu. We are using Ubuntu 20.04 operating system for the demonstration.

Step 1: Update apt-cache

Open the terminal by pressing Ctrl+Alt+t and run the following command to do update apt-cache:

$ sudo apt update

Step 2: Upgrade apt-cache

Upgrade the already existing package to the newest version to prevent dependency conflict using the command:

$ sudo apt upgrade

Step 3: Install LibreCAD

It’s time to install LibreCAD on Ubuntu 20.04 and Linux Mint 20. Run the following command to do so:

$ sudo apt install librecad

LibreCAD requires 160 Megabytes (MB) of additional disk space. During the installation, the command line will prompt with the ‘yes’ and ‘no’ option; you are supposed to press ‘y’ on the terminal to continue the installation process.

Launch LibreCAD

Upon successful installation, the LibreCAD can be launched in the following two ways:

  1. Launch LibreCAD from terminal
  2. Launch LibreCAD from Application Menu

To open the LibreCAD from the terminal, write the following command on the terminal LibreCAD will open:

$ librecad

To open LibreCAD from the Application Menu, click on Application Menu, write LibreCAD in the search bar, and the application will appear.

Next, click on the application icon to open it.

On the initial launch, the LibreCAD configuration window will appear.

Select the Default Unit, graphical user interface (GUI), and command languages.

After performing the initial configuration, click on the ‘OK’ button.

The LibreCAD dashboard will appear.

Now, explore the LibreCAD and perform your tasks.

Conclusion

LibreCAD is a free and open-source 2D CAD application available for designers. It can be easily installed from Ubuntu 20.04 and Linux Mint 20 base repositories.

]]>
How to Install Sweet Home 3D in Linux https://linuxhint.com/install-sweet-home-3d-linux/ Wed, 01 Mar 2017 19:55:19 +0000 https://linuxhint-com.zk153f8d-liquidwebsites.com/?p=18323 Sweet Home 3D is an interior design program that is lightweight, quick, and even free! This program assists in designing and creating 2D floorplans and viewing them in 3D. Sweet Home 3D can be used to draw a floorplan of a house using 3D modeling techniques. Notable features of Sweet Home 3D include the following:

  • Comes with more than 50 pieces of furniture.
  • Can be used to draw walls and rooms using the existing 2D plan image.
  • All changes can be viewed in 3D.
  • Import 3D models and export plans in different formats.

Sweet Home 3D can be installed in Ubuntu using different approaches. This article shows you various methods for installing Home Sweet 3D on your Linux system.

Method 1: Install Sweet Home 3D Using Snap

The first method of installing Sweet Home 3D is terminal-based and uses the Snap package of this application. Open the terminal and use the following command to download and install Sweet Home 3D on your system:

$sudo snap install sweethome3d-homedesign

../SweetHome/1%20copy.png

Enter the password when prompted. Once the download and installation are finished, the Sweet Home 3D app can be viewed in Applications:

../SweetHome/2%20copy.png

Open the Sweet Home 3D application, and the following window will appear:

../SweetHome/3_1%20copy.png

As you can see, the Sweet Home 3D application is running with no issues.

Method 2: Install Sweet Home 3D using APT

The second approach of installing Sweet Home 3D uses the APT cache. Launch the terminal and execute the command below:

$sudo apt install sweethome3d

../SweetHome/5%20copy.png

Method 3: Install Sweet Home 3D using GUI

If you are interested in downloading Sweet Home 3D using the GUI, then Ubuntu’s Software Center is the best place. Open the Software Center, click the search icon, and type “Sweet Home 3D.” Two different versions will be visible; any version can be downloaded and installed. One of the versions is maintained by the community, and the other is the Ubuntu-built Debian package, which usually takes time to release updates:

../SweetHome/multi.png

Uninstalling Sweet Home 3D from Linux

If the package was installed using Snap, then simply type the following command to delete it:

$sudo snap remove sweethome3d-homedesign

../SweetHome/4%20copy.png

If the second method was used, then issue the following command:

$sudo apt remove sweethome3d

../SweetHome/6%20copy.png

If Sweet Home 3D was installed using the Ubuntu Software Center, then open the Ubuntu Software Center and search for “Home Sweet 3D.” Click the “Remove” button to uninstall it.

../SweetHome/14%20copy.png

../SweetHome/multi%204.png

A prompt will appear; press Remove to delete Sweet Home 3D from your device. ]]>