Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - raymw

Pages: 1 [2] 3
16

If we take a simple example to start with, the coupler, (the rendering of which I queried a few days ago),

Code: [Select]

// AngelCAD code.

shape@ main_shape()
{
   // create cube & sphere in default positions
   solid@ tube = cylinder(30,10);
   solid@ shank = cylinder(10,7.5);
   solid@ shaft = cylinder(30,4);
   solid@ fix = rotate_y(90)*cylinder(50,1);
//drill the two fixing holes straight through tube
   return tube-shank-shaft - translate(-20,0,4)*fix -translate(-20,0,22)*fix;
}

void main()
{
   shape@ obj = main_shape();
   obj.write_xcsg(GetInputFullPath(),secant_tolerance:.005);
}

 (you can tell I never removed all the 'new' Angelcad comments!)

from a machining point of view, a sort of p-code could be

profile circle, 30 deep, 20 diameter
bore in centre, 10 deep, 15 diameter
bore in centre, 30 deep, 8 diameter
rotate cylinder 90 degrees on  y axis
bore on centre line, 4  from end
bore on centre line, 22 from end

For many situations, machining consists of repeating standard procedures in different locations, orientation of work piece, and using different tools.

The above p-code could be readily translated into AngelCad script, and a library of functions could be developed. Knowing the size of the tool, and material type, etc., then the same p-code could generate the G-code too.

Instead of saving the AngelCad file, and  a separate g-code file, the g-code could be embedded as comments in the AngelCad file  e.g. all g-code comments begin with '//>> G01 x20.000 -y67.8765'  and then that can be run through a process that extracts all lines beginning with' //>>' and removes the '//>>' giving the g-code that you need. The actual method is unimportant, but with a consistent, well thought out structure that would possibly allow quick visualization via AngelCad, and produce the G-code file, too.

To start with, to see how extensible it can be, then I think I would standardize on a single sized tool, and a soft material. The machining would have to be limited to the movements available, e.g. rotate on y axis won't work on a usual 3 axis machine, unless manual intervention is employed. (but you'd have to do that anyway.) In such cases, issue a pause, and comment in the instruction within the g-code.



                                 

17
General Discussion / rendering of imsges
« on: 2020-09-03, 15:53:38 »
One thing I like with AngelCad, is the speed of developing functional mechanical devices, in a sequential manner, where they do not need to look 'pretty', although it is fairly easy to round edges, etc. I needed a coupler, to extend a hand-wheel shaft, and in a few minutes, I got this -
Code: [Select]
// AngelCAD code.

shape@ main_shape()
{
   // create cube & sphere in default positions
   solid@ tube = cylinder(30,10);
   solid@ shank = cylinder(10,7.5);
   solid@ shaft = cylinder(30,4);
   solid@ fix = rotate_y(90)*cylinder(50,1);
//drill the two fixing holes straight through tube
   return tube-shank-shaft - translate(-20,0,4)*fix -translate(-20,0,22)*fix;
}

void main()
{
   shape@ obj = main_shape();
   obj.write_xcsg(GetInputFullPath(),secant_tolerance:.005);
}

However, when viewing this, at most orientations, the fixing cross hole through the small bored end, looks wrong. At first view, I thought for some reason, I had not made it long enough, or it was offset too far. Just wondering if the lighting? could be improved.

edit to add, meshlab does not show that fix-hole at the surface, no matter how it is orientated, but Cura reports a fault - object not manifold, but it looks as it should, apart from highlighting at the hole surface, but it seems to slice OK, printing it now. So, I'm guessing it's within the mesh, not the lighting.

18
Having looked at a couple of simple shapes in csg format, that almost looks like G-code, but then G-code is more or less points in space. A square pocket is easier. If you need to know if a point is inside a boundary, then simply draw a line in any direction from the point, and if it crosses a boundary an odd number of times, it is outside, or an even number it is inside. You have to define how to handle the situation of a point being on a boundary. If it is a case of being happy with creating the cad by scripting, then perhaps it is simplest to generate a scripting language with inherent machine commands, so that as you draw the shape, it also writes the g-code. However many machine controllers, Fanuc, Seimens, Prototrac, (sp?) etc, more or less do that. The tool size and material requirements I would set initially, then after the principle was proved, add features as required. If you look at the resources that autodesk, for example, throw at their software, then in reality, you are unlikely to get near them, but no harm in trying, and as AngelCad, or openscad allows quick drawings of a certain type to be produced, then with restrictions, producing g-code at the same time should be possible. However if nobody else thinks it is worthwhile, then you'll have to learn coding yourself, openscad, and Angelcad are both opensource, and you are allowed to add/adjust/whatever, according to their agreements.

19
General Discussion / Re: a simple clip
« on: 2020-08-29, 12:42:34 »
Thanks. I'll use that for the next batch I print. I can't see the difference in sizes in my original version, but can see the angle in the join. Not sure if the slicer picks out the change in diameter between end and coil, or if it does if the extruder can.

20
General Discussion / a simple clip
« on: 2020-08-29, 00:23:47 »
You can buy similar items for pennies, but if the shops are shut...

Having got a bit fed up with cutting/replacing cable ties, i thought of an alternative, similar to items I'd seen in garden centres for clipping plants to supports. As I have a 3d printer with nothing to do, i used AngelCad to make a similar clip, and thought that I could print it at different sizes, for holding different things, and if I used Pet-G filament, it would withstand the greenhouse temperatures, and unlike PLA, would be unlikely to bio-degrade.
So, here's some script with comments -

Code: [Select]
// AngelCAD code.

// Based on AngelCAD sample: screw_threads.as
// demonstrate use of rotate_extrude with non-zero pitch to create screw threads.

double wirediam = 3;
double gripdiam = 8; // inside diameter of coil.


//**************************
double ol = wirediam/10 ; // overlap
double gripr = (gripdiam +wirediam)/2;
double wirer = wirediam/2;
double len = gripr + wirer;

solid@ end()   // straight end with knob
{
  // generate ends
  solid@ end = cylinder (len,wirer/0.99);  // fudged the diameter of end
  solid@ ball= sphere(wirediam/1.2);
  return end+translate(0,0,len)*ball;
}

solid@ coil()
{
   // comments from screw_threads.as example
   // create a polygon from the points,
   // and position the resulting profile on the positive x-axis
   // shape2d@ poly = translate(gripr,0)*rotate_z(deg:-90)*circle(wirer);
 
   shape2d@ poly = translate(gripr,0)*circle(wirer);

   // perform 1 full rotations, with s small pitch to offset the threads
return rotate_extrude(poly,deg:360*1,pitch:wirediam*1.1);  //single turn coil
}

shape@ all() // put the ends onto the coil
{
  solid@ end1= translate(gripr,0,ol)*rotate_y(180)*end();
  solid@ end2= translate(gripr,wirediam*1.1,-ol)*end();
return end1 + end2  + coil();
}

void main()
{
   shape@ obj = all();
   obj.write_xcsg(GetInputFullPath(),secant_tolerance:0.01);
}

I ran into a problem, because the ends of the coil are not cut on the x/y plane, which presents an angle to the two end pieces. I added an overlap to remove the gap, but found that It would not complete for wire diameters over 2.0, or so. I fudged it again, by making the end pieces slightly larger. This works, but it is not particularly elegant. It would be better to generate  a path from end to end, and extrude along that. However, these loops are now holding up my tomato plants, and smaller ones will be used as cable clips on the printer as originally intended. They print OK, lying flat, with a few supports.

edit to add a couple of quick pics

21
Using AngelCAD / Re: AngelCAD on Thingiverse
« on: 2020-08-28, 23:31:36 »
Another search engine - Yeggi.com -  picks up 3d models from sites other than thingiverse. a search for AngelCad gives seven results, all for thingiverse, however. Not sure what you need to do to get Angelcad listed as a design tool on Thingiverse, because there are in fact about 21 models for Angelcad there.

22
Thanks - by default, I have scripting turned off in Firefox, I didn't see the tags. I'll try and remember in future.

23
Many milling tools are used in more than one way. A square ended mill, for example, is used for milling something flat, and the sides of said cutter for milling profiles., or all at once for making slots. That is not a compromise, it is using the tool as intended. If you are out on a limb, then perhaps you have  to design your own tool. All tools originated by someone solving a problem.

Unfortunately, Everything in engineering, and life in general, is a compromise, you've got to find the ones you're happy with, and work from there. I believe you are suffering from 'the not invented here syndrome', nothing being any use unless you've invented it, it fits exactly into your mind set. If the tool does not do what you want, then why mess around with the carbide3d? Get yourself some proper joinery machinery. If I wanted to make decent jointed boxes, that is possibly the compromise I would make, balancing time against cash and workshop space, whatever.

If you're accepting the compromise of shallow depth 3 axis machining, then the only way you can cut any surface, and undercut, on five sides at one hit is with a ball ended milling cutter (not a bull nosed but something like this http://cnc-plus.de/images/product_images/info_images/2974_2.jpg and then you live with a smoothish finish, but no sharp edges.to the bottom of any recesses. If you want undercutting then use a T slot cutter, or a dovetail cutter, or similar, but that is accepting the compromise that it will only give straight smooth edges, but at restricted angles. If you want square edges and corners, then the morticer is the tool to use. All the above  is accepting the compromise of not refixing the workpiece in some other orientation, or changing the tooling part way through the job.

It doesn't matter what fancy g-code/cad/cam/machine you use, at the end, it depends on the tool profile, its strength, etc. I'm not convinced you have specified what it is you are trying to achieve in enough detail for me to be able to offer much practical advice, except before getting bogged down in AngelCad/Openscad/whatever theory, I would suggest you get some bits of wood, and drive the router manually, to see if you can actually get the fit you want with the tooling that you have.

Why not start with something simple, let's say milling a 20mm cube? I guess your carbide3d machine can handle that. Making it from a 20mm thick piece of timber, clamped well out of the way of the area you are working on. What do you want to happen? Draw a 20mm cube in AngelCad, then generate the G-code somehow from that? Or, are you going to draw a 30mm cuboid, 20mm high, and let the 10mm cutter follow the path in the xy plain, and hope it can cope with a single 20mm depth of cut, or somehow 'it' will know that 20mm in z means 5 passes, say? Neither of these approaches is a Cad problem, it's not difficult to draw either size of cube/oid. OK, having decided that, how do you cope with a 20mm square hole (forget about the rounded corners), pocketing, say 10mm deep? Do you draw a cube 20mm square, knowing that the cutter has a square end - how is that be communicated between the cad and machine- or do you draw it as a 20mm cuboid, again 10mm deep, and communicate that it must cut on the inside of the line.

Many types of cnc machines rely on colour of line to define depth, laser cutters, switching from cut power to etching. There are plenty of cnc sort of raster programs, that can take a greyscale image, and machine to different depths depending on the shade of grey. Maybe, you could manually shade your pocketed regions - but that would not be automatic, unless you added some extra code to AngelCad, but you'd have to get used to the (void main int thing), and I feel your pain there XD

(one day, I'll write a short, non confrontational post.)

24
Having made our four drums, that will fit on a pallet, we'd better make the pallet, to stand them on.

The standard drum pallet is 48 inches square. I found an image, and made some calculations, as best as I could. I've never seen such a pallet, so I've made some guesses, and decided that each plank is 0.75 inches thick, and 4 inches wide. There are 7 on the top, and 4 on the bottom, parallel to each other. They are separated by spacers, say 5 inches high by 1.5 inches wide, one at each edge, and two towards the middle, about 4 inches each side of centre line.

so, we may as well build it from the bottom up, but let's first design the parts needed.

There are only two construction parts,  a plank, 4 inches by 0.75 inches, 48 inches long, and the supports, 5 inches by 1.5 inches by 48 inches long. We  may as well use the correct orientation.

Code: [Select]
solid@ plank()
{
 return  cuboid(4,48,0.75);
}

// create support
solid@ support()
{
    return cuboid(48,1.5,5);


Now we can lay down the four slats for the base (remembering to allow for the width of slats - they are more or less equally spaced over the 48 inch width),

Code: [Select]
// create four planks on the ground
solid@ base()
{
   solid@ b2 = translate(17-2,0,0)*plank();
   solid@ b3 = translate(31-2,0,0)*plank();
   solid@ b4 = translate(48-4,0,0)*plank();

   return plank() + b2 +b3 +b4;
}

Now the supports, they must be raised 0.75 inches, the thickness of the slats (They are already at right angles)

Code: [Select]
// create  the four supports
solid@ supports()
{
   solid@ s1 = translate(0,0,0.75)*support();
   solid@ s4 = translate(0,46.25,0.75)*support();
   solid@ s2 = translate(0,19,0.75)*support();
   solid@ s3 = translate(0,48-19-1.5,0.75)*support();
   return s1 + s2 + s3 + s4;
}


Finally the top layer of 7 slats.  I'll make 2 groups of 3 slats, and one in the middle - remember the z offset.

Code: [Select]
// create the  top planks
 solid@ top()
{
   solid@ mid = translate(24-2,0,5.75)*plank();
   solid@ l1 = translate(0,0,5.75)*plank();
   solid@ l2 = translate(4+(11/3),0,5.75)*plank();
   solid@ l3 = translate(8+(22/3),0,5.75)*plank();
   solid@ left = l1+l2 +l3;
   solid@ right = translate(26+(10/3),0,0)*left;

   return left + mid +right;
}


Then nail all the parts together.

Code: [Select]
shape@ main_shape()
{
  //add the three layers
   return base() + supports()+ top();
}

void main()
{
   shape@ obj = main_shape();
   obj.write_xcsg(GetInputFullPath(),secant_tolerance:-1.0);
}
Don't forget to scale it.

These print quite nicely, with no supports or rafts, and the oil drums fit, too.

Now, hopefully, if you were new to all this, you've followed along, and at least produced and viewed the stl files. If you have access to a 3d printer, have a go at printing them and make adjustments as necessary. To follow on from this, maybe you can write the script for producing a 7mm scale fork lift truck, to handle the pallets.

---
Edit (by Carsten Arnholm): I put your code snippets in code tags to make the post easier to read. Please use the # button for this purpose.

25
Being a fairly new user of AngelCad, I've been looking for suitable objects to model, and also 3d print, or machine. One such item is a standard steel oil-drum. The history of steel oil-drums is quite interesting, and the design soon became a world wide 'standard' The basic dimensions are 34 inches high and 23 inches in diameter, and capacity is 55 gallons (USA), 48 gallons (Imperial). They have a couple of ridges around the circumference, to add strength, and make them easy to roll.

see https://bizfluent.com/info-tip-8098511-dimensions-55gallon-oil-drum.html

The goal, is to make a model of a drum, in either 7mm to the foot scale, or 4mm to the foot.

Always, in cad, model in full size dimensions, and apply a scale factor at the end to get to the size of the object needed. Most cad programs, cnc (g-code) are unit-less, although obviously the machine will be set to convert the numbers into standard units of measurement.

So, this is how I've gone about the modelling of the oil drum. I'm putting in a fair bit of detail of my method, so that if you are a raw beginner, you can understand the process. Of course, there are dozens of ways of doing this, I'm not pretending this is 'the best', but it works for me.


We start with the main cylinder, 34 inches high by 23 inches diameter

so we can write

Code: [Select]
solid@ cyl1()
{
   return cylinder (34,11.5);
}

that is followed, as always by

Code: [Select]
void main()
{
   shape@ obj = cyl(1);
   obj.write_xcsg(GetInputFullPath(),secant_tolerance:.05);
}

which will generate an stl file, and show the representation on screen, in the xcsg viewer.

So far, so good. What else is needed? Well there is a recess at the ends of the drum, where the top is folded into the sides in manufacturing. In reality, the steel is about 0.125 inches thick, but as we are trying to model this at a small scale, and 3d printing the results, then it will pay initially to allow that lip to be thicker. (Generally in modelling, details have to be exaggerated, for various reasons) (OK, I maybe breaking the rule about always model in full size dimensions ...   :-[)

So we can subtract a cylinder from each end of the main drum, giving us

Code: [Select]
solid@ cyl1()
{
    return cylinder(34,11.5)- translate(0,0,33)*cylinder(1,11) - cylinder(1,11);
}

the translate (0,0,33) puts the recess at top of cylinder.

Now, in the top of the drum, there are usually two caps, a filler and a vent, so that the drum does not collapse when the contents are sucked out, or an air lock does not form when being poured. A couple of small cylinders will suffice for that.

so, we can add the script for these caps as

Code: [Select]
solid@ caps()
{
   solid@ cap = cylinder (1,1.7);
   solid@ cap2 =cylinder(1,1.2);
   return translate(9,0,33)*cap + translate(-9,0,33)*cap2;
}
As the drum is centred on the origin, it is easy to get the caps evenly spaced on a diameter line, 9 inches either side of the centre.

Now, we want a couple of the reinforcement ridges, which are equally spaced on the circumference of the drum. Now, these are sort of smooth in profile, but at the small scale we are ultimately dealing with, we can represent them by a triangular profile. Thinking of a cone as being a circular triangle, and thinking of the top of one of these ridges, then the sort of shape we need is given by cone(1.1,12.2,11.3) which is saying that it is 1.1 high, and the bottom radius is 12.2, (0.7 bigger than the drum) and the inner radius is  11.3, 0.2 smaller than drum. This gives the sort of angle we are looking for, and since this shape will be added to the drum, the over lap in the diameters will not matter. We need a bottom edge of the ridge, so simply rotate the top edge around the x axis (or y) and add the top and bottom together

Code: [Select]
solid@ ridge()
{
   solid@ top= cone(1.1,12.2,11.3);
   solid@ bot= rotate_x(180)*top;
    return top + bot ;
}


You can now add together what we have so far, and view the result.

So, we now have to position the two ridges, but if If you look at an image of an oil drum, you can see there is also a lip at the top and bottom, so we may as well show that, too

so, we can make the lips 0.2inches wide, and position the ridges at 11 and 22 inches from the bottom of the drum

Code: [Select]
solid@ ridges()
{
   solid@ lip = cylinder(1,11.7)-cylinder (1,11.5);
   solid@ toplip = translate(0,0,33)*lip;
   return translate(0,0,11)*ridge()+ translate(0,0,22)*ridge() + lip + toplip;
}


That is the drum components completed, so add it all together

Code: [Select]
solid@ drum()
{
   return cyl1() + caps()+ridges();
}


remember, that if you have gone through this procedure outlined above, and viewed the results at each stage, you will need to modify the name of the object you are creating in main(). Also, secant_tolerance, adjusts the smoothness of the surface for curved objects, see https://github.com/arnholm/xcsg/wiki/secant_tolerance

Now, part of the design features of standard oil drums, is that four of them sit quite nicely on a standard pallet, with one inch spacing between them (It is not clear if that is one inch between each drum body, or one inch between ridges).

So, we can position four of them, (The rotates make sure that the fillers are not lined up, I do not think they would be in reality, unless perhaps new empty drums from the manufacturer)

Code: [Select]
solid@ four()
{
   solid@ first = drum();
   solid@ second = translate(0,24.5,0)*rotate_z(25)* first;
   solid@ third = translate(24.5,0,0)*rotate_z(50)* first;
   solid@ fourth = translate(24.5,24.5,0)*rotate_z(150)*first;
   return first+second+third+fourth;
}

You may as well print four of these pallet-fulls. As an exercise, use translate and rotate so that none of the fillers line up. (In my example, I've not done the rotates.)


so, at 7mm to the foot, and most 3d printers expect mm dimensions, then the scale is 7/12 mm to the inch a scale of 58.3%, near enough.

Applying the AngelCad scaling transform we can have something like - scale(0.583)*four() in the  main function.

I've attached the complete script (barrel.as). (attached as barrel.txt - you can rename it)

In practice, I may take care of the scaling in the slicing program, if wanting different scaled models.

I hope this has helped you, if you realise the power of Angel Cad, but can't make much sense of github, and the rest of the help system.

A few additional print related comments. The lips need to be far larger than the scaled full size, since the detail is too fine for a slicer, such as Cura to slice properly. The two fillers need to be bigger, too, they just look wrong. There are certain aspects in models, that need to be exaggerated, in order for them to 'look right'. In the same way that colours generally need to be more subdued, and matt finish paint, not gloss, etc, is preferred. Equally, there are some things that can not be readily modeled to scale, working tolerances, for example, sound too.

---
Edit (by Carsten Arnholm): I put your code snippets in code tags to make the post easier to read. Please use the # button for this purpose.

26
Going back to the tapered cutter with a ball end, what you can do, is treat it as a tapered cutter, for profiling, and a ball end for surfacing. I think I posted an image over on the openscad forum of the sort of carving it can do, the ball end is 0.25mm radius, and with a 0.35mm step-over, it is difficult to see the tool paths in the finished piece, certainly good enough for glued joints. It depends on the type of wood, and grain/tool path direction of course. What it means, for your finger type joints, is that you end up with 0.25mm radius corners internally, but on the tongue that fits, you can compensate by rounding one edge, the one that shows, possibly all the edges, with a number of passes . Since the edges of the cut will be tapered, you will end up with a sort of dovetail. It would be quite possible to make joints that could not be assembled, or ones with huge tapered gaps (maybe turn the gaps into features, and use wedges).

If you are only concerned with profiling sheet material, then knowing the taper of the tool, then it is a 2d drawing needed, the line being the tool path. The drawing for the two parts may be similar (assuming two parts fitted at  right angles using 'sort of' box joints). Then you need to bevel off the top of the fingers, to compensate for the slope of the back of the slot, hence the ball end, although fine passes of a sharp pointed tool may do. The quickest way would be to change the cutter, for one with a blunter V (i.e. if original cutter has a 10deg taper, - 5 deg each side of axis - the second cutter will need an 170 deg angle at the point. But if you are changing cutters, then get a pointed V cutter for the first one).  I am only considering using your carbide3d type router, without tool changing, replacing the sheet, whatever, by suggesting the V with ball end tool bit. It is purely a mental exercise, there being better methods of making this type of joint, using specialised jigs, etc., which is not your objective.

There are obvious constraints on what you are trying to do, and with constraints, you have to make compromises. From a cad drawing, i.e. a representation of an object given by 3d points, there has to be another communication method to pass the information that the cnc machine requires. If you restrict the material, and tool profiles, etc, then that amount of additional communication is reduced. The problem becomes much simpler, or at least you may quickly discover it is not solvable. What I'm trying to say, your machine most like can not machine 5 inch steel plate, but you could generate G-code to drive a machine that could, and with minor alterations, the same shape (albeit smaller, and in wood,) could be produced on your machine. The difference, other than in the machine, is all the extra stuff not communicated by the cad drawing.

The communication additions to any drawing that I am making, e.g. the ridgy ballend milled finish, is OK for me and my machine, but it maybe not what you want, but within the limits of your mill, it may be a compromise you have to make. It's all a rich playground!


27
Hi Will, I see you took on board my suggestion of the sort of tool bit that would at least give you a fighting chance of making finger joints, without tool changing, moving work piece etc. If your carbide machine/whatever does not like the ball end, then you can get flat ended ones. If you want small, cheap and cheerful, then the single flute carbide pcb milling cutters will do. They may tend to burn the wood, and you'll need to take baby steps. As you need to bevel off the surface of the tongues, then the ball end will give a smother surface, but if you want dead smooth, then you'll need a number of passes, and as always it's a trade off. Luckily, if you're working in wood, it can need fewer passes than getting a smooth surface in metal.

Of course, if you want to adapt AngelCad, to be any real help, you'll have to pass additional information to the g-code generation, info. that is not encoded in the drawing. For example, in 2.5 d, dxf files, the dxf lines have direction, if you can actually specify that detail consistently in cad. But, then, if you are profiling, you need to go to the left of that line, by the radius of the tool, more or less, but if pocketing, you have to go to the right (or vice versa). Then you have to also remove the rest of the unwanted material. Generally, that is defined in the machine code. If you want that, then you'll have to invent special surfaces/whatever, to communicate that information from AngelCad, or hand craft it as is normally done. Either way, it is not going to happen by magic, and in reality, the actual cad drawing, whether using aurtocad, openscad, or AngelCad, is the trivial aspect. Alternatively, for thin wood, use a laser cutter, all that has to do is follow a path. (Or use a o.5mm carbide end mill).

One other thing, most CNC machines have G02 and GO3, I don't think that openscad or AngelCad generate smooth arcs, which may or may not be important to you. It will be a compromise. I think you could get good results by interpreting the xcsg file that Angellcad produces, directly into G-code, all the numbers are there.

Best wishes,

Ray

28
General Discussion / Re: a first stab at something useful
« on: 2020-08-25, 16:24:18 »
I've added rounded edge choice, up to 16 stand-offs, choice of lid fixings or not, and written a gui for it. Works fine for me, can 3d print any component box I may need, but buying from Amazon is almost as quick! I've not bothered with any data error checking, errors are pretty apparent because the 3d view appears pretty quick, and shows quite good detail.

29
General Discussion / Re: Plans for the future of AngelCAD?
« on: 2020-08-25, 15:45:53 »
For a cnc machine, lets talk 3 axis mill, to keep it simple, what exactly is required? You need a tool path, you need to know the tool diameter, cutting rate, and a load of other stuff. For 3d printing, many of the fdm machines are basically lightweight 3 axis mills, but you're laying down, instead of taking away, so an stl file is easy to pass into a slicer, to produce the desired object.

It is easy enough to generate cnc tool paths programmatically. You can use an stl file, and sort of scan the surface (raster like) . Plenty of free software exists to do that. If you want a graphics program, any graphics program to drive the machine directly, in some other way, then you need to work with tool paths, directions, profile of tool, material of work-pieces, etc. The actual cad, is trivial in comparison. Laser cutting, water jet, plasma, even edm, is simpler then pushing rotating tools through lumps of metal.

30
General Discussion / Re: a first stab at something useful
« on: 2020-08-11, 21:56:30 »
I didn't see the warning messages, since they scrolled up through the narrow window at the bottom of the editor. I noticed the various 'red text', marking errors in my script, when they occurred,  but as the final lines said everything was OK, i never bothered to scroll back through. I've set the array to zero, as you suggested, and now no warnings. Is it possible to import dxf files?

Pages: 1 [2] 3