New Pan Code

Build #100 introduces two new keywords for pantographs: pantograph and panarm. With these two new keywords, it is now possible to model pantographs where the elements rotate about the pivot points properly, instead of the old code which only distorted the elements.


Syntax: Pantograph w/l/h <ComponentName>

This component introduces the pantograph component. Syntax and use is the same as the include statement, however pantograph must be used instead of include:

  • The l value defines the l position of the contact point: this is used to calculate the appropriate height of the wire at this point. (L dimension in the above diagram.)
  • The h value defiens the height of the bottom pivot of the arms. This value is important as it is used to calculate the position of the pantograph arms. (H dimension in the above diagram.)
  • A pantograph component must be used, as this initialises the transforms used for the arm positioning.


Syntax: panarm w/l/h hyp <ComponentName>

This keyword includes a sub-component in the same way as an include keyword, but with the addition of a vertical rotation according to the wire height.

  • The sub-component is included such that the 0/0/0 point of the sub-component is at the specified w/l/h point of the parent component.
  • The hyp parameter determines the rotation as follows. (See diagram). Imagine a right-angle triangle from the base point of the pantograph (shown by L and H in the diagram) to the contact wire with the hypotenuese shown as the red arm. The hyp parameter specifes the length of this hypotenuese and hence the angle of the red arm.
  • In the diagram example, the red arm is the full length of the hypotenuese for the purposes of illustration, in practice you would only model the component as far as the pivot with the yellow arm, however, the hyp parameter is still the full length of the imaginary hypotenuese
  • Note that sub-component angles are also calculated against the full height from the pantograph base to the contact wire.

Example code

Name	PanTest
Length	400
Weight	50
Max	50
Power	50
gauge 48

fill 	 -40/0/30 40/0/30 40/400/30 -40/400/30 255.255.255
fill	 -40/0/100 40/0/100 40/400/100 -40/400/100 255.255.255

fill	-40/0/30 -40/0/100 -40/400/100 -40/400/30 192.192.192	
fill	-40/20/40 -40/20/90 -40/380/90 -40/380/40 192.0.0

fill 	40/0/30 40/0/100 40/400/100 40/400/30 192.192.192	
fill	-40/0/30 40/0/30 40/0/100 -40/0/100 128.128.128	
fill 	-40/400/30 40/400/30 40/400/100 -40/400/100 128.128.128

	Pantograph 0.300.105 TestPan


	Name	TestPan
	PANARM 0/0/0 200 TestArmLower
Name TestArmLower

	FILL 0/0/0 0/0/10 0/200/10 0/200/0 255.0.0 =

	PANARM 0/100/0 -200 TestArmUpper

Name TestArmUpper

	FILL 0/0/0 0/0/10 0/-100/10 0/-100/0 255.255.0 =