Implementing GetMotionType vs GetKinematicsType
GizmotronX5000 last edited by
I have implemented a kinematics type based on the LinearDeltaKinematics, but I am running into a bit of a roadblock. It looks like currently LinearDeltaKinematics::GetMotionType may not be implemented. I believe this function is supposed to allow for additional linear axes on a delta, is that correct?
A secondary problem is that the firmware only allows segmentFreeDelta movements if the current kinematics class is specifically class LinearDelta (Mine is based on this, but has a different name) using function Move::IsDeltaMode. If I want to move an extra linear axis at the same time as the delta carriage makes a segmentFreeDelta movement, how would I do that? It works right now, but the delta motion traces a curve as the towers move linearly. In fact, the delta axes always make linear moves rather than segmentFreeDelta moves in this kinematics mode.
As of now it looks like GetKinematicsType is used to determine if a printer uses segmentFreeDelta movements based on if it is using class LinearDelta or not, while it should be determined per axis, (or per set of 3 axes) in whatever the current kinematics mode is. It looks like a per-axis approach is partially implemented through LinearDeltaKinematics::GetMotionType, but not fully.
My request is that the motion type be determined per axis regardless of kinematics mode.
You are right, the code needs to be refactored to use the GetMotionType function.