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

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

Как считать из файла координаты?

Ответ
Поиск в этой теме
Непрочитано 01.11.2006, 18:01 #1
Как считать из файла координаты?
Laumes
 
Студентка
 
Санкт-Петербург
Регистрация: 01.11.2006
Сообщений: 5

Подскажите пожалуйста, как можно считытать таблицу координат из файла, и записать ее в виде списка или массива (ведь должен же быть такой в AUTOLISP), причем вид таблицы такой, что: первая строка - координаты х, первый солбец - y, а все остальное поле - z, и изменить я ее не имею права. Зарание спасибо.
Просмотров: 8058
 
Непрочитано 01.11.2006, 22:14
#2
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


> Laumes
Браво! Очень забавный каламбур сочинили...без обид, но наверно надо описать структуру этого файла (лучше с примером) (они же бывают разные...), да и поиск по форуму навеняка вам бы помог.
А то ответ будет таким: (read-line file_r) ??! :P
Евгений А. вне форума  
 
Непрочитано 01.11.2006, 22:59
#3
Умка

медведятинко
 
Регистрация: 19.03.2005
Москва
Сообщений: 241
<phrase 1=


да да будьте добры поконкретнее опишите проблему? а то как-то не очень понятно что вы сделать хотите? У меня есть догадки, но я в них пока что теряюсь....
__________________
Всегда есть выход... Даже если тебя проглотят - выхода как минимум два!
Умка вне форума  
 
Непрочитано 01.11.2006, 23:00 ГЫЫЫЫЫЫЫЫЫЫ
#4
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Да сохраните файло в dxf и откройте с помошью блокнота.
Гы там так много интересного вылезет
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 02.11.2006, 07:28
#5
bernata


 
Регистрация: 22.09.2005
здесь могла быть ваша реклама
Сообщений: 1,296


Если речь идёт о точках, то нет ничего проще.
Есть куча полезных приложений для этих целей.
Например в TOOL_Pac`е :
MENUS / ToolPac / Utility / Point Export
В результате *.txt файл в три столбца через запятую X,Y,Z
Можно тоже самое делать приложением EzySurf.
А так же в Land Desctop и в и Civil

А если речь идёт о телах, то см. http://autolisp.ru/dwlsp/27
(сам правда не разбирался )
bernata вне форума  
 
Автор темы   Непрочитано 05.11.2006, 18:07
#6
Laumes

Студентка
 
Регистрация: 01.11.2006
Санкт-Петербург
Сообщений: 5
<phrase 1=


в общем все вы правы, довольно туманно и коряво поставлен вопрос (я собственно в первый раз на форуме, любом форуме), так вот файл ввода выглядит так
Код:
[Выделить все]
                                                                            
           ОРДИНАТЫ   ТЕОРЕТИЧЕСКОГО   ЧЕРТЕЖА                              
                                                                            
 ┌──────────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐         
 │ апплик WL│ 0.00│ 1.00│ 2.00│ 3.00│ 4.00│ 5.00│ 5.67│ 6.33│ 7.00│         
 ├──────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤         
 │ N ватерл │  0  │  1  │  2  │  3  │  4  │  5  │  6  │  7  │  8  │         
 ├──────┬───┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤         
 │абсц. │ N │     │     │     │     │     │     │     │     │     │         
 │  шп. │шп.│     │     │     │     │     │     │     │     │     │         
 ├──────┼───┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤         
 │  0.00│  0│ 0.00│ 0.00│ 0.00│ 0.00│ 0.00│ 0.05│ 0.17│ 0.33│ 0.49│         
 │  5.75│  1│ 0.00│ 1.21│ 2.20│ 2.64│ 2.96│ 3.19│ 3.29│ 3.40│ 3.56│         
 │ 11.50│  2│ 0.33│ 3.90│ 4.89│ 5.44│ 5.72│ 5.93│ 5.99│ 6.15│ 6.25│         
 │ 17.25│  3│ 1.96│ 5.93│ 6.94│ 7.37│ 7.55│ 7.71│ 7.77│ 7.78│ 7.88│         
 │ 23.00│  4│ 3.86│ 7.33│ 8.16│ 8.49│ 8.55│ 8.60│ 8.66│ 8.71│ 8.77│         
 │ 28.75│  5│ 5.10│ 8.15│ 8.67│ 8.84│ 8.86│ 8.89│ 8.92│ 8.95│ 8.97│         
 │ 34.50│  6│ 6.25│ 8.78│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│         
 │ 40.25│  7│ 6.70│ 8.86│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│         
 │ 46.00│  8│ 7.14│ 8.95│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│         
 │ 51.75│  9│ 7.14│ 8.95│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│         
 │ 57.50│ 10│ 7.14│ 8.95│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│         
 │ 63.25│ 11│ 7.14│ 8.95│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│         
 │ 69.00│ 12│ 7.14│ 8.95│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│         
 │ 74.75│ 13│ 6.55│ 8.48│ 8.84│ 8.95│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│         
 │ 80.50│ 14│ 5.25│ 8.01│ 8.67│ 8.89│ 9.00│ 9.00│ 9.00│ 9.00│ 9.00│         
 │ 86.25│ 15│ 3.68│ 6.80│ 7.74│ 8.18│ 8.48│ 8.70│ 8.78│ 8.86│ 8.95│         
 │ 92.00│ 16│ 2.29│ 5.58│ 6.62│ 7.30│ 7.83│ 8.22│ 8.38│ 8.55│ 8.71│         
 │ 97.75│ 17│ 1.10│ 3.56│ 5.07│ 5.99│ 6.58│ 7.11│ 7.46│ 7.82│ 8.15│         
 │103.50│ 18│ 0.19│ 1.93│ 3.21│ 3.84│ 4.78│ 5.81│ 6.36│ 6.91│ 7.41│         
 │109.25│ 19│ 0.07│ 0.61│ 1.21│ 1.54│ 2.36│ 3.79│ 4.55│ 5.21│ 5.76│         
 │115.00│ 20│ 0.00│ 0.00│ 0.00│ 0.00│ 0.00│ 1.54│ 2.20│ 2.85│ 3.46│         
 └──────┴───┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘         
                                                                            
           АБСЦИССЫ   ФОРШТЕВНЯ   И   АХТЕРШТЕВНЯ                           
                                                                            
  Абсциссы отсчитываются от носового перпендикуляра. Положительные          
  абсциссы располагаются в корму от носового перпендикуляра .               
 ┌──────────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐         
 │ апплик WL│ 0.00│ 1.00│ 2.00│ 3.00│ 4.00│ 5.00│ 5.67│ 6.33│ 7.00│         
 ├──────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤         
 │ N ватерл │  0  │  1  │  2  │  3  │  4  │  5  │  6  │  7  │  8  │         
 ├──────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤         
 │ абсциссы │     │     │     │     │     │     │     │     │     │         
 │ форштевня│ 9.48│ 3.08│ 1.32│ 0.69│ 0.23│ 0.00│-0.14│-0.25│-0.37│         
 ├──────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤         
 │ абсциссы │     │     │     │     │     │     │     │     │     │         
 │ ахтершт. │-2.47│-2.47│-2.47│-2.47│-1.29│ 2.68│ 3.44│ 3.85│ 3.91│         
 └──────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
но Rеad-line и read-char считывает эти данные как символьные и отказывается использовать их как числовые координаты (в общем я юзер, мне стыдно, но что делать я не знаю :cry: )
Laumes вне форума  
 
Непрочитано 05.11.2006, 22:05
#7
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Не совсем охото врубаться где X, где Y, где Z. Вот вариант - чтение из файла цифровых данных, которые разделены знаком | (код 166). Всё сохраняется в глобальной переменной f_list в виде списка списков чисел в строке. Из неё можно сделать всё остальное... если конечно это то что нужно. Запуск командой "f-read"


Код:
[Выделить все]
(setq f_list '()
      fn ""
      ) ;_   setq
(princ
   "\n                     Команда запуска программы \"f-read\"\r"
   ) ;_   princ
(vl-load-com)
 ;---------------------------------------------
(defun c:f-read (/ flag file_name xyz)
   (setq flag t)
   (while flag
      (if (setq file_name (getfiled "Выбор файла для извлечения координат"
                                    fn
                                    ""
                                    16
                                    ) ;_   getfiled
                ) ;_   setq
         (progn
            (setq fn (vl-filename-directory file_name)) ;_   setq
            (if (setq f_list (file->list file_name))
               (progn
                  (setq flag nil

                        ) ;_   setq
                  (if (< (length f_list) 50)
                     (foreach xyz f_list
                        (princ xyz)
                        (princ "\n")
                        ) ;_   foreach
                     ) ;_   if
                  (alert
                     "Список сохранен в\n глобальной переменной \"f_list\""
                     ) ;_   alert
                  ) ;_   progn
               (alert "Не удалось извлечь координаты из файла")
               ) ;_   progn
            ) ;_   if
         (setq flag nil)
         ) ;_   if
      (princ)
      ) ;_   while
   ) ;_   defun

(defun file->list (file_name / str start end rez stroka coord file_r)
   (setq rez  '()
         znak 166
         ) ;_   setq
   (if (setq file_r (open file_name "r"))
      (progn
         (while (setq stroka '()
                      start  0
                      str    (read-line file_r)
                      ) ;_   setq
            (setq str (vl-string-translate "," "." str))
            (while (setq end (vl-string-position znak str start))
               (if (setq coord (distof (substr str (1+ start) (- end start)) 2))
                  (setq stroka (cons coord stroka)) ;_   setq
                  ) ;_   if
               (setq start (1+ end))
               ) ;_   while
            (if (setq coord (distof (substr str (1+ start)) 2))
               (setq stroka (cons coord stroka)) ;_   setq
               ) ;_   if
            (if stroka
               (setq rez (cons (reverse stroka) rez)) ;_   setq
               ) ;_   if
            ) ;_   while
         (close file_r)
         ) ;_   progn
      ) ;_   if
   (reverse rez)
   ) ;_   defun
Студенты очень похожи на коров: когда они пытаются уделять больше времени личной жизни, у них появляются хвосты; когда они пытаются уделять больше времени учебе, у них появляются рога; а когда они пытаются делать и то и другое, они отбрасывают копыта!
Евгений А. вне форума  
 
Автор темы   Непрочитано 06.11.2006, 15:36
#8
Laumes

Студентка
 
Регистрация: 01.11.2006
Санкт-Петербург
Сообщений: 5
<phrase 1=


Ох, выглядит жутковато, буду разбираться, спасибки огромное
Laumes вне форума  
 
Непрочитано 06.11.2006, 17:51
#9
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Если надо разобраться, то первая половина - это просто функция ввода нужного фйла и к теме отношения не имеет. Так что штудируйте вторую часть и функцию Distof - переводит число из текстового представления в double. Учение - свет... :shock:
Евгений А. вне форума  
 
Непрочитано 04.07.2010, 23:56
#10
nvitaly


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


Цитата:
Сообщение от Евгений А. Посмотреть сообщение
Всё сохраняется в глобальной переменной f_list .....
И ГДЕ ЕЁ НАЙТИ что- бы прочитать????
nvitaly вне форума  
 
Непрочитано 05.07.2010, 00:04
#11
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Цитата:
в общем все вы правы, довольно туманно и коряво поставлен вопрос (я собственно в первый раз на форуме, любом форуме)
И что даже на сайтах знакомств не зарегистрирована?
И ГДЕ ЕЁ НАЙТИ что- бы прочитать????
ее можна найти в глобальной командной строке автогада, набав !f_lis
или (princ f_lis)
Sleekka вне форума  
 
Непрочитано 05.07.2010, 00:11
#12
Кулик Алексей aka kpblc
Moderator

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


Археологи, блин...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.07.2010, 00:35
#13
nvitaly


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


Цитата:
Сообщение от Sleekka Посмотреть сообщение
.....ее можна найти в глобальной командной строке автогада, набав !f_lis или (princ f_lis)
А на это всё пишетъ: "Неизвестная команда".
Ещё версии?
nvitaly вне форума  
 
Непрочитано 05.07.2010, 11:14
#14
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


nvitaly, Тебе что в итоге нужно получить? Времени с последнего поста Евгений А. прошло прилично. Кое-что уже написано.
Экспорт координат выбранных точек в *.txt
вывод координат из автокада в текстовый файл
Помогите с экспортом координат полилинии в txt
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 02.12.2011 в 14:06. Причина: орфоргафия
VVA вне форума  
 
Непрочитано 05.07.2010, 11:41
1 | #15
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


Цитата:
Сообщение от nvitaly Посмотреть сообщение
А на это всё пишетъ: "Неизвестная команда".
Ещё версии?
Есть, "военная", этот вопрос был решен еще больше 25 лет тому назад, обращайтесь к первоисточникам, а ешЁ лучше... думайте сами..
__________________
С уважением sbi
sbi вне форума  
 
Непрочитано 05.07.2010, 11:52
#16
nvitaly


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


...и зачем так много кнопать, напрягаться.... Можно кратко: "НЕ СКАЖУ!"

Надобно получить вот так:
Airfoil root
P X Yu Yb
1 0,0 0,506 0,506
2 0,1 0,962 0,118
3 0,2 1,139 0,017
4 0,3 1,308 -0,076
5 0,35 1,485 -0,152
6 0,4 1,603 -0,203
и т.д. и т.п.....

А ПОЛУЧАЮ: (COORNP)
-3.9251,-0.3488,0.0000
-3.9251,-0.3488,0.0000
-3.8299,-0.3336,0.0000
-3.8299,-0.3336,0.0000
-3.8299,-0.3336,0.0000
-3.8299,-0.3336,0.0000
-3.7343,-0.3188,0.0000
-3.7343,-0.3188,0.0000
-3.7343,-0.3188,0.0000
-3.7343,-0.3188,0.0000
-3.6378,-0.3040,0.0000

Последний раз редактировалось nvitaly, 05.07.2010 в 14:04.
nvitaly вне форума  
 
Непрочитано 02.12.2011, 13:52
#17
Екэри


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


Ребята вот читаю читаю и нифига непонимаю. Плиз люди добрые объясните на нормальном языке чтоб даже блондинка как я все поняла
Екэри вне форума  
 
Непрочитано 02.12.2011, 14:09
#18
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Екэри, А так?
1. Geo_Import
2. Point Manager
3. LISP. По координатам из txt-файла ставит и подписывает точки
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.12.2011, 14:16
#19
Екэри


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


спасибо огромное, что ответили, я вот только не уточнила мне для autocada 2012 нужно. Лисп это его приложение или альтернативная прога?
Екэри вне форума  
 
Непрочитано 02.12.2011, 15:18
#20
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
я вот только не уточнила мне для autocada 2012 нужно
Если это не AutoCAD 2012 LT
Цитата:
Сообщение от Екэри Посмотреть сообщение
Лисп это его приложение или альтернативная прога?
Как использовать лисп, опубликованный на форуме
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как считать из файла координаты?