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

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

отрисовка примитивов по координатам из файла

Ответ
Поиск в этой теме
Непрочитано 17.04.2009, 10:27 #1
отрисовка примитивов по координатам из файла
hseldon
 
Регистрация: 12.04.2009
Сообщений: 15

помогите нарисовать точку по координатам, заданным переменными
Просмотров: 7288
 
Непрочитано 17.04.2009, 11:16
#2
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


В простейшем виде - (command "_point" точка1), в сложном - (vla-addPoint mspace (vlax-3d-point точка1)), в последнем случае надо определить переменную mspace. А в чем проблема?
nik_mb вне форума  
 
Автор темы   Непрочитано 17.04.2009, 11:36
#3
hseldon


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


не знаю как правильно задавать примитивы в AutoLISP
точка представлена в таком виде
3,12.4840666596,12.1202384252,164.3417715745,
разбил на части, выделил координаты, а нарисовать не могу
hseldon вне форума  
 
Непрочитано 17.04.2009, 11:53
#4
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от hseldon Посмотреть сообщение
не знаю как правильно задавать примитивы в AutoLISP
Негде прочесть? Или непонятно написано?
nik_mb вне форума  
 
Автор темы   Непрочитано 17.04.2009, 11:56
#5
hseldon


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


посмотрел все что мог, везде только операции над примитивами, и нигде нет определения
hseldon вне форума  
 
Непрочитано 17.04.2009, 12:25
#6
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от hseldon Посмотреть сообщение
посмотрел все что мог, везде только операции над примитивами, и нигде нет определения
Точка на плоскости определяется списком координат х, у (setq точка (list P_x P_y)). Наугад, через поиск яндекса нашел http://kappasoft.narod.ru/info/acad/lisp/a_lisp.htm#4 или http://www.codenet.ru/progr/alisp/05.php еще http://www.reflist.ru/doc/18009.shtml

Последний раз редактировалось nik_mb, 17.04.2009 в 12:36.
nik_mb вне форума  
 
Непрочитано 17.04.2009, 12:32
#7
VVA

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


Здесь найдешь то что нужно.
Создание графика в AutoCAD на основе txt или xls файла
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 17.04.2009, 12:39
#8
hseldon


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


мне нужно конкретное описание примитивов, способы определения и прорисовки в autocad, а не функции их обработки
hseldon вне форума  
 
Непрочитано 17.04.2009, 13:05
#9
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от hseldon Посмотреть сообщение
мне нужно конкретное описание примитивов, способы определения и прорисовки в autocad, а не функции их обработки
Если запустить строку (entget (ssname (ssget) 0)) узнаешь конкретное описание выбранного примитива автокадом. Хотя, возможно, ты имешь ввиду что-то другое? Я, честно, не понимаю слов "способы определения и прорисовки" - как определишь (опции команды для прорисовки, слой, цвет, толщину, высоту), так и прорисуется. Ранее приводил пример определения для прорисовки примитива "точка (point)".
Цитата:
Сообщение от hseldon Посмотреть сообщение
точка представлена в таком виде
3,12.4840666596,12.1202384252,164.3417715745,
(setq point1 (list 3 12.4840666596))(setq point2 (list 12.1202384252 164.3417715745)) - как конкретный вариант.
Есть еще в справке (но уже по англицки) "Command Submission".

Последний раз редактировалось nik_mb, 17.04.2009 в 13:16.
nik_mb вне форума  
 
Автор темы   Непрочитано 17.04.2009, 13:30
#10
hseldon


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


3,12.4840666596,12.1202384252,164.3417715745
3, номер точки
12.4840666596, координата x
12.1202384252, координата y
164.3417715745 высота точки
я разбиваю строку на части n, x, y, h
нужно нарисовать точку с координатами (x,y)
hseldon вне форума  
 
Непрочитано 17.04.2009, 13:39
#11
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Так -(command "_point" '(12.4840666596 12.1202384252 164.3417715745)). Или я что-то недопонимаю?
nik_mb вне форума  
 
Автор темы   Непрочитано 17.04.2009, 13:51
#12
hseldon


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


данные находятся в файле, и получаю я их в форме n x y h
hseldon вне форума  
 
Непрочитано 17.04.2009, 13:54
#13
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Если нужно только нарисовать точки с координатами из файла, а не написать программу для этого, то есть готовое решение - команда DSTP_PNTIMPRT из пакета toolpac
zamtmn вне форума  
 
Непрочитано 17.04.2009, 14:18
#14
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Если нужно только нарисовать точки с координатами из файла, а не написать программу для этого, то есть готовое решение - команда DSTP_PNTIMPRT из пакета toolpac
На странице http://forum.dwg.ru/showthread.php?t=1025 про toolpac пишут, что его негде взять бесплатно.
Цитата:
Сообщение от hseldon Посмотреть сообщение
данные находятся в файле, и получаю я их в форме n x y h
Так надо научиться открывать файл, считывать строки, эти строки преобразовывать в числовые данные, а данные подставлять для отрисовки примитивов. Можно этому не учиться, а купить toolpac.
nik_mb вне форума  
 
Автор темы   Непрочитано 17.04.2009, 14:22
#15
hseldon


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


я имею в виду что у меня уже есть n x y h, и теперь мне надо нарисовать точкку (x,y)
hseldon вне форума  
 
Непрочитано 17.04.2009, 14:35
#16
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от hseldon Посмотреть сообщение
я имею в виду что у меня уже есть n x y h, и теперь мне надо нарисовать точкку (x,y)
На вопрос "отрисовка примитивов по координатам из файла" я привел несколько примеров. Что, точка не рисуется по последнему примеру?
nik_mb вне форума  
 
Автор темы   Непрочитано 17.04.2009, 14:52
#17
hseldon


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


вот мой код
Код:
[Выделить все]
(defun c:read_file ()
       (findfile "933 км.txt")
  (setq f (open "933 км.txt" "r"))

  (setq a1 (read-line f))
  
  (setq n1 (vl-string-position 44 a1))
  (setq no (substr a1 1 n1))
  (setq a1 (vl-string-left-trim no a1))
  (setq a1 (vl-string-left-trim "," a1))

  (setq n1 (vl-string-position 44 a1))
  (setq x1 (substr a1 1 n1))
  (setq a1 (vl-string-left-trim x1 a1))
  (setq a1 (vl-string-left-trim "," a1))

  (setq n1 (vl-string-position 44 a1))
  (setq y1 (substr a1 1 n1))
  (setq a1 (vl-string-left-trim y1 a1))
  (setq a1 (vl-string-left-trim "," a1))

  (setq h1 (vl-string-right-trim "," a1))

  (setq v (list x1 y1))
  (command "point" v)
    
)
читает строку 3,12.4840666596,12.1202384252,164.3417715745
а точку не рисует

Последний раз редактировалось hseldon, 17.04.2009 в 15:04.
hseldon вне форума  
 
Непрочитано 17.04.2009, 15:12
#18
VVA

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


hseldon, Неужели нельзя посмотреть, что у тебя в переменной v не список чисел, а список текстов. Найди 1 отличие.
Код:
[Выделить все]
(defun c:read_file ()
       (findfile "933 км.txt")
  (setq f (open "933 км.txt" "r"))

  (setq a1 (read-line f))
  
  (setq n1 (vl-string-position 44 a1))
  (setq no (substr a1 1 n1))
  (setq a1 (vl-string-left-trim no a1))
  (setq a1 (vl-string-left-trim "," a1))

  (setq n1 (vl-string-position 44 a1))
  (setq x1 (substr a1 1 n1))
  (setq a1 (vl-string-left-trim x1 a1))
  (setq a1 (vl-string-left-trim "," a1))

  (setq n1 (vl-string-position 44 a1))
  (setq y1 (substr a1 1 n1))
  (setq a1 (vl-string-left-trim y1 a1))
  (setq a1 (vl-string-left-trim "," a1))

  (setq h1 (vl-string-right-trim "," a1))

  (setq v (list x1 y1))
  (setq v (mapcar 'atof v))
  (command "_point" "_non" v)
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.04.2009, 15:27
#19
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Подправил ошибки. Теперь код такой
Код:
[Выделить все]
 
(defun c:read_file ()
       (findfile "933 км.txt")
  (setq f (open "933 км.txt" "r"))
  (setq a1 (read-line f))
  (close f)
  (setq n1 (vl-string-position 44 a1))
  (setq no (substr a1 1 n1))
  (setq a1 (vl-string-left-trim no a1))
  (setq a1 (vl-string-left-trim "," a1))
  (setq n1 (vl-string-position 44 a1))
  (setq x1 (substr a1 1 n1))
  (setq x1_c (atof x1 ))
  (setq a1 (vl-string-left-trim x1 a1))
  (setq a1 (vl-string-left-trim "," a1))
  (setq n1 (vl-string-position 44 a1))
  (setq y1 (substr a1 1 n1))
  (setq y1_c (atof y1))
  (setq a1 (vl-string-left-trim y1 a1))
  (setq a1 (vl-string-left-trim "," a1))
  (setq h1 (vl-string-right-trim "," a1))
  (setq v (list x1_c y1_c))
  (command "_point" v)
 
)
ЗЫ пока писал ответ не увидел предыдущий пост, короче. Пускай мой будет как вариант.
nik_mb вне форума  
 
Автор темы   Непрочитано 17.04.2009, 15:27
#20
hseldon


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


Команда: read_file
; error: bad argument type: FILE nil

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DwgRuLispLib: Функция открытия диалога Open\Save As файла (файлов) Supermax Библиотека функций 20 14.03.2018 10:05
Файл адаптации предприятия Shoorup Программирование 8 14.03.2008 01:28
Spline (отрисовка из файла) lokus Программирование 13 17.09.2007 14:16
структурированный список Holon Программирование 22 11.09.2007 14:09
Частичное открытие файла - не активно при открытии файла ADik AutoCAD 4 22.06.2006 07:35