Skip to content
Sebi1006 edited this page Apr 29, 2021 · 11 revisions

This is an example project of a petri net.

Concept Editor

Petri Net Example Concept Editor

Shape DSL

node placeNode for Place {
    edges { 
        arcPlaceTransition
    }
    style: placeStyle
    sizeMin(width: 200, height: 400)
    sizeMax(width: 200, height: 400)
    resizing(horizontal: false, vertical: false, proportional: false)
    ellipse {
        size(width: 50, height: 50)
        position(x: 0, y: 50)
    }
}

node tokenNode for Token {
    edges {}
    style: tokenStyle
    sizeMin(width: 200, height: 400)
    sizeMax(width: 200, height: 400)
    resizing(horizontal: false, vertical: false, proportional: false)
    ellipse {
        size(width: 10, height: 10)
        position(x: 0, y: 50)
    }
}

node transitionNode for Transition {
    edges {
        arcTransitionPlace
    }
    style: transitionStyle
    sizeMin(width: 200, height: 400)
    sizeMax(width: 200, height: 400)
    resizing(horizontal: false, vertical: false, proportional: false)
    rectangle {
        size(width: 20, height: 50)
        position(x: 0, y: 50)
    }
}

edge arcPlaceTransition for Place.Arc {
    target: Transition
    style: defaultEdge
    placing {
        offset: 20.0
        polygon {
            style: arrow
            point(x: 0, y: 0)
            point(x: 10, y: 5)
            point(x: 7, y: 0)
            point(x: 10, y: -5)
        }
    }
}

edge arcTransitionPlace for Transition.Arc2 {
    target: Place
    style: defaultEdge
    placing {
        offset: 20.0
        polygon {
            style: arrow
            point(x: 0, y: 0)
            point(x: 10, y: 5)
            point(x: 7, y: 0)
            point(x: 10, y: -5)
        }
    }
}