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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Экспорт координат выбранных точек в *.txt

Экспорт координат выбранных точек в *.txt

Ответ
Поиск в этой теме
Непрочитано 14.05.2008, 16:06
Экспорт координат выбранных точек в *.txt
slan.ru
 
Регистрация: 13.05.2008
Сообщений: 6

Добрый день, уважаемые знатоки!

Сразу прошу, не пинайте ногами и не отправляйте в поиск. Все темы, в заголовках которых есть слово "координаты" и "координат" прочитал. Нашел много полезного для себя и практически то, что искал. Но многое остается в полутьме для моего мозга. Сама суть моего поста.

Я работаю в дорожном строительстве. С недавнего времени моя организация приобрела электронный тахеометр. На данный момент ось дороги выносим в натуру с помощью него. Координаты X и Y узловых точек по оси беру из CREDO_MIX, а координату Z подставляю по мере необходимости и вида выноса. Для фрезеровки, нижнего слоя, верхнего, и.т.п.

Возникла необходимость выноса в натуру кромок проезжей части. Но они не всегда соответствуют виду оси. В городских условиях могут быть примыкания, карманы для автобусных остановок и.т.п. Требуется (для начала) получить координаты узловых точек. Хочу начать с того, что бы получить координаты ВЫБРАННЫХ ТОЧЕК в текстовый файл. Последовательность:

1. Проставляем токи в требуемых узлах.
2. Выбираем необходимые точки.
3. Запускаем макрос.
4. Макрос создает в каталоге текстовый файл c названием как у чертежа.
5. Туда записываются координаты примитивов (вроде бы так тут это называют) в формате:
Pt X Y Z <Space>, где
Pt - для начала просто нумерация точек по мере добавления в файл,
X Y Z - координаты,
<Space> - разделитель.

От Вас прошу помощи. В программировании мало понимаю, но для меня пока что ясно, что скрипты можно создать как макрос - VBA, и LISP - на собственном языке. Хотелось бы увидеть такой скрипт, я думаю он не будет громоздким, на удобном Вам языке, но с описанием. Начну разбираться - с чего-нибудь надо начинать. Для начала поставленная задача будет минимальной, в дальнейшем хочу усложнить задачу собственными силами, если потяну.

Сразу оговорюсь, возможности купить ToolPak, Express и уж тем более Civil у меня нет, , да и не требуется пока мне выполнение задач отличных от этой. Поэтому надеюсь на Вашу помощь в написании такого скрипта. А уж за описание процедуры - буду безгранично благодарен.

P.S> Если требуются еще исходные данные - готов в найкротчайшие сроки предоставить их.
Просмотров: 178575
 
Непрочитано 12.05.2016, 12:15
#101
Lafaet


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


Добрый день! На данном файле, мне необходимо поставить точки (чтоб их видно было кружочком или еще каким то образом) , подписать номер точки и получить каталог координат. С помощью функции COORNP я получила координаты узлов полилиний, с расстановкой точек и подписанием номеров, но там где полилинии имеют общую точку, координаты соответственно задвоились.
Вопрос:
1) Как убрать задвоение точек
2) Или как проставить сначала точки в узлах (не задвоеные в местах где полигоны имеют общую границу)
3) и как точки в узлах сделать объемыми

p/s. Четвертый день поисков по сайтам... не принес мне результатов
Вложения
Тип файла: dwg
DWG 2010
Отвод1.dwg (71.8 Кб, 30 просмотров)
Lafaet вне форума  
 
Непрочитано 12.05.2016, 13:08
1 | #102
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 4,825


1 _overkill (expresstools?)
2 точка не может быть объёмной, точка - это точка.
engngr вне форума  
 
Непрочитано 12.05.2016, 13:42
#103
Lafaet


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


Цитата:
Сообщение от engngr Посмотреть сообщение
1 _overkill (expresstools?)
2 точка не может быть объёмной, точка - это точка.
попробовала, первая функция разбила мне часть объектов, удвоение где-то убралось, где то нет, это я ввела в командную строку _overkill, но желаемого результата я не получила
а про объемную точку, выразилась я не правильно....как обозначить ее кругом, со штриховкой или иным способом, чтоб ее было видно.
Lafaet вне форума  
 
Непрочитано 12.05.2016, 13:55
#104
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 4,825


Цитата:
Сообщение от Lafaet Посмотреть сообщение
удвоение где-то убралось, где то нет, это я ввела в командную строку _overkill, но желаемого результата я не получила
У себя задвоения точек не нашел.
Цитата:
Сообщение от Lafaet Посмотреть сообщение
как обозначить ее кругом, со штриховкой или иным способом, чтоб ее было видно
В поиск. Например: http://forum.dwg.ru/showthread.php?t=36287
engngr вне форума  
 
Непрочитано 12.05.2016, 19:17
#105
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,874
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Lafaet Посмотреть сообщение
1) Как убрать задвоение точек
По быстрому добавил удаление дублирующихся точек (см вложение)
Цитата:
Сообщение от Lafaet Посмотреть сообщение
как обозначить ее кругом, со штриховкой или иным способом, чтоб ее было видно
В дополнение к #104 - используй COORNB. Блок потом отредактируй по своему вкусу
Вложения
Тип файла: lsp ECoorE rev10c.LSP (52.8 Кб, 135 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.06.2016, 12:35
#106
Jetpriest


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


Огромное спасибо за программу
Jetpriest вне форума  
 
Непрочитано 03.11.2016, 23:52
#107
MrBrown


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


Здравствуйте!
Я так понимаю, что макрос "COORT" экспортирует в таблицу в качестве номера/наименования точки ближайший текст/мтекст.
На перегруженных текстами (подписями, обозначениями и т.д.) чертежах ближайшим к точке может оказаться посторонний текст, что приведёт к экспорту в таблицу неправильного номера/наименования точки.
Можно ли включить ещё и функцию ручного выбора текста/мтекста рядом с точкой?
То есть, после приглашения ком. строки к выбору точек указываем курсором точку и текст, точку и текст...
Спасибо.
p.s. так как работаем "ручками", я назвал бы команду "COORH" - от "hands" или "COORM" - от "manual".

Последний раз редактировалось MrBrown, 04.11.2016 в 08:01.
MrBrown вне форума  
 
Непрочитано 04.11.2016, 16:09
#108
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,874
<phrase 1= Отправить сообщение для VVA с помощью Skype™


MrBrown, Команда COORT при поиске ближайшего текста игнорирует тексты на блокированных, выключенных или замороженных слоях (достаточно чего-то одного).
Отсюда алгоритм:
ручками отсортируй посторонний/непосторонний текст, разбросай по разным слоям, заблокируй (выключи, заморозь) лишнее и вызывай COORT
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.11.2016, 16:20
#109
MrBrown


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


VVA, благодарю за подсказку.
MrBrown вне форума  
 
Непрочитано 21.11.2016, 17:14
#110
SergeyP


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


Здравствуйте!
Спасибо за полезную программу!
Возник вопрос: строю полилинию (привязанную к геометрии на чертеже) состоящую из отрезков и дуг окружностей, затем сохраняю координаты вершин в файл который затем открываю в Matlab и восстанавливаю эту самую линию по координатам и тут возникает проблема, для восстановления дуги не достоточно двух координат вершин. Нужно знать координаты центра и радиус.
Как вариант в Matlab можно передать вместе с координатами вершин координаты средних точек и вычислить искомый центр и радиус.
Может есть другие способы? Можно ли извлечь помимо координат вершин еще какую то информацию о полилинии?
SergeyP вне форума  
 
Непрочитано 21.11.2016, 19:20
#111
trir


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


есть - парсить dxf
trir вне форума  
 
Непрочитано 21.11.2016, 20:04
#112
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,874
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от SergeyP Посмотреть сообщение
Можно ли извлечь помимо координат вершин еще какую то информацию о полилинии?
Можно. Для сегмента полилинии хранится его кривизна (Bulge) Polyline Bulges
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.11.2016, 20:17
#113
Бася


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


Уважаемые форумчане, помогите пожалуйста!
Есть планировка благоустройства, необходимо ее разбить. Хочу получить точки перелома (характерные) осей и экспортнуть их координаты.
Подскажите, пожалуйста, как автоматически проставить точки на линии оси?
Прикрепляю скрин - некоторые точки уже выставлены руками, а рядом выделила ось, на которой дофига точек - вот как их проставить автоматически?
Миниатюры
Нажмите на изображение для увеличения
Название: 01.png
Просмотров: 58
Размер:	111.7 Кб
ID:	179440  
Бася вне форума  
 
Непрочитано 21.11.2016, 21:20
#114
trir


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


Цитата:
как их проставить автоматически?
напиши код
trir вне форума  
 
Непрочитано 21.11.2016, 22:43
#115
Бася


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


trir, была бы я такая умная - не спрашивала бы...не умею
Бася вне форума  
 
Непрочитано 21.11.2016, 22:48
#116
trir


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


Цитата:
...не умею
учите

Цитата:
точки перелома
это что? Экстремум? И на чём вы хотите брать производную от сплайна?
trir вне форума  
 
Непрочитано 21.11.2016, 23:18
#117
MrBrown


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


Бася, может быть, этот макрос поможет:
Код:
[Выделить все]
 ;****** KOORD.LSP *******************************************************
;       Определение координат точки и простановка
;       в рисунке  на плане.
;       Разработал  Громов В.В. Декабрь 2000.
;
(defun C:KOORD (/ pt1 pt2 koord)
       (setvar "cmdecho" 0)
       (setq pt1 T)
    (while pt1
       (setq pt1 (getpoint "\n Укажите точку (ENTER — конец): "))
       (if pt1
       (progn
       (setq koord (strcat (rtos (nth 0 pt1) 2 2) " " (rtos (nth 1 pt1) 2 2)))
       (setq pt2 (getpoint "\n Укажите точку вставки текста: "))
       (command "_text" pt2 "" "" koord)
       (princ)
       ))
     )
       (princ)
)
;Возможный макрос для кнопки или пункта меню:
;^C^C^P(if (not C:KOORD (load "koord")) KOORD
Проставляешь свои точки в нужных местах, макросом KOORD проставляешь их координаты, а потом используешь макрос из #105.
MrBrown вне форума  
 
Непрочитано 21.11.2016, 23:47
#118
Бася


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


trir, есть полилиния, она в некоторых точках меняет направление - в двухмерке, просто поворачивает под углом. Мне надо каждое место изгиба линии обозначить точкой. См.скрин.
Просто руками- замучаешься.
В идеале- хочу их потом пронумеровать и получить координаты.

----- добавлено через ~2 мин. -----
MrBrown, спасибо, но сначала хотелось бы точки проставить автоматически

----- добавлено через ~22 мин. -----
Мне кажется, что это должно быть похоже на функцию "разметить" - автоматически проставляются точки на выбранном Path. Здесь суть нужна та же самая, только точки уже де юро есть, надо их де факто нанести.
Бася вне форума  
 
Непрочитано 22.11.2016, 00:15
1 | #119
MrBrown


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


Бася, Для автоматической разметки используй _measure и _device.
И вот ещё хороший макрос, тоже пригодится:
Код:
[Выделить все]
 ;;; возвращает координаты выбранной полилинии
;;; http://forum.dwg.ru/showthread.php?t=3790
(defun c:plcoords (/ coords pline pt_list)
(setq pline (vlax-ename->vla-object (car (nentsel))))
(if (wcmatch (vla-get-objectname pline)
	       "AcDbPolyline,AcDb2dPolyline,AcDb3dPolyline,AcDbLeader")
  (progn
  (setq coords (vlax-get pline 'Coordinates))
  (if (eq (vla-get-objectname pline) "AcDbPolyline")
    (progn
          (repeat (/ (length coords) 2)
            (setq pt_list (cons (list (car coords) (cadr coords)) pt_list))
            (setq coords (cddr coords))
          )
        )
        (progn
          (repeat (/ (length coords) 3)
            (setq pt_list (cons (list (car coords) (cadr coords) (caddr coords)) pt_list))
            (setq coords (cdddr coords))
          )
        )
      )
    (setq pt_list (mapcar (function (lambda (x)
				   (trans x 1 0)))
		       (reverse pt_list)))
  )
  )
  )
;CaLL:(get-wcs-coords)
Он возвращает координаты вершин полилинии (в ком. строке).
MrBrown вне форума  
 
Непрочитано 22.11.2016, 00:33
#120
Бася


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


MrBrown, measure и divide делят на заданные расстояния или определенное количество отрезков.
А мне нужно как: выбрал линию и программа проставляет точки в местах излома линии. И не важно, их 2 или 122. Просто линий туча, хочется процесс автоматизировать.

Макрос Ваш завтра попробую и отпишусь, спасибо.
Бася вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Экспорт координат выбранных точек в *.txt

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт координат из dxf в txt eilukha Вертикальные решения на базе AutoCAD 14 26.04.2008 21:53
Нумерация точек на плане и вывод их координат в полярной системе kukuikar Программирование 1 17.02.2008 11:15
Получение текстового массива координат точек. Камыч AutoCAD 5 30.07.2007 12:28
Помощь по Лире Серега М Лира / Лира-САПР 52 28.05.2007 02:47
простановка реальных ординатных размеров (координат точек) AnnaT AutoCAD 7 15.06.2005 17:56