You have to use 'set Var = Obj' when collecting objects (geomObj & fabGfxObj)
with DotNet (Visual Basic Express; not VBScript) it is not neccessary to say SET. During programming in Visual Basic SET will be automatically deleted...
I only use vbs so I'm not falimiar with vb.net but I checked the vb6 examples (%SDD_HOME%\standard\examples\pcb\Automation\VisualBasic6)
and it seems you also have to say it's an object when you declare the variable (That's probably why the set got deleted):
Dim geomObj As object
Dim fabGfxObj As object
obviously there seems to be differences between vb6 and dotNet. Within DotNet you don't have to use SET. It doesn't matter which kind of variable you deal with.
But in the meantime I looked into the function description. Within Visual Basic Express Edition you can find an Object Catalog. Within the package "MGCPCB" you can find the function "PutFabricationLayerGfx". The function is descripted as follow:
Public Overridable Function PutFabricationLayerGfx(ByVal eType As MGCPCB.EPcbFabricationType, ByVal eSide As MGCPCB.EPcbSide, ByVal dGraphicsWidth As Double, ByVal nPnts As Integer, ByRef safeArrayOfPnts As Object, Optional ByVal bFilled As Boolean = False, Optional ByVal pComponent As MGCPCB.Component = Nothing, Optional ByVal eUnit As MGCPCB.EPcbUnit = epcbUnitCurrent)
Very interesting is the definition of safeArrayOfPnts. There you can find the keyword ByRef. This means that the function puts data to this variable. I'm confused. I thought that you put an array of data with the geometry to the variable and the function will draw this geometry to the fabrication layer. What does this mean???