Skip to content

Adding the template diagrams from TNO in TNA#39

Merged
tomvanmele merged 6 commits into
BlockResearchGroup:mainfrom
ricardoavelino:templatediag
Aug 26, 2025
Merged

Adding the template diagrams from TNO in TNA#39
tomvanmele merged 6 commits into
BlockResearchGroup:mainfrom
ricardoavelino:templatediag

Conversation

@ricardoavelino
Copy link
Copy Markdown
Contributor

Template meshes are added for:

  • circular arrangements
  • rectangular arrangements
  • linear arrangements

A helper function to define supports in these diagrams and to find corners is also added.

TODO: move to appropriate pattern and possibly simplify/review the logic

Comment thread src/compas_tna/diagrams/diagram.py Outdated
Comment thread src/compas_tna/diagrams/diagram.py Outdated
Comment thread src/compas_tna/diagrams/diagram.py Outdated
Comment thread src/compas_tna/diagrams/diagram.py Outdated
Comment thread src/compas_tna/diagrams/diagram_arch.py Outdated
Comment thread src/compas_tna/diagrams/diagram_circular.py Outdated
Comment thread src/compas_tna/diagrams/formdiagram.py Outdated
Comment thread src/compas_tna/diagrams/formdiagram.py Outdated
Comment thread src/compas_tna/diagrams/formdiagram.py Outdated
Comment thread src/compas_tna/diagrams/formdiagram.py
@ricardoavelino
Copy link
Copy Markdown
Contributor Author

ricardoavelino commented Aug 21, 2025

Added

  • Added comprehensive form diagram creation methods to FormDiagram class:
    • create_cross() - Creates cross discretisation with orthogonal arrangement and quad diagonals
    • create_fan() - Creates fan discretisation with straight lines to corners
    • create_parametric_fan() - Creates parametric fan diagrams with lambda parameter control
    • create_cross_with_diagonal() - Creates cross discretisation with diagonal lines
    • create_ortho() - Creates orthogonal discretisation
    • create_circular_radial() - Creates circular radial form diagrams with equally spaced hoops
    • create_circular_radial_spaced() - Creates circular radial form diagrams with hemispheric spacing
    • create_circular_spiral() - Creates circular spiral form diagrams
    • create_arch() - Creates arch form diagrams with semicircular projection
    • create_arch_equally_spaced() - Creates arch form diagrams with equally spaced nodes
  • Added support assignment methods:
    • assign_support_type() - Assigns supports based on type ("corners" or "all")
  • Added corner detection functionality:
    • corner_vertices() - Identifies corner vertices on boundary with configurable angle threshold
  • Added comprehensive mesh creation functions in diagram_rectangular.py:
    • create_cross_mesh() - Creates cross pattern meshes
    • create_fan_mesh() - Creates fan pattern meshes
    • create_parametric_fan_mesh() - Creates parametric fan meshes with lambda interpolation
    • create_cross_with_diagonal_mesh() - Creates cross meshes with diagonals
    • create_ortho_mesh() - Creates orthogonal grid meshes
  • Added circular mesh creation functions in diagram_circular.py:
    • create_circular_radial_mesh() - Creates circular radial meshes
    • create_circular_radial_spaced_mesh() - Creates hemispherically spaced circular meshes
    • create_circular_spiral_mesh() - Creates circular spiral meshes
  • Added arch mesh creation functions in diagram_arch.py:
    • create_arch_linear_mesh() - Creates arch meshes with semicircular projection
    • create_arch_linear_equally_spaced_mesh() - Creates arch meshes with equally spaced nodes

Changed

  • Refactored parameter passing from xy_span=[[x0, x1], [y0, y1]] to x_span=(x0, x1), y_span=(y0, y1) for better API consistency
  • Changed center parameter from list to tuple in circular diagram functions for immutability and consistency
  • Updated function signatures to use single-line format for Black compatibility
  • Improved code formatting and linting across all diagram generation files
  • Fixed various spelling errors and documentation formatting issues
  • Renamed create_delta_form() to create_cross_with_diagonal() for better clarity
  • Updated support assignment to use is_support attribute instead of deprecated is_fixed
  • Removed deprecated form.parameters usage from all form creation methods

@ricardoavelino
Copy link
Copy Markdown
Contributor Author

@tomvanmele little reminder

@tomvanmele tomvanmele merged commit 6e7f7c0 into BlockResearchGroup:main Aug 26, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants