gmlewis/step/cad does not have a README file
pub suberror CsgEvalError {
CsgEvalError(String)
}pub struct AcornNut {
across_flats_mm : Double
body_height_mm : Double
bore_diameter_mm : Double
total_height_mm : Double
dome_diameter_mm : Double
wall_mm : Double
face_angle_deg : Double
rotation_deg : Double
}pub(all) enum AnalysisError {
NotAnalytic(String)
EmptySection
UnsupportedTransform(String)
DegenerateProfile
}pub struct Angle {
// private fields
}pub struct BezierAnchor {
position : (Double, Double)
handle_in : (Double, Double)
handle_out : (Double, Double)
}pub struct CalibrationChamferBlock {
length_mm : Double
width_mm : Double
height_mm : Double
chamfer_size_mm : Double
fillet_radius_mm : Double
fillet_segments : Int
}fn CalibrationChamferBlock::new(length_mm : Double, width_mm : Double, height_mm : Double, chamfer_size_mm? : Double, fillet_radius_mm? : Double, fillet_segments? : Int) -> Shapefn ChamferedPrism::from_chamfer(base : Array[(Double, Double)], height : Double, bottom_chamfer? : Double, top_chamfer? : Double, chamfer_depth? : Double, hole? : Array[(Double, Double)], round_bore? : ((Double, Double), Double)) -> ChamferedPrismfn ChamferedPrism::new(base : Array[(Double, Double)], levels : Array[(Double, Double)], hole? : Array[(Double, Double)], hole_levels? : Array[(Double, Double)], round_bore? : ((Double, Double), Double)) -> ChamferedPrismpub struct ConicalNut {
across_flats_mm : Double
height_mm : Double
bore_diameter_mm : Double
face_angle_deg : Double
lead_in_mm : Double
rotation_deg : Double
}fn ConicalNut::new(across_flats_mm~ : Double, height_mm~ : Double, bore_diameter_mm~ : Double, face_angle_deg~ : Double, lead_in_mm? : Double, rotation_deg? : Double) -> ConicalNutpub struct Cuboid {
sx : Double
sy : Double
sz : Double
}pub struct Cylinder {
diameter : Double
height : Double
}pub enum Diagnostic {
NominalUnion(String)
NominalDifference(String)
DroppedNestedBoolean(String)
EdgeFeatureRequiresKernel(String)
EmptySolid(String)
}pub(all) struct EdgeFeature {
base : SceneNode
selector : EdgeSelector
size_mm : Double
angle_deg : Double?
}pub(all) enum EdgeSelector {
AllEdges
EdgesByDirection((Double, Double, Double), Double)
EdgesNearPoint((Double, Double, Double), Double)
EdgeIndices(Array[Int])
}pub struct ExtrudedArcProfile {
segments : Array[ProfileSegment]
height_mm : Double
round_bore : ((Double, Double), Double)?
holes : Array[Array[ProfileSegment]]
}fn ExtrudedArcProfile::new(segments : Array[ProfileSegment], height_mm : Double, round_bore? : ((Double, Double), Double), holes? : Array[Array[ProfileSegment]]) -> ExtrudedArcProfilepub struct ExtrudedProfile {
profile : Profile2D
height_mm : Double
round_bore : ((Double, Double), Double)?
}fn ExtrudedProfile::new(outer : Array[(Double, Double)], height_mm : Double, holes? : Array[Array[(Double, Double)]], round_bore? : ((Double, Double), Double)) -> Shapefn ExtrudedProfile::on_face(self : ExtrudedProfile, face : FaceInfo, into? : Bool, offset? : Double, center? : (Double, Double), name? : String, color? : Rgb) -> SceneNodefn ExtrudedProfile::section_at(self : ExtrudedProfile, z : Double) -> Result[Section, AnalysisError]pub struct FaceInfo {
normal : (Double, Double, Double)
point : (Double, Double, Double)
area : Double
u : (Double, Double, Double)
v : (Double, Double, Double)
boundary : Array[(Double, Double, Double)]
face_id : Int
surface_id : Int
}pub struct HexHeadWasherFace {
across_flats_mm : Double
head_height_mm : Double
face_angle_deg : Double
shank_diameter_mm : Double
shank_length_mm : Double
washer_face_diameter_mm : Double
washer_face_height_mm : Double
tip_chamfer_mm : Double
}fn HexHeadWasherFace::new(across_flats_mm~ : Double, head_height_mm~ : Double, face_angle_deg? : Double, shank_diameter_mm? : Double, shank_length_mm? : Double, washer_face_diameter_mm? : Double, washer_face_height_mm? : Double, tip_chamfer_mm? : Double) -> HexHeadWasherFacepub struct Length {
// private fields
}pub(all) enum PrismError {
PrismTooFewVertices
PrismBadLevels
PrismInsetTooLarge(Int)
PrismSelfIntersection
PrismBadHole
}fn Profile2D::chamfer_vertices(profile : Array[(Double, Double)], distance : Double, angle_deg? : Double, which? : VertexSelection) -> Result[Array[(Double, Double)], ProfileOpError]fn Profile2D::fillet_vertices(profile : Array[(Double, Double)], radius : Double, segments? : Int, which? : VertexSelection) -> Result[Array[(Double, Double)], ProfileOpError]pub(all) enum ProfileOpError {
TooFewVertices
NonPositiveSize
FeatureTooLarge(Int)
VertexIndexOutOfRange(Int)
SelfIntersection
}pub(all) enum ProfileSegment {
SegmentLine((Double, Double), (Double, Double))
SegmentArc((Double, Double), (Double, Double), (Double, Double))
}pub(all) enum RevProfileError {
EmptyProfile
DiscontinuousChain(Int)
NegativeRadius(Int)
ArcEndpointMismatch(Int)
DegenerateArc(Int)
NotClosed
DegenerateArea
}pub(all) enum RevSegment {
RevLine((Double, Double), (Double, Double))
RevArc((Double, Double), (Double, Double), (Double, Double))
}fn RevolvedProfile::chamfered_cylinder(diameter : Double, height : Double, bottom_chamfer? : Double, top_chamfer? : Double) -> RevolvedProfilefn RevolvedProfile::chamfered_tube(outer_diameter : Double, inner_diameter : Double, height : Double, outer_bottom_chamfer? : Double, outer_top_chamfer? : Double, inner_bottom_chamfer? : Double, inner_top_chamfer? : Double) -> RevolvedProfilefn RevolvedProfile::cup(outer_diameter : Double, height : Double, bore_diameter : Double, floor_thickness : Double, top_chamfer? : Double, bore_lead_in? : Double) -> RevolvedProfilefn RevolvedProfile::frustum(radius_bottom : Double, radius_top : Double, height : Double) -> RevolvedProfilefn RevolvedProfile::section_at(self : RevolvedProfile, z : Double) -> Result[Section, AnalysisError]fn RevolvedProfile::tube(outer_diameter : Double, inner_diameter : Double, height : Double) -> RevolvedProfilefn RevolvedProfile::with_band_color(self : RevolvedProfile, band : Int, color : Rgb) -> RevolvedProfilepub(all) struct Section {
z_mm : Double
area_mm2 : Double
perimeter_mm : Double
outer_radius_mm : Double
inner_radius_mm : Double
rings : Array[SectionRing]
}pub(all) struct SectionRing {
inner_radius_mm : Double
outer_radius_mm : Double
}pub enum Severity {
Info
Warning
Error
}pub enum Shape {
Cuboid(Cuboid)
Cylinder(Cylinder)
RevolvedProfile(RevolvedProfile)
ChamferedPrism(ChamferedPrism)
SocketedSolid(SocketedSolid)
ConicalNut(ConicalNut)
SlitTube(SlitTube)
AcornNut(AcornNut)
SquareNut(SquareNut)
CalibrationChamferBlock(CalibrationChamferBlock)
ExtrudedProfile(ExtrudedProfile)
ExtrudedArcProfile(ExtrudedArcProfile)
SquareHoleWasher(SquareHoleWasher)
TabWasher(TabWasher)
HexHeadWasherFace(HexHeadWasherFace)
ExtrudedBezierProfile(ExtrudedBezierProfile)
SweptProfile(SweptProfile)
Fillet(EdgeFeature)
Chamfer(EdgeFeature)
Union(BooleanUnion)
Difference(BooleanDifference)
}pub struct SlitTube {
outer_diameter_mm : Double
inner_diameter_mm : Double
length_mm : Double
slot_width_mm : Double
}pub(all) struct SocketGeometry {
top_z : Double
top_radius : Double
nominal_radius : Double
top_hex_radius : Double
mid_z : Double
floor_z : Double
lead : Double
across_flats : Double
rotation_deg : Double
}pub struct SocketedSolid {
body : RevolvedProfile
across_flats_mm : Double
socket_floor_z_mm : Double
lead_in_mm : Double
rotation_deg : Double
conical : Bool
rim_angle_deg : Double
floor_angle_deg : Double
}fn SocketedSolid::new(body : RevolvedProfile, across_flats_mm : Double, socket_floor_z_mm : Double, lead_in_mm? : Double, rotation_deg? : Double, conical? : Bool, rim_angle_deg? : Double, floor_angle_deg? : Double) -> SocketedSolidpub struct SquareHoleWasher {
outer_diameter_mm : Double
square_side_mm : Double
thickness_mm : Double
}fn SquareHoleWasher::new(outer_diameter_mm~ : Double, square_side_mm~ : Double, thickness_mm~ : Double) -> SquareHoleWasherpub struct SquareNut {
across_flats_mm : Double
height_mm : Double
bore_diameter_mm : Double
face_angle_deg : Double
rotation_deg : Double
}pub struct StepContext {
repo : Repository
length_unit_id : EntityId
plane_angle_unit_id : EntityId
solid_angle_unit_id : EntityId
uncertainty_id : EntityId
repo_ctx_id : EntityId
snapping : Double?
entities : Map[Int, AnyEntity]
directions : Map[String, Ref]
vectors : Map[String, Ref]
cartesian_points : Map[String, Ref]
vertex_points : Map[Int, Ref]
lines : Map[String, Ref]
edge_curves : Map[String, Ref]
axis2_placements : Map[String, Ref]
oriented_edges : Map[String, Ref]
edge_loops : Map[String, Ref]
face_bounds : Map[String, Ref]
advanced_faces : Map[String, Ref]
}fn StepContext::advanced_face(self : StepContext, bounds : Array[Ref], face_geometry : Ref, same_sense : Bool) -> Reffn StepContext::axis2_placement_3d(self : StepContext, origin : Ref, axis : Ref, ref_direction : Ref) -> Reffn StepContext::definitional_representation(self : StepContext, items : Array[Ref], context_of_items : Ref) -> Reffn StepContext::edge_curve(self : StepContext, start : Ref, end : Ref, curve : Ref, same_sense : Bool) -> Reffn StepContext::surface_curve(self : StepContext, curve_3d : Ref, associated_geometry : Array[Ref]) -> Refpub(all) struct SurfaceInventory {
plane : Int
cylinder : Int
cone : Int
sphere : Int
torus : Int
bspline : Int
swept : Int
other : Int
}fn SweepProfile::new(vertices : Array[(Double, Double, Double)], center? : (Double, Double, Double), holes? : Array[Array[(Double, Double, Double)]], normal_dir? : (Double, Double, Double), right_dir? : (Double, Double, Double)) -> SweepProfilepub struct SweptProfile {
path : SweepPath
profile : SweepProfile
make_start_cap : Bool
make_end_cap : Bool
straight_holes : Bool
straight_outline : Bool
smooth_helix : Bool
corner_override : (Array[(Double, Double, Double)], Array[(Double, Double, Double)])?
}fn SweptProfile::new(path~ : SweepPath, profile~ : SweepProfile, make_start_cap? : Bool, make_end_cap? : Bool, straight_holes? : Bool, straight_outline? : Bool, smooth_helix? : Bool, corner_override? : (Array[(Double, Double, Double)], Array[(Double, Double, Double)])?) -> Shapepub struct TabWasher {
outer_diameter_mm : Double
bore_diameter_mm : Double
tab_width_mm : Double
tab_length_mm : Double
fillet_radius_mm : Double
thickness_mm : Double
}fn chamfer_edges(base : SceneNode, size_mm : Double, angle_deg? : Double, selector? : EdgeSelector, name? : String) -> SceneNodefn chamfered_prism_mesh(prism : ChamferedPrism) -> (Array[(Double, Double, Double)], Array[Array[Int]])fn compile_calibration_chamfer_block(ctx : StepContext, node : SceneNode, block : CalibrationChamferBlock, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_chamfered_prism(ctx : StepContext, node : SceneNode, prism : ChamferedPrism, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_conical_nut(ctx : StepContext, node : SceneNode, n : ConicalNut, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_conical_socketed_solid(ctx : StepContext, node : SceneNode, s : SocketedSolid, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_extruded_arc_profile(ctx : StepContext, node : SceneNode, e : ExtrudedArcProfile, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_extruded_bezier_profile(ctx : StepContext, node : SceneNode, extrusion : ExtrudedBezierProfile, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_extruded_profile(ctx : StepContext, node : SceneNode, extrusion : ExtrudedProfile, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_hex_head_pcurves(ctx : StepContext, node : SceneNode, h : HexHeadWasherFace, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_revolved_profile(ctx : StepContext, node : SceneNode, rev : RevolvedProfile, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_socketed_solid(ctx : StepContext, node : SceneNode, s : SocketedSolid, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn compile_square_hole_washer(ctx : StepContext, node : SceneNode, w : SquareHoleWasher, reverse? : Bool, parent? : Transform?) -> Array[Ref]fn conical_nut_mesh(n : ConicalNut, angular_segments? : Int) -> (Array[(Double, Double, Double)], Array[Array[Int]])fn csg_eval_script_path(root : String?) -> Stringfn extruded_arc_mesh(e : ExtrudedArcProfile, arc_segments? : Int) -> (Array[(Double, Double, Double)], Array[Array[Int]])fn fillet_edges(base : SceneNode, radius_mm : Double, selector? : EdgeSelector, name? : String) -> SceneNodeasync fn find_csg_eval_script(root : String?) -> String?fn grid_of_holes(cols : Int, rows : Int, pitch_x : Double, pitch_y : Double, center? : (Double, Double)) -> Array[(Double, Double)]fn helix_path(pos? : (Double, Double, Double), size_per_turn? : (Double, Double, Double), num_turns? : Double, num_segs_per_turn? : Int, start_angle? : Double, clockwise? : Bool) -> SweepPathfn midpoint(a : (Double, Double), b : (Double, Double)) -> (Double, Double)fn point_on_circle(radius : Double, angle_deg : Double) -> (Double, Double)fn project_point_to_line(p : (Double, Double), a : (Double, Double), b : (Double, Double)) -> (Double, Double)fn rev_mesh(rev : RevolvedProfile, angular_segments? : Int, arc_segments? : Int) -> (Array[(Double, Double, Double)], Array[Array[Int]])fn rotate_point(p : (Double, Double, Double), rx : Double, ry : Double, rz : Double) -> (Double, Double, Double)fn socketed_solid_mesh(s : SocketedSolid, angular_segments? : Int, arc_segments? : Int) -> (Array[(Double, Double, Double)], Array[Array[Int]])fn tube(outer_diameter : Double, inner_diameter : Double, height : Double, segments? : Int) -> Shapeasync fn write_text_file(text : String, out_path : String?) -> UnitInstall
Download zipA high-level 3D modeling DSL and lossless STEP (ISO 10303-21) parser/serializer in MoonBit.