Dear OpenVSP Team,
I am currently developing a parametric fuselage generator using a custom .vsppart script in OpenVSP v3.51 on Windows.
I am using the "SubSurface Intersect" feature (SS_INTERSECT) via the GUI to handle the geometry cutouts for both passenger windows and doors. This feature works beautifully for my design needs, but I am struggling to find a way to automate it.
However, I have been unable to find an equivalent function in the AngelScript API to create or assign these intersecting geometries programmatically.
The Problem / Impact on Parametric Design: My script automatically handles the layout of doors and windows, which can easily amount to dozens of individual cutouts. Since the fuselage is fully parametric, any global change—such as modifying the total fuselage length, shifting a cabin section, or altering a door's location—instantly invalidates the manual work.
Having to manually delete and recreate dozens of subsurfaces in the GUI every time a parametric variable changes is highly inefficient, error-prone, and defeats the purpose of an automated script.
My Questions:
Is there any existing function or syntax in the current AngelScript API to programmatically assign an intersecting geometry to a subsurface that I might have missed?
If it is not currently exposed, is adding API support for SS_INTERSECT on the development roadmap for future releases?
Are there any recommended scripting workarounds you would suggest to achieve clean, automated window/door cutouts on a fuselage skin without manual GUI intervention?
I am attaching a screenshot to illustrate the density of the windows and doors in the layout, where automating this step is critical for a truly parametric workflow.
Thank you very much for your time and for your continuous efforts in developing OpenVSP.
Best regards,
JaimeHi Rob,
Thank you so much for pointing out SetIntersectSubSurfGeomID and IntersectSubSurf! I completely missed them in the documentation, and this is exactly the solution I was looking for.
To answer your question regarding the engineering purpose: you are absolutely right that this level of detail does not alter the OML or affect the aerodynamic analysis. However, the context of this project is educational.
This script is being developed for an undergraduate Fixed-Wing Aircraft Design course (specifically for their Final Degree Thesis). We challenge our students to generate three-view General Arrangement drawings that match the visual fidelity and standards found in official Airport Planning Manuals (APMs). Additionally, they are required to design the internal passenger cabin layout and cargo holds.
Up until now, I had proposed that the students use the CompGeom tool to perform a boolean subtraction of the window volumes. While CompGeom achieved the visual cutout, it generated an incredibly dense mesh with a massive element count, resulting in bloated file sizes and sluggish performance during subsequent operations. Moving to the subsurface approach is an engineering requirement for us because it keeps the OML model elegant, clean, lightweight, and completely dynamic.
Having the windows and doors accurately cut into the fuselage skin serves two critical purposes for them:
It ensures their 3-view drawings meet the rigorous visual requirements of an APM document.
It acts as a direct visual validation tool to verify that the internal seating pitches, emergency exits, and cross-aisles perfectly align spatially with the external physical openings.
Since they are in a design-and-iterate phase, automating this via the script allows them to change global parameters (like total fuselage length or section shifting) without having to spend hours manually deleting and recreating dozens of subsurfaces in the GUI every time.
Thanks again for your amazing support and for continuing to maintain such a versatile tool!
Best regards,
Jaime
Hi Rob,
Thanks for the heads-up. I completely agree—it has definitely been a "bleeding edge" experience getting this to work reliably!
To give you some perspective on the performance, I’ve been working on optimizing the logic, but the automation process itself does take about 5 minutes to run on my machine. However, the trade-off is absolutely worth it for the end result. Unlike the CompGeom approach, which creates incredibly dense meshes and makes the files sluggish to manipulate, the subsurface method keeps the geometry very lightweight. The final file size only increases by a few megabytes, which is negligible compared to the massive overhead I was seeing previously.
I am fully prepared for the fact that this might break under specific edge cases. I’ll keep a close eye on it as the students start testing more complex configurations, and I will be sure to report back if I find any specific scenarios where it fails.
Thanks again for the support and for keeping the API evolving—it’s making a big difference for our design workflow.
Best regards,
Jaime
--
You received this message because you are subscribed to the Google Groups "OpenVSP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openvsp+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/openvsp/f0d934d0-78e5-4338-97e0-c5f3f7bfc4d8n%40googlegroups.com.