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

Вернуться   Форум 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> Если требуются еще исходные данные - готов в найкротчайшие сроки предоставить их.
Просмотров: 234052
 
Непрочитано 22.11.2016, 07:49
#121
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


Бася, такие задачи решались столько раз, что лень писать еще раз такой же код.
расставить вхождения блоков по полилинии можно таким куском кода:
Код:
[Выделить все]
 (setq pl_ent (entsel "\nУкажите полилинию <Завершить> : ")) ;;всю обработку указания полилинии не прикладываю дабы не загромождать
(setq 
	pl_ent (vlax-ename->vla-object (car pl_ent))
	count (vlax-curve-getEndParam pl_ent)
) 
(while (>= count 0) ;;inserting blk def
	(setq pt_ins (vlax-curve-getPointAtParam pl_ent count)
		ang_ins (+ (* pi 0.5)
		(angle 
			pt_ins 
			(mapcar '+
				pt_ins
				(vlax-curve-getFirstDeriv pl_ent count)
			)
		))
	) 
	
	(vla-InsertBlock (sad-get-CurrentSpace) (vlax-3d-point pt_ins) bl_name 1 1 1 ang_ins )
	
	(setq count (1- count))
) ;;while
bl_name - имя вставляемого блока (по хорошему в коде должна быть проверка наличия этого блока и создание его при отсутствии такового)
(sad-get-CurrentSpace) - заменить на указатель пространства в котором надо рисовать

Лень - двигатель прогресса! Лень рисовать ручками - учись кодить.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
 
Непрочитано 22.11.2016, 09:34
#122
Бася


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


Vladimir_Sergeevich, спасибо за помощь! не пыталась писать ибо не умею, а ясно, что эта задача не мною придумана и уже давно решена. тут лучше не мучать своими измышлениями гуру, а спросить уже готовое решение.
по поводу кода - вылезла ошибка

Цитата:
Команда: _appload 01.lsp успешно загружено.
01.lsp успешно загружено.
Команда:
Укажите полилинию <Завершить> : ; ошибка: no function definition: SAD-GET-CURRENTSPACE

Последний раз редактировалось Бася, 22.11.2016 в 09:52.
Бася вне форума  
 
Непрочитано 22.11.2016, 13:04
#123
SergeyP


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Можно. Для сегмента полилинии хранится его кривизна (Bulge) Polyline Bulges
Интересная ссылка, спасибо!

Ваша программа станет еще лучше, если сможет сохранять для полилинии помимо координат вершин еще и кривизну участка)
№ x y z bulg

(при этом bulg относится к участку который начинается в данной точке)

Насколько сложно это реализовать?
SergeyP вне форума  
 
Непрочитано 18.05.2017, 11:58
#124
Рyslan


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


Как в программе COORN изменить нумерация точек? Чтобы не просто цифрой задавался порядок, но и текстом? Например не 1, а Точка (POint) 1
Рyslan вне форума  
 
Непрочитано 18.05.2017, 22:42
#125
VVA

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


Цитата:
Сообщение от Рyslan Посмотреть сообщение
Как в программе COORN изменить нумерация точек?
Команда COORN из архива ECoorE rev10b.zip
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.05.2017, 05:34
#126
Рyslan


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


Так у меня уже есть эта программа. Или тут что-то новое?

Аа, вроде разобрался. Спасибо!

VVA подскажи еще. Нужен лисп, если такой существует...Например есть текст, с значением, нужно чтобы этот текст суммировался и далее вставлялся с новым значением. Например 0, 20, 40, 60, 80, 100 и так далее

Последний раз редактировалось Рyslan, 19.05.2017 в 13:23.
Рyslan вне форума  
 
Непрочитано 19.05.2017, 21:45
#127
VVA

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


FAQ #23 Как последовательно пронумеровать в чертеже числа?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.05.2017, 06:25
#128
Рyslan


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


Спасибо большое!
Рyslan вне форума  
 
Непрочитано 22.08.2017, 05:42
#129
Рyslan


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


VVA подскажи еще, как в программе COORN сделать так, чтобы нумерация точек полилинии начиналась с определенной точки? Например, у меня есть трубопровод, он идет с севера на юг, а программа мне сейчас нумерует с юга на север .
Рyslan вне форума  
 
Непрочитано 22.08.2017, 11:08
#130
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


Цитата:
Сообщение от Рyslan Посмотреть сообщение
VVA подскажи еще, как в программе COORN сделать так, чтобы нумерация точек полилинии начиналась с определенной точки? Например, у меня есть трубопровод, он идет с севера на юг, а программа мне сейчас нумерует с юга на север .
Разверни линию и все. команда _reverse/Обратить
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
 
Непрочитано 22.08.2017, 11:08
#131
VVA

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


Нумерация идет в порядке выбора. Отрисуй по точкам полилинию и нумеруй вершины. Полилинию, если что, можно и реверсировать

----- добавлено через ~2 мин. -----
О, не заметил, что речь идет уже про готовую полилинию
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.08.2017, 13:30
#132
Рyslan


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


Спасибо! Развернул. Я полинию скопировал в новый файл и вставил с исходными координатами
Рyslan вне форума  
 
Непрочитано 01.11.2017, 11:30
#133
Eugene.ne.Eugene


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


Уважаемый VVA, а есть возможность извлекать не только координаты точек полилиний, но и название слоев полилиний?
Eugene.ne.Eugene вне форума  
 
Непрочитано 16.02.2018, 10:23
#134
Агент СмиТ

Gti
 
Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121


VVA, протестировал код в каждом из режимов, мполигоны обрабатываются. Два момента, если это возможно, нуждаются в корректировке:
1. Принудительная нумерация вершин в списке координат всех контуров мполигона по часовой стрелке.
При создании мполигона из полилиний, вне зависимости от порядка задания внутреннего и внешнего контура и порядка чередования вершин в каждом контуре, результирующий мполигон получает чередование вершин внешнего контура против часовой стрелки, а внутреннего ПО часовой. Необходимо, что бы все контуры в списке координат нумеровались ПО часовой стрелке.

2. Не включать в список координат центроиды мполигонов (1-1 и 2-10).
Миниатюры
Нажмите на изображение для увеличения
Название: Мполигоны.jpg
Просмотров: 91
Размер:	51.0 Кб
ID:	199250  
__________________
Каждая система стремится к равновесию.
Агент СмиТ вне форума  
 
Непрочитано 16.02.2018, 17:41
#135
VVA

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


Агент СмиТ, Обновил #7.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.02.2018, 23:02
#136
Агент СмиТ

Gti
 
Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121


VVA, проверял работу кода в режиме COORNP.
1. По нумерации вершин: тестил мполигоны созданные конвертацией из существующих прямоугольников, так и созданные напрямую по команде mpolygon с указанием точек. Так и не смог понять логику по которой нумеруются вершины внешнего и внутренних контуров. Желательно, что бы вершины нумеровались по часовой стрелке всегда в каждом контуре и при этом начало нумерации шло с внешнего контура, что не получилось ни в одном из тестов. На рисунке слева большими цифрами показал, в каком порядке показал создавал мполигон, справа результат с правильной последовательностью нумерациии вершин.
2. Центроиды учитываться перестали, это то что нужно.
3. Пропала очень удобная особенность-номер контура, к которому относится вершина (ИМХО такая опция при сортировке и фильтации в эксель гораздо важней флага-разделителя), верните её пожалуйста!
4. Заинтересовал недокументированный режим "COORVIK" - было бы здорово допилить его до таблицы румбов (№, x, y, румб, длина линии), получилась бы тоже очень полезная опция как для мполигонов, так и для остальных примитивов.
Миниатюры
Нажмите на изображение для увеличения
Название: Мполигоны 2.jpg
Просмотров: 63
Размер:	53.6 Кб
ID:	199294  
__________________
Каждая система стремится к равновесию.
Агент СмиТ вне форума  
 
Непрочитано 18.02.2018, 10:12
#137
VVA

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


Агент СмиТ, Выложи пример с парой разных мполигонов. Я не нашел описания принципа формирования dxf кодов мполигона.

----- добавлено через ~2 ч. -----
Нашел пару примеров в интернете. Немного поменял логику. Тестируй
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.02.2018, 17:16
#138
Агент СмиТ

Gti
 
Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121


VVA, протестировал код в режиме coornp:
1. Во всех случаях (в т.ч. при порядке вершин против часовой стрелки) нумерация вершин происходит по часовой стрелке - то что нужно!
2. При создании мполигона напрямую (указанием точек вручную) порядок нумерации контуров противоположен порядку их создания, а нумерация в каждом контуре противоположня порядку указания вершин.
3. При создании мполигона путём конвертации существующих прямоугольников важен только порядок указания примитивов, а порядок их создания роли не играет.
Offtop: В процессе тестирования появился вопрос, возможен ли реверс тех контуров мполигона, где чередование вершин идёт против часовой стрелки? Было бы здорово перед снятием координат приводить все мполигоны к единообразию.
Вложения
Тип файла: dwg
DWG 2007
Mpolygons 3.dwg (813.8 Кб, 34 просмотров)
__________________
Каждая система стремится к равновесию.
Агент СмиТ вне форума  
 
Непрочитано 18.02.2018, 18:35
#139
VVA

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


внес небольшие правки

Цитата:
Сообщение от Агент СмиТ Посмотреть сообщение
возможен ли реверс тех контуров мполигона, где чередование вершин идёт против часовой стрелки?
надо будет попробовать
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.02.2018, 21:21
#140
Агент СмиТ

Gti
 
Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121


VVA, попробовал работу COORNP на двух мполигонах в один приём:
1. насколько я понял, программа правильно обрабатывает только те мполигоны, у которых внешний контур создан раньше внутренних (розовый цвет);
2. те мполигоны, у которых создание происходило начиная с внутренних контуров, обрабатываются также в порядке создания контуров, а не начиная с внешнего, что приводит к неправильному порядку нумерации вершин (зелёный цвет).
Т.е. желательно начинать нумерацию принудительно с внешнего контура, а внутренние контуры обрабатывать в порядке их создания.
Миниатюры
Нажмите на изображение для увеличения
Название: Мполигоны 4.1.jpg
Просмотров: 42
Размер:	37.9 Кб
ID:	199318  Нажмите на изображение для увеличения
Название: Мполигоны 4.2.jpg
Просмотров: 35
Размер:	40.2 Кб
ID:	199319  
__________________
Каждая система стремится к равновесию.
Агент СмиТ вне форума  
Ответ
Вернуться   Форум 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