|
22 | 22 | """Tests trimmed geometry."""
|
23 | 23 |
|
24 | 24 | import numpy as np
|
| 25 | +from pint import Quantity |
25 | 26 | import pytest
|
26 | 27 |
|
27 | 28 | from ansys.api.geometry.v0.commands_pb2 import CreateSketchLineRequest
|
|
30 | 31 | from ansys.geometry.core.designer.face import SurfaceType
|
31 | 32 | from ansys.geometry.core.math import Point3D, UnitVector3D
|
32 | 33 | from ansys.geometry.core.math.point import Point2D
|
| 34 | +from ansys.geometry.core.misc import UNITS |
33 | 35 | from ansys.geometry.core.modeler import Modeler
|
34 | 36 | from ansys.geometry.core.shapes import Circle, Line
|
35 | 37 | from ansys.geometry.core.shapes.box_uv import LocationUV
|
@@ -304,3 +306,48 @@ def test_trimmed_curve_circle_rotate(hedgehog_design):
|
304 | 306 |
|
305 | 307 | assert np.allclose(trimmed_curve.start, Point3D([0.01, 0.01, 0.02]))
|
306 | 308 | assert np.allclose(trimmed_curve.end, Point3D([0.01, 0.01, 0.04]))
|
| 309 | + |
| 310 | + |
| 311 | +def test_trimmed_curve(modeler: Modeler): |
| 312 | + """Test Trimmed Curve class""" |
| 313 | + design = modeler.create_design("trimmed_curve_edges") |
| 314 | + body = design.extrude_sketch("box", Sketch().box(Point2D([0, 0]), 1, 1), 1) |
| 315 | + with pytest.raises(ValueError): |
| 316 | + design.bodies[0].edges[0].shape.intersect_curve(design.bodies[0].edges[1].shape) |
| 317 | + # Retrieve edges and initialize TrimmedCurve objects with the gRPC client |
| 318 | + edge0 = TrimmedCurve( |
| 319 | + geometry=body.edges[0].shape.geometry, |
| 320 | + start=body.edges[0].shape.start, |
| 321 | + end=body.edges[0].shape.end, |
| 322 | + interval=body.edges[0].shape.interval, |
| 323 | + length=body.edges[0].shape.length, |
| 324 | + grpc_client=modeler.client, # Pass the gRPC client here |
| 325 | + ) |
| 326 | + edge1 = TrimmedCurve( |
| 327 | + geometry=body.edges[1].shape.geometry, |
| 328 | + start=body.edges[1].shape.start, |
| 329 | + end=body.edges[1].shape.end, |
| 330 | + interval=body.edges[1].shape.interval, |
| 331 | + length=body.edges[1].shape.length, |
| 332 | + grpc_client=modeler.client, # Pass the gRPC client here |
| 333 | + ) |
| 334 | + |
| 335 | + edge2 = TrimmedCurve( |
| 336 | + geometry=body.edges[4].shape.geometry, |
| 337 | + start=body.edges[4].shape.start, |
| 338 | + end=body.edges[4].shape.end, |
| 339 | + interval=body.edges[4].shape.interval, |
| 340 | + length=body.edges[4].shape.length, |
| 341 | + grpc_client=modeler.client, # Pass the gRPC client here |
| 342 | + ) |
| 343 | + |
| 344 | + # Perform assertions and call intersect_curve |
| 345 | + assert ( |
| 346 | + edge0.__repr__() |
| 347 | + == "TrimmedCurve(geometry: <class 'ansys.geometry.core.shapes.curves.line.Line'>, " |
| 348 | + "start: [-0.5 -0.5 1. ], end: [ 0.5 -0.5 1. ], " |
| 349 | + "interval: Interval(start=0.0, end=1.0), length: 1.0 meter)" |
| 350 | + ) |
| 351 | + assert edge0.length == Quantity(1, UNITS.m) |
| 352 | + assert edge0.intersect_curve(edge1) == [Point3D([-0.5, -0.5, 1.0])] |
| 353 | + assert edge0.intersect_curve(edge2) == [] |
0 commit comments