45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #File: Ex010_Defining_an_Edge_with_a_Spline.py
 | |
| #To use this example file, you need to first follow the "Using CadQuery From Inside FreeCAD"
 | |
| #instructions here: https://github.com/dcowden/cadquery#installing----using-cadquery-from-inside-freecad
 | |
| 
 | |
| #You run this example by typing the following in the FreeCAD python console, making sure to change
 | |
| #the path to this example, and the name of the example appropriately.
 | |
| #import sys
 | |
| #sys.path.append('/home/user/Downloads/cadquery/examples/FreeCAD')
 | |
| #import Ex010_Defining_an_Edge_with_a_Spline
 | |
| 
 | |
| #If you need to reload the part after making a change, you can use the following lines within the FreeCAD console.
 | |
| #reload(Ex010_Defining_an_Edge_with_a_Spline)
 | |
| 
 | |
| #You'll need to delete the original shape that was created, and the new shape should be named sequentially
 | |
| # (Shape001, etc).
 | |
| 
 | |
| #You can also tie these blocks of code to macros, buttons, and keybindings in FreeCAD for quicker access.
 | |
| #You can get a more information on this example at
 | |
| # http://parametricparts.com/docs/examples.html#an-extruded-prismatic-solid
 | |
| 
 | |
| import cadquery
 | |
| import Part
 | |
| 
 | |
| #The workplane we want to create the spline on to extrude
 | |
| s = cadquery.Workplane("XY")
 | |
| 
 | |
| #The points that the spline will pass through
 | |
| sPnts = [
 | |
|     (2.75, 1.5),
 | |
|     (2.5, 1.75),
 | |
|     (2.0, 1.5),
 | |
|     (1.5, 1.0),
 | |
|     (1.0, 1.25),
 | |
|     (0.5, 1.0),
 | |
|     (0, 1.0)
 | |
| ]
 | |
| 
 | |
| #Generate our plate with the spline feature and make sure it's a closed entity
 | |
| r = s.lineTo(3.0, 0).lineTo(3.0, 1.0).spline(sPnts).close()
 | |
| 
 | |
| #Extrude to turn the wire into a plate
 | |
| result = r.extrude(0.5)
 | |
| 
 | |
| #Boiler plate code to render our solid in FreeCAD's GUI
 | |
| Part.show(result.toFreecad()) |