ГОСТ Р ИСО 10303-503—2016
4.4 Определение функции схемы aic_geometrically_boundod_2d_wireframe
4.4.1 Функция valid_basis_curve_in_2d_wiroframe
Булева функция valid_basis_curvo_in_2d_wiroframe выполняет проверку того, допускается ли
использование исходной кривой в качестве основы другой кривой при представлении формы, опре
деляемой двумерной геометрически ограниченной каркасной модели. Это касается правильного ис
пользования ограниченных кривых как основы двумерной эквидистантной кривой, представленной
объектом offset_curve_2d, репликации кривой, представленной объектом curve_replica, и составной
кривой, представленной объектом composite_curve. Если в качестве исходной кривой используется
неограниченная кривая, такая, как парабола или гипербола, эта кривая должна быть обрезана. Функция
является рекурсивной, чтобы можно было выполнять проверку до необходимого уровня.
EXPRESS-слециФикааия:
*)
FUNCTION valid_basis_curve_in_2d_wireframe (crv : curve) :BOOLEAN:
IF SIZEOF ((’AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.POLYLINE’,
’AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.B_SPLINE_CURVE\
’AIC_GEOMETRICALLY_BOUNDED_2D_.WIREFRAME.ELLIPSE’.
’AIC_GEOMETRICALLY_BOUNDED_2D„WIREFRAME.CIRCLE1‘
TYPEOF (crv)) = 1
THEN RETURN (TRUE):
ELSE
- if the curve is a trimmed_curve
IF ((’AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.TRIMMED_CURVE’)
IN TYPEOF (crv)) THEN
- if a line, parabola, or hyperbola is being trimmed, then valid
IF SIZEOF (rAIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.UNE\
’AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.PARABOLA’,
’AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.HYPERBOLA1] *
TYPEOF(crv\trimmed_curve.basis_curve)) = 1
THEN RETURN (TRUE):
~ otherwise, recursively check basis_curve
ELSE RETURN (valid_basis_curve_in_2d_wireframe
(crv\trimmed_curve.basis_curve));
ENDJF;
ELSE
- recursively check the offset_curve basis curve
IF ((’AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.OFFSET_CURVE_2D’)
IN TYPEOF (crv))
THEN RETURN (valid_basis_curve_in_2d_wireframe
(crv\offset_curve_2d.basis_curve)):
ELSE
- recursively check the curve_replica parent curve
IF ((’AIC_GEOMETRICALLY_BOUNDED_2D_WIREFRAME.CURVE_REPLICA’)
IN TYPEOF (crv))
THEN RETURN (valid_basis_curve_in_2d_wireframe
(crv\curve_replica.paren t_curve)):
ELSE
- recursively check the composite_curve segments
6