Тема: Как импортировать координаты точек из файла?

Весь форум излазил - не нашел.
Проблема такая: есть некий файл с координатами Х, Y. Надо по этим координатам построить полилинию. Буду благодарен если кто нибудь скажет: каком формате должен быть файл (предпочтительно KOI-8 или EXCEL) и описание самого процесса.

Re: Как импортировать координаты точек из файла?

https://www.caduser.ru/forum/topic1671.html
ключевые слова для поиска: scan point

Re: Как импортировать координаты точек из файла?

кстати,

предпочтительно KOI-8 или EXCEL

это совсем разные вещи и в данном случае они не нужны.
KOI-8:  т.к. координаты точек не содержат букв (впрочем, можно использовать форму записи с E), то кодировка роли не играет.
Excel: использовать Excel только для хранения координат точек неразумно. Храните координаты точек в обычном текстовом файле.

Re: Как импортировать координаты точек из файла?

(defun C:POINT2POLYLINE ()
 (setq curr_layer (getvar "CLAYER"))
 (setq layer_name
  (if (= (setq layer_name (getstring T (strcat "\nИмя слоя для полилинии <" curr_layer ">: "))) "")
   curr_layer
   layer_name))
 (if
  (progn
   (setq file_name (getfiled "Файл данных" "" "txt" 0))
   (if file_name
    (setq file_desc (open file_name "r"))))
  (progn
   (setq poly_data
    (mapcar 'cons
     (list 0 100 67 410 8 100)
     (list "LWPOLYLINE" "AcDbEntity" 0 "Model" layer_name "AcDbPolyline")))
   (setq point_data ())
   (setq point_count 0)
   (while (setq str (read-line file_desc))
    (setq line (read (strcat "(" str ")")))
    (mapcar 'set (list 'x 'y) line)
    (setq point_data
     (append point_data
      (mapcar 'cons
       (list 10 40 41 42)
       (list (list x y) 0.0 0.0 0.0))))
    (setq point_count (1+ point_count)))
   (setq poly_data
    (append
     poly_data
     (mapcar 'cons
      (list 90 70 43 38 39 210)
      (list point_count 0 0.0 0.0 0.0 '(0 0 1)))
     point_data))
   (entmake poly_data)
   (close file_desc))
  (prompt "\nФайл не найден."))
 (prin1)
)

Данные в файле *.TXT в виде:
<значение X><любое кол-во пробелов><значение Y>
типа
123.45 678.90

Re: Как импортировать координаты точек из файла?

Или так

(defun C:plin-file()
  (setq oldosm(getvar "osmode"))
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (setq fnam (getfiled "Выберите файл" "C:\\" "txt" 16))
  (if
     (setq desf (open fnam "r"))
    (progn
      (command "pline")
      (while
    (setq cord(read-line desf))
    (command (read(strcat "(" cord ")")))
    )
      (command "")
      (close desf)
      )
    )
  (setvar "osmode" oldosm)
(princ)    
  )

Re: Как импортировать координаты точек из файла?

Преогромнейшее спасибо! Облегчили жизнь!

(изменено: Al_geor, 15 мая 2009г. 07:44:10)

Re: Как импортировать координаты точек из файла?

Создано: 18.02.2004 09:40:41
Код
(defun C:POINT2POLYLINE ()

Давно это было, но программа мне помогла. Сейчас просьба, если есть возможность, расширить ее.
Т.е.в TXT формате добавить данные № X Y H. А затем черчение 3Dполилинии, круга, точки, подпись номера точки(кому что нужно). Оразец данных через пробел:
1 15523.008 10510.451 97.181
2 15532.616 10518.683 97.044
3 15512.574 10511.858 97.355

Re: Как импортировать координаты точек из файла?

А как узнать «...(кому что нужно)...»?

(изменено: Al_geor, 18 мая 2009г. 07:34:40)

Re: Как импортировать координаты точек из файла?

Создано: 15.05.2009 09:09:34
А как узнать «...(кому что нужно)...»?

"А затем черчение 3Dполилинии, круга, точки, подпись номера точки(кому что нужно)."
Подразумевалось черчение всех примитивов не одновременно, а по запросу из командной строки. Т.е.кому какой примитив необходим для дальнейшей работы.

Re: Как импортировать координаты точек из файла?

«...по запросу из командной строки...» - для каждой точки из файла отдельно?

Re: Как импортировать координаты точек из файла?

«...по запросу из командной строки...» - для каждой точки из файла отдельно?
1 15523.008 10510.451 97.181
...
n 15532.616 10518.683 97.044
Последовательно считываются строки от 1 до n и все они должны быть вычерчены по условию. Т.е.в командной строке д.б.подсказка,что будем чертить по этим координатам: все точки, все круги(каким R ?),соединить ли последовательно все эти координаты 3Dполилинией.Обязательно везде должна быть нумерация точек.Идеальный вариант вычертить эти примитивы в разных слоях. Круги в одном,точки в другом и т.д. Тогда уже можно и не запрашивать, что будем чертить,но высоту текста, и R круга это нужно.Я думаю, эта программа поможет геодезистам, которые выполняют тахеометрическую съемку эл.тахеометром не взирая на формат данных прибора.К виду № Х У Н привести данные не составит труда.

Re: Как импортировать координаты точек из файла?

Дополнение
Желательно сделать подпись отметок 97.181 и т.д. Их необходимо разместить в отдельном слое. Нумерацию № вверх на 1-5мм(любое значение) от точки,  подпись отметки сделать 1-5мм(любое значение) вправо от точки,но в отдельном слое.Нумерацию № лучше сделать строковым значением, т.к. кроме порядковой нумерации 1,2...n часто используется кодирование точек(s1,D10,stolb3,7дерево,колодец и т.д.)

Re: Как импортировать координаты точек из файла?

Опять точки и тексты. 10000 точек и 10000 текстов. Поди разберись какая точка к какому тексту. И как это масштабировать. А если надо по высоте разнести. Всё это делается не так. Блоки с атрибутами вносятся в нужном масштабе и по высоте. В атрибутах  вся информация. Не надо потом ребусы решать.

(изменено: Al_geor, 4 июня 2009г. 09:32:19)

Re: Как импортировать координаты точек из файла?

Продолжение темы можно увидеть здесь:
https://www.caduser.ru/forum/topic22595.html