cwapi3d 33.321.0__tar.gz → 33.322.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. {cwapi3d-33.321.0/src/cwapi3d.egg-info → cwapi3d-33.322.0}/PKG-INFO +1 -1
  2. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/pyproject.toml +1 -1
  3. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/__init__.pyi +2 -0
  4. cwapi3d-33.322.0/src/cadwork/point_2d.pyi +59 -0
  5. {cwapi3d-33.321.0 → cwapi3d-33.322.0/src/cwapi3d.egg-info}/PKG-INFO +1 -1
  6. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cwapi3d.egg-info/SOURCES.txt +1 -0
  7. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/element_controller/__init__.pyi +60 -0
  8. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/LICENSE +0 -0
  9. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/README.md +0 -0
  10. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/setup.cfg +0 -0
  11. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/attribute_controller/__init__.pyi +0 -0
  12. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/attribute_controller/py.typed +0 -0
  13. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/bim_controller/__init__.pyi +0 -0
  14. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/bim_controller/py.typed +0 -0
  15. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/active_point_result.py +0 -0
  16. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/active_point_result.pyi +0 -0
  17. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/api_types.pyi +0 -0
  18. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/attribute_display_settings.pyi +0 -0
  19. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/bim_team_upload_result.pyi +0 -0
  20. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/bim_team_upload_result_code.pyi +0 -0
  21. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/btl_version.pyi +0 -0
  22. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/camera_data.pyi +0 -0
  23. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/connector_axis_item.pyi +0 -0
  24. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/coordinate_system_data.pyi +0 -0
  25. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/dimension_base_format.pyi +0 -0
  26. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/display_attribute.pyi +0 -0
  27. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/division_zone_direction.pyi +0 -0
  28. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/double_shoulder_options.pyi +0 -0
  29. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/dxf_export_version.pyi +0 -0
  30. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/dxf_layer_format_type.pyi +0 -0
  31. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/edge_list.pyi +0 -0
  32. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/element_filter.pyi +0 -0
  33. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/element_grouping_type.pyi +0 -0
  34. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/element_map_query.pyi +0 -0
  35. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/element_module_detail.pyi +0 -0
  36. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/element_module_properties.pyi +0 -0
  37. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/element_type.pyi +0 -0
  38. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/extended_settings.pyi +0 -0
  39. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/facet_list.pyi +0 -0
  40. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/heel_shoulder_beam_geometry.pyi +0 -0
  41. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/heel_shoulder_options.pyi +0 -0
  42. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/hit_result.pyi +0 -0
  43. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/hundegger_machine_type.pyi +0 -0
  44. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/ifc_2x3_element_type.pyi +0 -0
  45. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/ifc_element_combine_behaviour.pyi +0 -0
  46. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/ifc_material_definition.pyi +0 -0
  47. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/ifc_options.pyi +0 -0
  48. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/ifc_options_aggregation.pyi +0 -0
  49. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/ifc_options_level_of_detail.pyi +0 -0
  50. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/ifc_options_project_data.pyi +0 -0
  51. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/ifc_options_properties.pyi +0 -0
  52. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/ifc_predefined_type.pyi +0 -0
  53. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/import_3dc_options.pyi +0 -0
  54. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/language.pyi +0 -0
  55. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/layer_settings.pyi +0 -0
  56. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/multi_layer_cover_type.pyi +0 -0
  57. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/multi_layer_subtype.pyi +0 -0
  58. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/multi_layer_type.pyi +0 -0
  59. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/node_symbol.pyi +0 -0
  60. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/panel_prefab_element_data.pyi +0 -0
  61. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/panel_prefab_element_settings.pyi +0 -0
  62. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/panel_prefab_element_type.pyi +0 -0
  63. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/point.pyi +0 -0
  64. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/point_3d.pyi +0 -0
  65. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/polygon_list.pyi +0 -0
  66. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/process_type.pyi +0 -0
  67. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/projection_type.pyi +0 -0
  68. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/py.typed +0 -0
  69. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/rgb_color.py +0 -0
  70. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/rgb_color.pyi +0 -0
  71. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/rhino_options.pyi +0 -0
  72. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/shortcut_key.pyi +0 -0
  73. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/shortcut_key_modifier.pyi +0 -0
  74. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/shoulder_beam_geometry.pyi +0 -0
  75. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/shoulder_drilling_orientation.pyi +0 -0
  76. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/shoulder_options.pyi +0 -0
  77. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/standard_element_type.pyi +0 -0
  78. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/text_element_type.pyi +0 -0
  79. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/text_object_options.pyi +0 -0
  80. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/vba_catalog_item_type.pyi +0 -0
  81. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/vertex_list.pyi +0 -0
  82. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/weinmann_mfb_version.pyi +0 -0
  83. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cadwork/window_geometry.pyi +0 -0
  84. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/connector_axis_controller/__init__.pyi +0 -0
  85. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/connector_axis_controller/py.typed +0 -0
  86. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cwapi3d.egg-info/dependency_links.txt +0 -0
  87. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/cwapi3d.egg-info/top_level.txt +0 -0
  88. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/dimension_controller/__init__.pyi +0 -0
  89. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/dimension_controller/py.typed +0 -0
  90. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/element_controller/py.typed +0 -0
  91. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/endtype_controller/__init__.pyi +0 -0
  92. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/endtype_controller/py.typed +0 -0
  93. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/file_controller/__init__.pyi +0 -0
  94. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/file_controller/py.typed +0 -0
  95. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/geometry_controller/__init__.pyi +0 -0
  96. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/geometry_controller/py.typed +0 -0
  97. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/list_controller/__init__.pyi +0 -0
  98. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/list_controller/py.typed +0 -0
  99. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/machine_controller/__init__.pyi +0 -0
  100. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/machine_controller/py.typed +0 -0
  101. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/material_controller/__init__.pyi +0 -0
  102. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/material_controller/py.typed +0 -0
  103. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/menu_controller/__init__.pyi +0 -0
  104. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/menu_controller/py.typed +0 -0
  105. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/multi_layer_cover_controller/__init__.pyi +0 -0
  106. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/multi_layer_cover_controller/py.typed +0 -0
  107. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/roof_controller/__init__.pyi +0 -0
  108. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/roof_controller/py.typed +0 -0
  109. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/scene_controller/__init__.pyi +0 -0
  110. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/scene_controller/py.typed +0 -0
  111. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/shop_drawing_controller/__init__.pyi +0 -0
  112. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/shop_drawing_controller/py.typed +0 -0
  113. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/utility_controller/__init__.pyi +0 -0
  114. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/utility_controller/py.typed +0 -0
  115. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/visualization_controller/__init__.pyi +0 -0
  116. {cwapi3d-33.321.0 → cwapi3d-33.322.0}/src/visualization_controller/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cwapi3d
3
- Version: 33.321.0
3
+ Version: 33.322.0
4
4
  Summary: Python bindings for CwAPI3D
5
5
  Author-email: Cadwork <it@cadwork.ca>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cwapi3d"
3
- version = "33.321.0"
3
+ version = "33.322.0"
4
4
  authors = [{ name = "Cadwork", email = "it@cadwork.ca" }]
5
5
  requires-python = ">= 3.14"
6
6
  description = 'Python bindings for CwAPI3D'
@@ -50,6 +50,7 @@ from .layer_settings import layer_settings as layer_settings
50
50
  from .panel_prefab_element_data import panel_prefab_element_data as panel_prefab_element_data
51
51
  from .panel_prefab_element_settings import panel_prefab_element_settings as panel_prefab_element_settings
52
52
  from .point import point as point
53
+ from .point_2d import point_2d as point_2d
53
54
  from .point_3d import point_3d as point_3d
54
55
  from .polygon_list import polygon_list as polygon_list
55
56
  from .rhino_options import rhino_options as rhino_options
@@ -131,6 +132,7 @@ __all__ = [
131
132
  "panel_prefab_element_data",
132
133
  "panel_prefab_element_settings",
133
134
  "point",
135
+ "point_2d",
134
136
  "point_3d",
135
137
  "polygon_list",
136
138
  "rhino_options",
@@ -0,0 +1,59 @@
1
+ class point_2d:
2
+ """A two-dimensional point or vector with the coordinates u and v.
3
+
4
+ Wherever a point_2d is expected, a plain ``(u, v)`` tuple of length 2 may be
5
+ passed instead: it is implicitly converted to a point_2d.
6
+ """
7
+
8
+ def __init__(self, u: float = 0., v: float = 0.):
9
+ """
10
+ Initialize an instance of a point_2d.
11
+
12
+ Parameters:
13
+ u (float): The u-coordinate of the point.
14
+ v (float): The v-coordinate of the point.
15
+ """
16
+ self.u = u
17
+ self.v = v
18
+
19
+ def __eq__(self, other: object) -> bool:
20
+ """
21
+ Check if two points are equal.
22
+
23
+ Returns:
24
+ bool: True if equal, False otherwise.
25
+ """
26
+
27
+ def __ne__(self, other: object) -> bool:
28
+ """
29
+ Check if two points are not equal.
30
+
31
+ Returns:
32
+ bool: True if not equal, False otherwise.
33
+ """
34
+
35
+ def __getitem__(self, index: int) -> float:
36
+ """
37
+ Get coordinate by index (0: u, 1: v).
38
+
39
+ Returns:
40
+ float: The coordinate value.
41
+ Raises:
42
+ IndexError: If index is out of range.
43
+ """
44
+
45
+ def __setitem__(self, index: int, value: float) -> None:
46
+ """
47
+ Set coordinate by index (0: u, 1: v).
48
+
49
+ Raises:
50
+ IndexError: If index is out of range.
51
+ """
52
+
53
+ def __repr__(self) -> str:
54
+ """
55
+ Return the string representation of the point.
56
+
57
+ Returns:
58
+ str: The string representation.
59
+ """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cwapi3d
3
- Version: 33.321.0
3
+ Version: 33.322.0
4
4
  Summary: Python bindings for CwAPI3D
5
5
  Author-email: Cadwork <it@cadwork.ca>
6
6
  License: MIT License
@@ -55,6 +55,7 @@ src/cadwork/panel_prefab_element_data.pyi
55
55
  src/cadwork/panel_prefab_element_settings.pyi
56
56
  src/cadwork/panel_prefab_element_type.pyi
57
57
  src/cadwork/point.pyi
58
+ src/cadwork/point_2d.pyi
58
59
  src/cadwork/point_3d.pyi
59
60
  src/cadwork/polygon_list.pyi
60
61
  src/cadwork/process_type.pyi
@@ -12,6 +12,7 @@ transforms what exists in the model.
12
12
  from cadwork.edge_list import edge_list
13
13
  from cadwork.element_module_properties import element_module_properties
14
14
  from cadwork.facet_list import facet_list
15
+ from cadwork.point_2d import point_2d
15
16
  from cadwork.point_3d import point_3d
16
17
  from cadwork.standard_element_type import standard_element_type
17
18
  from cadwork.text_object_options import text_object_options
@@ -391,6 +392,35 @@ def create_polygon_beam(polygon_vertices: vertex_list, thickness: float, x_local
391
392
  The ID of the created polygon beam.
392
393
  """
393
394
 
395
+
396
+ def create_polygon_beam_vectors(polygon_vertices: list[point_2d | tuple[float, float]], thickness: float, starting_point: point_3d, x_local_direction: point_3d, z_local_direction: point_3d) -> ElementId:
397
+ """Creates a polygon beam from a 2D profile using vectors.
398
+
399
+ The profile is defined in the local uv-plane of the beam and extruded from
400
+ the starting point along the x local direction.
401
+
402
+ Parameters:
403
+ polygon_vertices: The vertices of the 2D profile. Each vertex is a point_2d or a (u, v) tuple.
404
+ thickness: The thickness (extrusion length) of the beam.
405
+ starting_point: The starting point of the beam.
406
+ x_local_direction: The x local direction of the beam.
407
+ z_local_direction: The z local direction of the beam.
408
+
409
+ Examples:
410
+ >>> # Create a triangular beam from a 2D profile
411
+ >>> profile = [cadwork.point_2d(0., 0.), cadwork.point_2d(200., 0.), cadwork.point_2d(100., 173.2)]
412
+ >>> beam_thickness = 1000. # Length of the beam
413
+ >>> start_point = cadwork.point_3d(0., 0., 0.)
414
+ >>> extrusion_vector = cadwork.point_3d(1., 0., 0.) # Direction of extrusion
415
+ >>> z_vector = cadwork.point_3d(0., 0., 1.) # Orientation vector
416
+ >>> polygon_beam_id = ec.create_polygon_beam_vectors(profile, beam_thickness, start_point, extrusion_vector, z_vector)
417
+ >>> # Tuples are implicitly converted to point_2d
418
+ >>> polygon_beam_id = ec.create_polygon_beam_vectors([(0., 0.), (200., 0.), (100., 173.2)], beam_thickness, start_point, extrusion_vector, z_vector)
419
+
420
+ Returns:
421
+ The ID of the created polygon beam.
422
+ """
423
+
394
424
  def create_text_object(text: str, position: point_3d, x_local_direction: point_3d, z_local_direction: point_3d, size: float) -> ElementId:
395
425
  """Creates a text object.
396
426
 
@@ -1323,6 +1353,36 @@ def create_polygon_panel(polygon_vertices: vertex_list, thickness: float, x_loca
1323
1353
  The ID of the created polygon panel element.
1324
1354
  """
1325
1355
 
1356
+
1357
+ def create_polygon_panel_vectors(polygon_vertices: list[point_2d | tuple[float, float]], thickness: float, starting_point: point_3d, x_local_direction: point_3d, z_local_direction: point_3d) -> ElementId:
1358
+ """Creates a polygon panel from a 2D profile using vectors.
1359
+
1360
+ The profile is defined in the local uv-plane of the panel and extruded from
1361
+ the starting point along the x local direction.
1362
+
1363
+ Parameters:
1364
+ polygon_vertices: The vertices of the 2D profile. Each vertex is a point_2d or a (u, v) tuple.
1365
+ thickness: The thickness (extrusion length) of the panel.
1366
+ starting_point: The starting point of the panel.
1367
+ x_local_direction: The X-axis direction of the panel.
1368
+ z_local_direction: The Z-axis direction of the panel.
1369
+
1370
+ Examples:
1371
+ >>> # Create a hexagonal panel from a 2D profile
1372
+ >>> import math
1373
+ >>> radius = 500.
1374
+ >>> sides = 6
1375
+ >>> profile = [cadwork.point_2d(radius * math.cos(2 * math.pi * i / sides), radius * math.sin(2 * math.pi * i / sides)) for i in range(sides)]
1376
+ >>> panel_thickness = 20.
1377
+ >>> start_point = cadwork.point_3d(0., 0., 0.)
1378
+ >>> extrusion_vector = cadwork.point_3d(0., 0., 1.) # Normal direction
1379
+ >>> z_vector = cadwork.point_3d(1., 0., 0.) # Orientation vector
1380
+ >>> polygon_panel_id = ec.create_polygon_panel_vectors(profile, panel_thickness, start_point, extrusion_vector, z_vector)
1381
+
1382
+ Returns:
1383
+ The ID of the created polygon panel element.
1384
+ """
1385
+
1326
1386
  def cut_elements_with_overmeasure(hard_element_id_list: list[ElementId], soft_element_id_list: list[ElementId]) -> None:
1327
1387
  """Cuts elements with overmeasure.
1328
1388
 
File without changes
File without changes
File without changes