Вы можете рассчитать расстояние между двумя точками, используя стандартную функцию distance
, вместо вызова команды DIST
и последующего извлечения значения DISTANCE
системная переменная.
Следовательно, это:
(command "_.dist" p c)
(setq x (rtos (getvar 'distance) 2 3))
Может стать:
(setq x (rtos (distance p c) 2 3))
Однако вы получаете синтаксическую ошибку, потому что у вас есть преобразовал расстояние в строку, используя rtos
, и затем вы пытаетесь выполнить арифметику c для строки здесь:
(setq a (- x 0.51))
Нет необходимости преобразовывать расстояние в строку, и поэтому эти выражения могут стать:
(setq a (- (distance p c) 0.51))
Вы также можете проверить, является ли (distance p c)
больше 0.51
перед выполнением этого вычитания, чтобы избежать неожиданных результатов.
Чтобы определить правильное направление, поскольку ваш текущий код может растягиваться только вдоль оси x, вам нужно проверить, больше ли координата x точки p
, чем координата точки c
.