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

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

Вывод координат точек на чертеже в виде однострочного текста

Ответ
Поиск в этой теме
Непрочитано 24.01.2018, 23:54 #1
Вывод координат точек на чертеже в виде однострочного текста
sherw00d
 
Регистрация: 19.10.2010
Сообщений: 7

Уважаемые форумчане, help! Я уже весь сайт перекопал, не могу найти lisp'a который бы делал следующий порядок действий. Есть точка с координатами формата Х=123456.789 и Y=987654.321, также у меня рядом заготовлена таблица где есть столбец c координатами X и координат Y, но вместо координат там заготовлен однострочный текст в виде точек/нулей/чего угодно - просто там нужен однострочный текст. Так вот, я вызываю lisp, далее он предлагает мне выбрать объект, после того как мы выбрали объект(как правило это круг или точка, не важно), он предлагает выбрать однострочный текст, любой, как раз тот который у нас заготовлен в столбцах. Мы сначала выбираем текст в столбце X(программа автоматически вставляет координату X), а потом выбираем заготовленный текст в столбце Y(программа вставляет текст с координатой Y). Мне не нужно никуда экспортировать мои координаты, мне нужно выводить их здесь же, на чертеже. Стандартная автокадовская утилита мне не подходит. Помогите кто знает такой лисп.
Просмотров: 5923
 
Непрочитано 25.01.2018, 00:15
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


вы серьезно думаете, что постоянное прыганье по чертежу - то выбрать объект, то выбрать ячейки таблицы сильно повысит производительность?
Сергей812 вне форума  
 
Автор темы   Непрочитано 25.01.2018, 02:19
#3
sherw00d


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
вы серьезно думаете, что постоянное прыганье по чертежу - то выбрать объект, то выбрать ячейки таблицы сильно повысит производительность?
ну как бэ, в автокаде есть такая функция, как разделить экран на несколько видовых, в одном выбираете точку, щелкаете мышкой на другой и выбираете заготовленный текст. порядка 300 точек за час легко. и да, это удобно
sherw00d вне форума  
 
Непрочитано 25.01.2018, 05:29
#4
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Вопросы:
1. Что за "Стандартная автокадовская утилита"?
2. Точки как-нибудь упорядочены?
3. Выбор точек произвольный?
4. ...
Setvar вне форума  
 
Непрочитано 25.01.2018, 06:53
#5
trir


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


блоки+DATAEXTRACTION
trir вне форума  
 
Непрочитано 25.01.2018, 07:06
#6
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от sherw00d Посмотреть сообщение
но вместо координат там заготовлен однострочный текст в виде точек/нулей/чего угодно - просто там нужен однострочный текст.
Ко все уже заданным вопросам, дополню: И через какой, найденный на просторах интернета, скрипт потом прогоняется этот массив однострочных текстов?

Цитата:
Сообщение от sherw00d Посмотреть сообщение
и да, это удобно
Удобно... удобно это просто выбирать объекты в модели или указывать точки, а в открытой палитре видеть этот список координат и редактировать его, а по завершении выбора просто экспортировать этот список в excel или в автокад в нужном формате. Вот это удобно, хотя и стоит немного денег.
Boxa вне форума  
 
Непрочитано 25.01.2018, 09:23
#7
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Еще более удобно выбрать рамкой все точки и указать место, куда вставится сгенерированная таблица с координатами.
Setvar вне форума  
 
Непрочитано 25.01.2018, 09:56
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Ну и в завершении как обычно: где ваш код, в каком месте проблемы возникли? Это раздел программирования.
Сергей812 вне форума  
 
Непрочитано 25.01.2018, 10:01
#9
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Setvar, это я имел ввиду под словами "просто выбирать объекты в модели". И прежде чем выводить таблицу, я бы хотел иметь возможность ее посмотреть и отредактировать, возможно хотел бы иметь возможность сохранять различные выборки координат, и продолжать работу с этими выборками в различных сеансах автокада... В общем любые капризы, за Ваши...
Сергей812, да нету кода и не будет.
Boxa вне форума  
 
Непрочитано 25.01.2018, 10:46
#10
Кулик Алексей aka kpblc
Moderator

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


ИМХО проще, как было предложено: сначала получить таблицу, вставить ее, а уже потом редактировать по необходимости.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.01.2018, 10:54
#11
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


А в ячейках таблицы может быть:
Цитата:
Сообщение от sherw00d Посмотреть сообщение
однострочный текст.
?
Сергей812 вне форума  
 
Непрочитано 25.01.2018, 11:31
#12
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Сергей812, Может, если таблица состоит из палочек и однострочных текстов =о)
Boxa вне форума  
 
Непрочитано 25.01.2018, 11:33
#13
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


sherw00d,
Строго по тексту)

Код:
[Выделить все]
 
;************************************************************************************************************************************

(defun get_listed_objects ( get_prompt objects_list / entity_selected vla_object )
	(while
  		(or (not (setq entity_selected (vl-catch-all-apply 'entsel (list get_prompt))))
			(= 'VL-CATCH-ALL-APPLY-ERROR (type entity_selected))
  			(not
  				(member (vla-get-objectname (setq vla_object (vlax-ename->vla-object (car entity_selected))))
  						objects_list
  				)
  			)
  		)
	)
	vla_object
)

;************************************************************************************************************************************

(defun c:XY_DText( / entity_selected  vla_object where_get_coordinates X_Coordinate Y_Coordinate coordinate_change is_continuing answer_got quit_confirmation)
	(setq is_continuing t)
	(while is_continuing
  		(setq vla_object (get_listed_objects "\nSelect Circle/Point to get Coordinates from: " (list "AcDbCircle" "AcDbPoint"))
			  where_get_coordinates (if (= (vla-get-objectname vla_object) "AcDbCircle") 'Center 'Coordinates)
			  X_Coordinate (vl-string-subst "," "." (rtos (car (vlax-get vla_object where_get_coordinates))))
			  Y_Coordinate (vl-string-subst "," "." (rtos (cadr (vlax-get vla_object where_get_coordinates))))
			  vla_object (get_listed_objects "\nXSelect DText to make it X Coordinate of Selected Circle/Point: " (list "AcDbText"))
			  coordinate_change (vla-put-textstring vla_object X_Coordinate)
			  vla_object (get_listed_objects "\nXSelect DText to make it Y Coordinate of Selected Circle/Point: " (list "AcDbText"))
			  coordinate_change (vla-put-textstring vla_object Y_Coordinate)
  		)
		(initget "No Yes")
		(setq answer_got (vl-catch-all-apply 'GetKWord (list "\nWant to Select Next Entity [No/Yes] <Yes>: ")))
		(if (or (= 'VL-CATCH-ALL-APPLY-ERROR (type answer_got))
				(= "No" answer_got)
			)
			(setq is_continuing nil quit_confirmation (princ "\nCommand Ended"))
		)
	)
	(princ)
)

Вложения
Тип файла: lsp XY_DText.lsp (2.0 Кб, 100 просмотров)

Последний раз редактировалось koMon, 02.02.2018 в 22:05.
koMon вне форума  
 
Непрочитано 25.01.2018, 11:54
#14
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
как обычно: где ваш код
Так вот же он =о))) Автора нет, а код уже есть...
Boxa вне форума  
 
Автор темы   Непрочитано 25.01.2018, 15:55
#15
sherw00d


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Ко все уже заданным вопросам, дополню: И через какой, найденный на просторах интернета, скрипт потом прогоняется этот массив однострочных текстов?
ничего прогонять не нужно, по завершении у вас готовая таблица с координатами

Цитата:
Сообщение от Setvar Посмотреть сообщение
Еще более удобно выбрать рамкой все точки и указать место, куда вставится сгенерированная таблица с координатами.
понимаете, у меня стоят отдельно стоящие фундаменты, прямоугольные, точки углов этих фундаментов пронумерованы в определенной последовательности, поэтому мне удобнее самому тыкать в эти точки и сразу же получать их координаты в таблице рядом на втором экране. если я возьму все точки как я потом узнаю какие координаты какой точке принадлежат?


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А в ячейках таблицы может быть:
ДОЛЖЕН быть заготовлен однострочный текст, абсолютно любой, для удобности, что бы не сбивало в процессе заполнения таблицы, это могут просто нули или точки, без разницы

koMon, я не могу проверить ваш код, я не пишу лиспы, вы можете выложить файл в формате LSP?
sherw00d вне форума  
 
Непрочитано 25.01.2018, 16:04
#16
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


sherw00d, Я вообще не понимаю зачем тогда все эти лиспы, если можно сделать все штатными инструментами автокада...
например взять блок, например из этой темы, или сделать подобный, а потом с помощью DATAEXTRACTION получить нужную таблицу или с помощью команд ATTOUT и ATTIN .
Boxa вне форума  
 
Непрочитано 25.01.2018, 16:04
#17
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Offtop:
Цитата:
Сообщение от sherw00d Посмотреть сообщение
koMon, я не могу проверить ваш код, я не пишу лиспы, вы можете выложить файл в формате LSP?
Да вообще, koMon, разве так можно издеваться над человеком - съездите к нему в командировку, поставьте лисп на комп, проведите мастер-тренинг..


----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Boxa Посмотреть сообщение
Я вообще не понимаю зачем тогда все эти лиспы, если можно сделать все штатными инструментами автокада...
например взять блок, например из этой темы, или сделать подобный, а потом с помощью DATAEXTRACTION поучить нужную таблицу или с помощью команд ATTOUT и ATTIN .
у него уже нарисованы фундаменты - ему просто надо в нужном порядке забрать данные координат с углов фундаментов, без всякой расстановки блоков.
Сергей812 вне форума  
 
Непрочитано 25.01.2018, 16:31
#18
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Я так понимаю, что в таблице у автора темы отдельные колонки для X и для Y, следовательно надо два раза тыкать в таблицу для каждой точки. Но программа тогда должна разделить координаты и предлагать что-то типа "Ткни в графу X", потом "Теперь ткни в графу Y". Подозреваю, что человеческий фактор неоднократно подведет под монастырь.
Setvar вне форума  
 
Непрочитано 25.01.2018, 16:40
#19
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от Setvar Посмотреть сообщение
Я так понимаю, что в таблице у автора темы отдельные колонки для X и для Y, следовательно надо два раза тыкать в таблицу для каждой точки. Но программа тогда должна разделить координаты и предлагать что-то типа "Ткни в графу X", потом "Теперь ткни в графу Y".
да нет таблицы, есть совокупность однострочных текстов - которые может и не хватить. Придется останавливать работу лиспа и создавать новые "строчки таблицы". Но он же отводит на одну точку по 12сек
Цитата:
Сообщение от sherw00d Посмотреть сообщение
порядка 300 точек за час легко. и да, это удобно
Сергей812 вне форума  
 
Непрочитано 25.01.2018, 16:45
#20
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
у него уже нарисованы фундаменты - ему просто надо в нужном порядке забрать данные координат с углов фундаментов, без всякой расстановки блоков.
Но ведь блок может выглядеть как просто точка, с невидимыми атрибутами, а последовательность расстановки легко выясняется по хендлу блока при Attout
Просто расскопировать блок и получить координаты в таблице это намного быстрее, чем описанный автором алгоритм.
Boxa вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Вывод координат точек на чертеже в виде однострочного текста

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт координат выбранных точек в *.txt slan.ru Программирование 184 23.03.2023 08:17
Можно ли каким-то образом выцепить имена слоёв файла в виде обычного текста? deema AutoCAD 3 18.09.2013 12:20
Импорт координат точек из файла съемки тахеометра Trimble M3 в AutoCAD Red Nova Программирование 33 17.05.2011 16:46
Извлечение координат точек кривых в текстовый файл Pollcher AutoCAD 2 20.04.2010 12:15
Экспорт координат привязки текста uamihanik Программирование 8 27.02.2010 11:50