| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Помогите найти ошибку в коде

Помогите найти ошибку в коде

Закрытая тема
Поиск в этой теме
Непрочитано 07.04.2016, 09:48 #1
Помогите найти ошибку в коде
Klo
 
Инженер-конструктор
 
Юбилейный МО
Регистрация: 29.10.2007
Сообщений: 266

Добрый день!
Набросал программку для рисования отрезков с длиной равной числу в тексте. Но работает через раз. Особенно часто глюк происходит с текстом 0.41 (файл примера с несколькими текстами прилагаю).
Уже голову сломал - не пойму что не так. Сначала думал, что дело в временных переменных, добавил в рабочие - не помогло. Теперь думаю: уж не сломан ли у меня autocad
Код:
[Выделить все]
 
(defun c:linesfromnumbers ( / i ent num coo x_coo new_coo)
  (setq ent (car (entsel))) ; выбираем текст
  (setq num (atof (cdr (assoc 1 (entget ent))))) ; извлекаем строку, преобразуем в число
  (setq coo (cdr (assoc 10 (entget ent)))) ; записываем координаты текста (начало отрезка)
  (setq x_coo (+ (car coo) (* num 1000))) ; добавляем к координате Х число из текста с масштабным коэффициентом
  (setq new_coo (strcat (rtos x_coo) "," (rtos (nth 1 coo)))) ; собираем строку с новыми координатами (конец отрезка)
  (setq coo (strcat (rtos (nth 0 coo)) "," (rtos (nth 1 coo)))) ; преобразуем координаты начала из списка в строку
  (command "pline" coo new_coo "") ; чертим полилинию
); end defun

Вложения
Тип файла: dwg
DWG 2013
numbers1.dwg (688.8 Кб, 10 просмотров)


Последний раз редактировалось Klo, 07.04.2016 в 09:56. Причина: заменил файл на более глючный
Просмотров: 1242
 
Непрочитано 07.04.2016, 11:10
#2
P_S


 
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99


Объектную привязку отключи.
P_S вне форума  
 
Автор темы   Непрочитано 07.04.2016, 11:30
#3
Klo

Инженер-конструктор
 
Регистрация: 29.10.2007
Юбилейный МО
Сообщений: 266


P_S,
спасибо большое!
Klo вне форума  
 
Непрочитано 07.04.2016, 11:38
#4
Бот
Moderator


 
Регистрация: 12.06.2012
Сообщений: 0


Klo, просьба изменить название темы "Помогите найти ошибку в коде" в соответствии с п.4.3. правил форума, в противном случае тема будет закрыта через 12 часов.

Как переименовать тему?

Сообщение сгенерировано автоматически, отвечать на него не нужно
Бот вне форума  
 
Непрочитано 07.04.2016, 11:50
#5
AlexZh


 
Регистрация: 23.09.2015
Сообщений: 146


(setvar "ORTHOMODE" 0)

(setvar "ORTHOMODE" 1)
AlexZh вне форума  
 
Автор темы   Непрочитано 07.04.2016, 11:51
#6
Klo

Инженер-конструктор
 
Регистрация: 29.10.2007
Юбилейный МО
Сообщений: 266


Можно было бы и переименовать, но лучше, если её закрыть, чтобы особо не позориться

----- добавлено через ~6 мин. -----
Спасибо, но после подсказки P_S, я сделал немного иначе:
Код:
[Выделить все]
 (setq osmode (getvar "osmode"))
(setvar "osmode" 0)

... мой код...

(setvar "osmode" osmode)
Klo вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Помогите найти ошибку в коде

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку в программе AndryGrey Программирование 2 21.08.2014 12:35
В плите перекрытия очень большие напряжения, помогите найти ошибку Olto SCAD 8 22.05.2014 22:09
Пространственный расчет. Помогите найти ошибку в схеме.SCAD 11.1 SMI Расчетные программы 7 28.09.2010 14:05
Помогите найти ошибку Scad Toxel SCAD 12 14.04.2010 15:30