Scripting Aperture Curves
In FRED, the Aperture Curve Collection construct is used to assign an optical meaning (clear aperture, edge, obscuration, hole) to a collection of closed curves and can be used to trim a surface. A typical procedure might be:
- Create the surface.
- Create the curve describing the hole / aperture, etc.
- Create a curve of type "Aperture Curve Collection".
- Reference the original curve in the settings of the Aperture Curve.
- Reference the Aperture Curve in the Surface Trimming Specification in the surface.
However, if you have a large number of these curves, it makes sense to use a script to automate the process of adding the curves into the curve list of the Aperture Curve. The example script below does this.
Sub Main Dim ent As T_ENTITY, i As Long Dim apCurv As Long, curveOps() As T_APERTURECURVEOP Dim numCurves As Long, curveOp As T_APERTURECURVEOP apCurv = FindFullName( "Geometry.Elem 1.Aperture Curve" ) GetApertureCurve apCurv, ent, curveOps numCurves = 0 'loop over all entities..... For i = 0 To GetEntityCount() - 1 'for every curve that is not apCurve... If IsCurve(i) Then If i <> apCurv Then 'resize the array ReDim Preserve curveOps(numCurves) As T_APERTURECURVEOP 'add an operation for this curve curveOp.action = "Hole" curveOp.curv = i curveOp.group = 0 curveOps(numCurves) = curveOp numCurves = numCurves + 1 End If End If Next i 'update the Aperture Curve SetApertureCurve apCurv, ent, curveOps Update End Sub<br>
The script assumes the following about the curves:
- They have already been created.
- They need to be added.
- They define holes in the surface.
Before running the script
After running the script
Associated FRED file: ScriptingApertureCurve.frd