export_caero_mesh Module

defines:
  • export_caero_mesh(model, caero_bdf_filename=’caero.bdf’, is_aerobox_model=True)

pyNastran.bdf.mesh_utils.aero.export_caero_mesh.export_caero_mesh(bdf_filename: str | PurePath | BDF, caero_bdf_filename: str | PurePath = 'caero.bdf', is_aerobox_model: bool = True, pid_method: str = 'aesurf', rotate_panel_angle_deg: float = 0.0, write_panel_xyz: bool = True, xref: bool = True, skip_zero_check: bool = False, write_header: bool = True, write_end_data: bool = True) None[source]

Write the CAERO cards as CQUAD4s that can be visualized

Parameters:
modelstr | Path | BDF

a valid geometry

caero_bdf_filenamestr

the file to write

is_aerobox_modelbool; default=True

True : write the aeroboxes as CQUAD4s False : write the macro elements as CQUAD4s

pid_methodstr; default=’aesurf’
‘aesurf’write the referenced AESURF as the property ID

main structure will be pid=1

‘caero’ : write the CAERO1 as the property id ‘paero’ : write the PAERO1 as the property id

rotate_panel_angle_degfloat; default=0.0

panel angle to rotate (e.g., rotate all surfaces by 30 degrees)

write_panel_xyzbool; default=True

write the following table… $$ CAEROID EID XLE YLE ZLE CHORD SPAN XLE+C/4 $$ 1 1 0.0000 0.2500 0.0000 0.0988 0.5000 0.0247 $$ 1 2 0.0988 0.2500 0.0000 0.0988 0.5000 0.1234

skip_zero_checkbool; default=False

if True, verifies that W2GJ, WKK, etc. are not empty an empty WKK will result in no aero load an empty W2GJ is also likely a bug

write_headerbool; default=True

add a CEND and BEGIN BULK at the top

write_end_databool; default=True

add an ENDDATA at the end

pyNastran.bdf.mesh_utils.aero.export_caero_mesh.get_area_arm_dict_panel(model: BDF, percent_location: int = 25) dict[int, int][source]

get the aerobox (area, area*moment_arm dict)

pyNastran.bdf.mesh_utils.aero.export_caero_mesh.get_skj(model: BDF, percent_location: int = 25) ndarray[source]
pyNastran.bdf.mesh_utils.aero.export_caero_mesh.rodriguez_rotate(xyz: ndarray, theta: float, coord: CORD1R | CORD1C | CORD1S | CORD2R | CORD2C | CORD2S, iaxis: int = 0) ndarray[source]

Rotate points about the axis of a coordinate system using Rodrigues’ formula.

The rotation axis passes through coord.origin in the direction of coord.i/j/k (selected by iaxis). Points are translated to the origin, rotated, and translated back.

v_rotated = v * cos(θ) + (k x v) * sin(θ) + k * (k · v) * (1 - cos(θ)) Where:

v is the vector to be rotated. k is the unit vector representing the axis of rotation. θ is the angle of rotation. x denotes the cross product. · denotes the dot product.

Returns: