Einführung

Antworten
Siegfried Schneider
Site Admin
Beiträge: 245
Registriert: Fr Dez 17, 2021 20:52

Einführung

Beitrag von Siegfried Schneider »

In der Makrodatenbank können beliebige Script-Snippets verwendet werden, um die abgerufenen Zeichnungselemente vor Einfügen in die Zeichnung zu modifizieren. alle Script-Snippets müssen von ScriptBase oder einer abgeleiteten Klasse abgeleitet werden. Zusätzliche Script-Snippets müssen als Code-Datei (*.vb) im Verzeichnis Binaries/Scripting abgelegt werden.
Änderungen an den Script-Dateien werden erst nach Neustart des Programms wirksam!

Beispiel für ein Script-Snippet:

Code: Alles auswählen

Imports System
Imports LKExplorer
Imports System.Linq
Imports System.Collections.Generic
Imports Segas.CadLib

Public Class TestObjekt
    Inherits ScriptBase
    Private Shared count As Integer = 0
    Protected m_Page As WSPage
    
    Public Sub New()
        MyBase.New()
    End Sub

    'Die Properties müssen die Form Property x As String haben.
    Public Property TestProp As String
        Get
            count += 1
            Return count.ToString()
        End Get
        Set(value As String)

        End Set
    End Property

    'Die Methoden müssen die Form Sub x(PropertyObject) haben.
    Public Sub TestMethod(Obj As PropertyObject)
        Dim Parameter1 = Obj.GetVarTagParam(1)
        Dim Parameter2 = Obj.GetVarTagParam(2)
        '...
        m_Page.Children.Remove(Obj.Source)
    End Sub
    
    Protected Overrides Sub OnLoad()
        'Wird beim Laden ausgeführt
    End Sub

    Public Shared Shadows Sub Reset()
        'Wird von dem Reset Ereignis getriggert
    End Sub

    Public Overrides Sub BeforeExecute(Page As WSPage)
        'Wird vor dem Script ausgeführt
        m_Page = Page
    End Sub

    Public Overrides Sub AfterExecute(Page As WSPage)
        'Wird nach dem Script ausgeführt
    End Sub
End Class
Um einer Zeichnung in der Makrodatenbank ein bestimmtes Script zuzuweisen, muss der Scriptname in spitzen Klammern am Ende des Makronamens angegeben werden:

"Mein tolles Zeichnungsmakro<TestObjekt>"

Im Zeichnungsmakro wird auf die Properties und Methoden des Script-Objekts zugegriffen, indem in beliebigen Texten (auch Texte in Bauteilen, keine Pintexte) ein Platzhalter positioniert werden kann.

Properties:
"Script wurde <%TestProp> mal ausgeführt." wird nach Ausführung zu "Script wurde 1 mal ausgeführt."

Methoden:
Der Text <%TestMethod|A|B> führt die Methode TestMethod an dieser Stelle der Zeichnung aus, übergibt die Parameter A und B und löscht anschließend den Text aus der Zeichnung mittels "m_Page.Children.Remove(Obj.Source)".
Die Ausführung erfolgt nach Position, von links oben nach rechts unten.
Siegfried Schneider
XchangeCAD Entwicklung
support@segas.net
Antworten