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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Построить сплайн по точкам, взятым из текстового файла.

Построить сплайн по точкам, взятым из текстового файла.

Ответ
Поиск в этой теме
Непрочитано 23.10.2010, 04:37 #1
Построить сплайн по точкам, взятым из текстового файла.
ГошаПак
 
Регистрация: 23.10.2010
Сообщений: 6

Здравствуйте! Не сочтите за дерзость мое к вам обращение)
Есть файл, где 100 координат точек в столбик, причем координаты икс и игрек в нем чередуются, то есть первая строка - икс, вторая - игрек, третья - икс и т.д.
Не могли бы вы исправить мои ошибки, так опыта моего написания программ на лиспе нету

Вложения
Тип файла: lsp spl.lsp (195 байт, 83 просмотров)

Просмотров: 7251
 
Непрочитано 23.10.2010, 09:08
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409


Почитай ссылки, указанные здесь:
Цитата:
Сообщение от VVA Посмотреть сообщение
dartamon, Грабли №1 А вообще советую почитать посты со 167 по 241. Найдешь много для себя полезного.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.10.2010, 01:27
#3
ГошаПак


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


Если честно - ни черта ни понятно) Может кто-то сможет за деньги? Назовите цену.
ГошаПак вне форума  
 
Непрочитано 25.10.2010, 08:43
#4
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от ГошаПак Посмотреть сообщение
Если честно - ни черта ни понятно) Может кто-то сможет за деньги? Назовите цену.
ГошаПак, какие деньги
Код:
[Выделить все]
; Вызов:
; (draw_spline "dim.txt" nil) - не замкнутый сплайн
; (draw_spline "dim.txt" T) - замкнутый сплайн
(defun draw_spline(file_path close_mode / file lst line_x line_y osmode_var)
  (if (findfile file_path)
    (progn
      (setq osmode_var (getvar 'osmode))
      (setvar 'osmode 0)
      (setq file (open file_path "r"))
      (while (and (setq line_x (read-line file)) (setq line_y (read-line file)))
        (setq lst (append lst (list (list (atof line_x) (atof line_y)))))
        )
      (close file)
      (if close_mode
        (apply 'vl-cmdf (append (list "_.spline") lst (list "_C" "")))
        (apply 'vl-cmdf (append (list "_.spline") lst (list "" "" "")))
        )
      (setvar 'osmode osmode_var)
      )
    )
  ); end draw_spline
Это так от нечего делать на скорую руку, а вообщ-то, по-хорошему, надо бы еще добавить всякие проверки на корректность исходных данных и т.д. и т.п
__________________
cadtools

Последний раз редактировалось TararykovDG, 25.10.2010 в 08:50. Причина: дописал отключение привязок
TararykovDG вне форума  
 
Автор темы   Непрочитано 25.10.2010, 17:27
#5
ГошаПак


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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
ГошаПак, какие деньги
Это я от отчаяния, курсач уже горит, а руками строить не хочется. Спасибо Вам большое
Кстати, я все таки добился работы от своей программы, но преимущества вашей налицо. Вот она
Код:
[Выделить все]
(setq fo (open "dim.txt" "r"))
(setq i 0)
(command "_spline")
 (while (< i n)
   (setq e (atof (read-line fo)))
   (setq f (atof (read-line fo)))
   (command (list e f))
   (setq i (+ i 1))
 )
ГошаПак вне форума  
 
Непрочитано 25.10.2010, 17:56
#6
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


ГошаПак, Вы уж извините, но код из Вашего поста #5 не может работать в принципе:
1. Чему равно n? Если nil, то (< i n) всегда будет nil и тело цикла ни разу не выпонеться
2. Если n чему-то и рано то количество записей в файле может быть и больше и меньше этого n, а соответственно Вы можете и не дочитать весь файл до конца, а можете пытаться прочитать уже закончившийся файл
3. command (list e f)) так Вы ввели очередную точка сплайна, но чтобы закончить выполнение команды "_spline" нужно задать еще 2 или 3 опции в зависимости от того замыкать сплайн или нет
4. Ну и напоследок, а файл то кто будет закрывать (close fo)
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 25.10.2010, 21:52
#7
ГошаПак


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


Ну это смотря с какой стороны посмотреть:
1. n задается руками перед загрузкой файла.
2. число записей я знаю, это количество элементов вектора из маткада.
3. это я тоже делаю руками
4. да че с ним будет-то?

а кривулину он строит, хотя бы решил проблему задания 3600 точек.
понимаю Вашу критику, я нарушил все заповеди программирования (ну, разве что, переменную-счетчик обнулил)
ГошаПак вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Построить сплайн по точкам, взятым из текстового файла.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для запуска текстового файла из Автокада dextron3 Программирование 10 01.09.2012 14:31
Как построить тело по 3D точкам с целью определения его объема Малявка Программирование 14 27.07.2009 13:46
Структура текстового файла проекта SCAD...кто-нить знает? scatler SCAD 6 25.03.2008 06:47
повторное открытие текстового файла Mr_Eugene Программирование 11 30.11.2006 15:58
Создание схемы здания в ЛИРЕ с помощью текстового файла kent3000 Лира / Лира-САПР 27 12.12.2005 11:08