SAPR-ART
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

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

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

sherw00d вне форума Вставить имя

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


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


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


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


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

Всего понемногу
 
Регистрация: 10.02.2007
Москва
Сообщений: 506


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


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


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

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


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

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

Всего понемногу
 
Регистрация: 10.02.2007
Москва
Сообщений: 506


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


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


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

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


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

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


ИМХО проще, как было предложено: сначала получить таблицу, вставить ее, а уже потом редактировать по необходимости.
__________________

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


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


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

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


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


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


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 Кб, 2 просмотров)

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

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


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


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


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

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


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

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

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


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


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


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


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

Всего понемногу
 
Регистрация: 10.02.2007
Москва
Сообщений: 506


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


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


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

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


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

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт координат выбранных точек в *.txt slan.ru Программирование 148 22.03.2018 13:03
Можно ли каким-то образом выцепить имена слоёв файла в виде обычного текста? 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

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||