Schema: aic_curve_swept_solid

Source : ISO 10303-523



SCHEMA aic_curve_swept_solid;

USE FROM measure_schema;    -- ISO 10303-41

USE FROM geometry_schema   -- ISO 10303-42
  (axis2_placement_2d,
   axis2_placement_3d,
   bezier_curve,
   bezier_surface,
   b_spline_curve_with_knots,
   b_spline_curve,
   b_spline_surface,
   b_spline_surface_with_knots,
   cartesian_point,
   circle,
   composite_curve_on_surface,
   conical_surface,
   cylindrical_surface,
   degenerate_toroidal_surface,
   direction,
   ellipse,
   geometric_representation_context,
   hyperbola,
   line,
   parabola,
   pcurve,
   plane,
   polyline,
   quasi_uniform_curve,
   quasi_uniform_surface,
   rational_b_spline_curve,
   rational_b_spline_surface,
   spherical_surface,
   surface_curve,
   surface_of_linear_extrusion,
   surface_of_revolution,
   swept_surface,
   trimmed_curve,
   toroidal_surface,
   uniform_curve,
   uniform_surface,
   vector);

USE FROM geometric_model_schema   -- ISO 10303-42
  (extruded_area_solid,
   revolved_area_solid,
   surface_curve_swept_area_solid,
   swept_disk_solid);

USE FROM representation_schema   -- ISO 10303-43
  (mapped_item);

USE FROM product_property_representation_schema   -- ISO 10303-41
  (shape_representation);


ENTITY curve_swept_solid_shape_representation
  SUBTYPE OF (shape_representation);
WHERE
  WR1: SIZEOF (QUERY (it <* SELF.items | NOT (SIZEOF (['AIC_CURVE_SWEPT_SOLID.SWEPT_AREA_SOLID', 'AIC_CURVE_SWEPT_SOLID.SWEPT_DISK_SOLID', 'AIC_CURVE_SWEPT_SOLID.MAPPED_ITEM', 'AIC_CURVE_SWEPT_SOLID.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0;
  WR2: SIZEOF (QUERY (it <* SELF.items | SIZEOF(['AIC_CURVE_SWEPT_SOLID.SWEPT_AREA_SOLID', 'AIC_CURVE_SWEPT_SOLID.SWEPT_DISK_SOLID', 'AIC_CURVE_SWEPT_SOLID.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0;
  WR3: SIZEOF (QUERY (mi <* QUERY (it <* items | 'AIC_CURVE_SWEPT_SOLID.MAPPED_ITEM' IN TYPEOF(it)) | NOT ('AIC_CURVE_SWEPT_SOLID.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source. mapped_representation)))) = 0;
  WR4: SIZEOF (QUERY (scsas <* QUERY (it <* SELF.items | 'AIC_CURVE_SWEPT_SOLID.SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF(it)) | NOT(('AIC_CURVE_SWEPT_SOLID.SURFACE_CURVE' IN TYPEOF(scsas\surface_curve_swept_area_solid.directrix)) OR ('AIC_CURVE_SWEPT_SOLID.PCURVE' IN TYPEOF(scsas\surface_curve_swept_area_solid.directrix))))) = 0;
END_ENTITY;

ENTITY ruled_surface_swept_area_solid
  SUBTYPE OF (surface_curve_swept_area_solid);
WHERE
  WR1: ('AIC_CURVE_SWEPT_SOLID.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND (SELF.reference_surface\b_spline_surface.u_degree = 1);
  WR2: ('AIC_CURVE_SWEPT_SOLID.PCURVE' IN TYPEOF(SELF.directrix)) OR (('AIC_CURVE_SWEPT_SOLID.B_SPLINE_CURVE' IN TYPEOF(SELF.directrix\surface_curve.curve_3d)) AND (SELF.directrix\surface_curve.curve_3d\b_spline_curve.degree = SELF.reference_surface\b_spline_surface.v_degree));
END_ENTITY;

END_SCHEMA;  -- aic_curve_swept_solid