本文整理汇总了Python中OCC.Utils.Context.assert_isdone函数的典型用法代码示例。如果您正苦于以下问题:Python assert_isdone函数的具体用法?Python assert_isdone怎么用?Python assert_isdone使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了assert_isdone函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: intersect_shape_by_line
def intersect_shape_by_line(topods_shape, line, low_parameter=0.0, hi_parameter=float("+inf")):
"""
finds the intersection of a shape and a line
:param shape: any TopoDS_*
:param line: gp_Lin
:param low_parameter:
:param hi_parameter:
:return: a list with a number of tuples that corresponds to the number
of intersections found
the tuple contains ( gp_Pnt, TopoDS_Face, u,v,w ), respectively the
intersection point, the intersecting face
and the u,v,w parameters of the intersection point
:raise:
"""
from OCC.IntCurvesFace import IntCurvesFace_ShapeIntersector
shape_inter = IntCurvesFace_ShapeIntersector()
shape_inter.Load(topods_shape, TOLERANCE)
shape_inter.PerformNearest(line, low_parameter, hi_parameter)
with assert_isdone(shape_inter, "failed to computer shape / line intersection"):
return (shape_inter.Pnt(1),
shape_inter.Face(1),
shape_inter.UParameter(1),
shape_inter.VParameter(1),
shape_inter.WParameter(1))
示例2: make_shell
def make_shell(*args):
shell = BRepBuilderAPI_MakeShell( *args )
st = ShapeToTopology()
with assert_isdone(shell, 'failed to produce shell'):
result = shell.Shell()
shell.Delete()
return st(result)
示例3: make_prism
def make_prism(profile, vec):
'''
makes a finite prism
'''
pri = BRepPrimAPI_MakePrism(profile, vec, True)
with assert_isdone(pri, 'failed building prism'):
pri.Build()
return pri.Shape()
示例4: distance_on_curve
def distance_on_curve(self, distance, close_parameter, estimate_parameter, check_seam=True):
'''returns the parameter if there is a parameter
on the curve with a distance length from u
raises OutOfBoundary if no such parameter exists
'''
ccc = GCPnts_AbscissaPoint(self.adaptor, distance, close_parameter, estimate_parameter, 1e-5)
with assert_isdone(ccc, 'couldnt compute distance on curve'):
return ccc.Parameter()
示例5: mirror_pnt_dir
def mirror_pnt_dir(brep, pnt, direction, copy=False):
'''
@param brep:
@param line:
'''
trns = gp_Trsf()
trns.SetMirror(gp_Ax1(pnt, direction))
brep_trns = BRepBuilderAPI_Transform(brep, trns, copy)
with assert_isdone(brep_trns, 'could not produce mirror'):
brep_trns.Build()
return brep_trns.Shape()
示例6: mirror_axe2
def mirror_axe2(brep, axe2, copy=False):
'''
@param brep:
@param line:
'''
trns = gp_Trsf()
trns.SetMirror(axe2)
brep_trns = BRepBuilderAPI_Transform(brep, trns, copy)
with assert_isdone(brep_trns, 'could not produce mirror'):
brep_trns.Build()
return brep_trns.Shape()
示例7: wire_to_curve
def wire_to_curve(wire, tolerance=TOLERANCE, order=GeomAbs_C2, max_segment=200, max_order=12):
'''
a wire can consist of many edges.
these edges are merged given a tolerance and a curve
@param wire:
'''
adap = BRepAdaptor_CompCurve(wire)
hadap = BRepAdaptor_HCompCurve(adap)
from OCC.Approx import Approx_Curve3d
approx = Approx_Curve3d(hadap.GetHandle(), tolerance, order, max_segment, max_order)
with assert_isdone(approx, 'not able to compute approximation from wire'):
return approx.Curve().GetObject()
示例8: scale
def scale(brep, pnt, scale, copy=False):
'''
@param brep:
@param axe:
@param degree:
'''
trns = gp_Trsf()
trns.SetScale(pnt, scale)
brep_trns = BRepBuilderAPI_Transform(brep, trns, copy)
with assert_isdone(brep_trns, 'could not produce scaling'):
brep_trns.Build()
return brep_trns.Shape()
示例9: rotate
def rotate(brep, axe, degree, copy=False):
'''
@param brep:
@param axe:
@param degree:
'''
from math import radians
trns = gp_Trsf()
trns.SetRotation(axe, radians(degree))
brep_trns = BRepBuilderAPI_Transform(brep, trns, copy)
with assert_isdone(brep_trns, 'could not produce rotation'):
brep_trns.Build()
return ST(brep_trns.Shape())
示例10: resample_curve_with_uniform_deflection
def resample_curve_with_uniform_deflection(curve, deflection=0.5, degreeMin=3, degreeMax=8, continuity=GeomAbs_C2, tolerance=1e-4):
'''
fits a bspline through the samples on `curve`
@param curve: TopoDS_Wire, TopoDS_Edge, curve
@param n_samples:
'''
crv = to_adaptor_3d(curve)
defl = GCPnts_UniformDeflection(crv, deflection)
with assert_isdone(defl, 'failed to compute UniformDeflection'):
print 'number of points:', defl.NbPoints()
sampled_pnts = [defl.Value(i) for i in xrange(1, defl.NbPoints())]
resampled_curve = GeomAPI_PointsToBSpline(point_list_to_TColgp_Array1OfPnt(sampled_pnts), degreeMin, degreeMax, continuity, tolerance)
return resampled_curve.Curve().GetObject()
示例11: make_closed_polygon
def make_closed_polygon(*args):
poly = BRepBuilderAPI_MakePolygon()
for pt in args:
if isinstance(pt, list) or isinstance(pt, tuple):
for i in pt:
poly.Add(i)
else:
poly.Add(pt)
poly.Build()
poly.Close()
with assert_isdone(poly, 'failed to produce wire'):
result = poly.Wire()
return result
示例12: make_wire
def make_wire(*args):
# if we get an iterable, than add all edges to wire builder
if isinstance(args[0], list) or isinstance(args[0], tuple):
wire = BRepBuilderAPI_MakeWire()
for i in args[0]:
wire.Add(i)
wire.Build()
return wire.Wire()
wire = BRepBuilderAPI_MakeWire(*args)
wire.Build()
with assert_isdone(wire, 'failed to produce wire'):
result = wire.Wire()
return result
示例13: make_loft
def make_loft(elements, ruled=False, tolerance=TOLERANCE):
sections = BRepOffsetAPI_ThruSections(False, ruled, tolerance)
for i in elements:
if isinstance(i, TopoDS_Wire):
sections.AddWire(i)
elif isinstance(i, TopoDS_Vertex):
sections.AddVertex(i)
else:
raise TypeError('elements is a list of TopoDS_Wire or TopoDS_Vertex, found a %s fool' % ( i.__class__ ))
sections.CheckCompatibility(True)
sections.Build()
with assert_isdone(sections, 'failed lofting'):
te = ShapeToTopology()
loft = te(sections.Shape())
return loft
示例14: make_polygon
def make_polygon(args, closed=False):
poly = BRepBuilderAPI_MakePolygon()
for pt in args:
# support nested lists
if isinstance(pt, list) or isinstance(pt, tuple):
for i in pt:
poly.Add(i)
else:
poly.Add(pt)
if closed:
poly.Close()
poly.Build()
with assert_isdone(poly, 'failed to produce wire'):
result = poly.Wire()
return result
示例15: minimum_distance
def minimum_distance(shp1, shp2):
'''
compute minimum distance between 2 BREP's
@param shp1: any TopoDS_*
@param shp2: any TopoDS_*
@return: minimum distance,
minimum distance points on shp1
minimum distance points on shp2
'''
from OCC.BRepExtrema import BRepExtrema_DistShapeShape
bdss = BRepExtrema_DistShapeShape(shp1, shp2)
bdss.Perform()
with assert_isdone(bdss, 'failed computing minimum distances'):
min_dist = bdss.Value()
min_dist_shp1, min_dist_shp2 = [],[]
for i in range(1,bdss.NbSolution()+1):
min_dist_shp1.append(bdss.PointOnShape1(i))
min_dist_shp2.append(bdss.PointOnShape2(i))
return min_dist, min_dist_shp1, min_dist_shp2