In section 6.8 of Dorst’s Guided Tour to PGA in step 2 eq(94) we have a motor that moves a line into another where lines have an intersection point. My example below gets a motor which moves line AB into AB1 but I don’t get the second point B1 from B with this motor.

A=ga.PGAPnt(1,2,3)

B=ga.PGAPnt(4,5,6)

B1=ga.PGAPnt(6,5,8)

AB=B&A #line AB

AB1=B1&A #line AB1

M=ga.MotorAtoB(AB,AB1)

print(“M=”,M)

print(“M * ~M=”, M * ~M) #checking

print("----------------------------------------------------------------------------------------")

print(“AB1=”,AB1.normalized())

print(“M * AB * ~M =”,(M * AB * ~M).normalized())

print(“B1=”,B1)

print(“M * B * ~M =”,M * B * ~M)

=============== output ====================

## M= 0.9942685 + 0.1511958e01 + -0.3023916e02 + 0.1511958e03 + 0.0755979e12 + -0.0755979e23

M * ~M= 1

AB1= 0.1301889e01 + 1.3018891e02 + -0.9113224e03 + 0.6509446e12 + 0.3905667e31 + 0.6509446e23

M * AB * ~M = 0.1301889e01 + 1.3018891e02 + -0.9113224e03 + 0.6509446e12 + 0.3905667e31 + 0.6509446e23

B1= 8e021 + 5e013 + 6e032 + 1e123

M * B * ~M = 6.3824071e021 + 4.0294443e013 + 4.3824071e032 + 1e123