So Paul...just curious ;-) , but
Why wouldn't you make a universal shape to cover most if not all the timing diagram shapes
I.e. something like
Props.pattern = <0000,0011,1100, 1111, etc>
Props.misc
Geometries for all transitions
Gemoetry 1 <sharp low to high>
Geometry 2 <shapr high to low>
Geometry 3 <gradual low to high>
Geometry 4 <gradual high to low>
Geometry 5 <low>
Geometry 6 <high>
user.selectgeo1 = if (props.pattern = 0011, 1,0)
user.selectgeo2 = if (props.pattern = 1100, 1, 0)
Geometry1.noshow = !selectgeo1
Geometry2.noshow = !selectgeo2
Then if somebody wanted write some VBA to create a timing diagram, it would be
-lay the shapes out
-plug in the right code per shape
So then could even think about import bit vectors (or modify imported bit vectors) to turn into drawings.
Just curious ;-)