Navigation: Scripting Reference Manual > Functions & Subroutines > SurfRoughDelete

 

SurfRoughDelete

 

Contact Us: fredsupport@photonengr.com

 

Description

This command deletes a surface roughness model by node number.

 

 

Syntax

SurfRoughDelete roughNode

 

 

Parameters

roughNode As Long

Node number of the surface roughness model being deleted.

 

 

Example

The following example creates a surface roughness model with a Gaussian distribution according to a specified HWHM. 

 

Sub Main

 

          Dim numSamps As Long

          Dim hwhm As Double, maxAng As Double, overallProb As Double

          '----------------

          'USER INPUT

          '----------------

          'number of samples to use in the SRSN roughness model

          numSamps = 90

          'maximum angular deviation for sample points in degrees

          maxAng = 1

          'half-width half-max of the gaussian distribution in degrees

          hwhm = 0.175 'degrees

          'probability of surface normal deviation occurring on intersection

          overallProb = 0.98

          '----------------

          'Derived parameters

          Dim c As Double

          c = hwhm/Sqr(2*Log(2))

 

          'Delete all existing sampled normal roughness models

          Dim roughCount As Long, curRough As Long

          For curRough = SurfRoughGetMaxNodeNum To 0 Step -1

                    If SurfRoughIsValidNode( curRough ) Then

                              If SurfRoughGetType( curRough ) = "SampRanNorm" Then

                                        Print "Sampled random normal roughness model at node " & curRough & " deleted."

                                        SurfRoughDelete( curRough )

                              End If

                    End If

          Next curRough

 

          'Create a new sampled random surface normal (SRSN) roughness model

          Dim roughNode As Long

          roughNode = SurfRoughSRSNCreate( "Gaussian Roughness", "HWHM=" & CStr(hwhm) )

 

          'Dynamically size the arrays for the SRSN sample entries

          Dim angles() As Double

                    ReDim angles( numSamps )

          Dim relProbs() As Double

                    ReDim relProbs( numSamps )

          Dim curSamp As Long

 

          'Set entries for the gaussian SRSN model

          For curSamp = 0 To numSamps-1

                    'Assign angle and gaussian probability with sin(theta) correction factor

                    'Populate angle sample value

                    If curSamp = 0 Then

                              angles(curSamp) = 1e-6

                    Else

                              angles(curSamp) = curSamp*(maxAng/(numSamps-1))

                    End If

                    'Populate probability value

                    relProbs(curSamp) = Exp(-(angles(curSamp)/c)^2)

                    relProbs(curSamp) = relProbs(curSamp)*Sin(DegToRad(angles(curSamp)))

          Next curSamp

 

          'Set the entries to the surface roughness node

          SurfRoughSRSNSetEntries( roughNode, angles(), relProbs() )

 

          'Set the overall probability for the roughness

          SurfRoughSRSNSetOverallRoughnessProbability( roughNode, overallProb )

 

              'Set the descriptor string

              SurfRoughSetDescription( roughNode, "Gaussian with HWHM=" & Format$(hwhm,"#0.00") )

 

          'Update the document

          Update

 

End Sub

 

 

See Also

SurfRoughCopy

SurfRoughDeleteAllNodes

SurfRoughFindName

SurfRoughGetDescription

SurfRoughGetMaxNodeNum

SurfRoughGetName

SurfRoughGetNodeCount

SurfRoughGetType

SurfRoughIsActive

SurfRoughIsValidNode

SurfRoughSetActive

SurfRoughSetDescription

SurfRoughSetName

SurfRoughSRSNCreate

SurfRoughSRSNGetEntries

SurfRoughSRSNGetEntryCount

SurfRoughSRSNGetIthAngle

SurfRoughSRSNGetIthProbability

SurfRoughSRSNGetOverallRoughnessProbability

SurfRoughSRSNSetEntries

SurfRoughSRSNSetOverallRoughnessProbability

 

 

 

 

 

Copyright © Photon Engineering, LLC