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

Вернуться   Форум 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). Мне не нужно никуда экспортировать мои координаты, мне нужно выводить их здесь же, на чертеже. Стандартная автокадовская утилита мне не подходит. Помогите кто знает такой лисп.
Просмотров: 6576
 
Непрочитано 25.01.2018, 00:15
#2
Сергей812


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


вы серьезно думаете, что постоянное прыганье по чертежу - то выбрать объект, то выбрать ячейки таблицы сильно повысит производительность?
Сергей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,115


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

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


Цитата:
Сообщение от 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,499


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

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


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

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


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


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


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

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


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


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


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

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

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


Цитата:
Сообщение от Сергей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,616


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


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


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,499


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

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
у него уже нарисованы фундаменты - ему просто надо в нужном порядке забрать данные координат с углов фундаментов, без всякой расстановки блоков.
Но ведь блок может выглядеть как просто точка, с невидимыми атрибутами, а последовательность расстановки легко выясняется по хендлу блока при Attout
Просто расскопировать блок и получить координаты в таблице это намного быстрее, чем описанный автором алгоритм.
Boxa вне форума  
 
Непрочитано 25.01.2018, 16:55
#21
Сергей812


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Но ведь блок может выглядеть как просто точка, с невидимыми атрибутами, а последовательность расстановки легко выясняется по хендлу блока при Attout
Просто расскопировать блок и получить координаты в таблице это намного быстрее, чем описанный автором алгоритм.
ну человеку так удобнее - может ему быстрее 300 точек в час не нужно, а подобный алгоритм будет создавать иллюзию напряженной работы. Но что ТС смотрит на текст лиспа и просить дать готовый файл...
Сергей812 вне форума  
 
Непрочитано 25.01.2018, 17:01
#22
Boxa

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Но что ТС смотрит на текст лиспа и просить дать готовый файл...
Это нормально, т.к. с первых строчек темы было понятно, что автор сам ничеего не писал, впрочем он сам признался в этом позднее, а вот то, что kaMon потакает такого рода хотелкам, вот это грустно. Видимо молод и зуд на кончиках пальцев еще не прошел.
ИМХО, на SQL форуме сделали более правильно
Boxa вне форума  
 
Непрочитано 25.01.2018, 17:06
#23
Setvar


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
да нет таблицы
Как же нет, когда сам автор темы пишет: "заготовлена таблица". Даже если она выполнена из отрезков, выглядеть она может как таблица. Далее. При делении области черчения на два видовых экрана придется сначала тыкать мышью куда-то для активации этого видового экрана, а потом уже на текст. При этом неизбежны сбои работы программы. Изначальные построения плохо поддаются автоматизации.
Setvar вне форума  
 
Непрочитано 25.01.2018, 17:15
#24
Сергей812


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


Offtop:
Цитата:
Сообщение от Boxa Посмотреть сообщение
kaMon потакает такого рода хотелкам, вот это грустно.
это личное дело каждого, и koMon не первый) Набор программок никогда не превратиться в законченный комплекс со сквозной обработкой информации, но многим фирмам это и не нужно. Мировое сообщество и Аутодеск сделали очень много для популяризации программирования, выложив информацию в свободный доступ - было бы желание облегчить свой труд.
Сергей812 вне форума  
 
Непрочитано 25.01.2018, 17:16
#25
Setvar


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


Интересно вообразить, ка АТ действует сейчас. Допустим, выделил точку (если она есть). Далее можно посмотреть в палитру свойств и скопировать в буфер значение координаты X. Найти соответствующий текст, два раза кликнуть на нем, текст перейдет в режим редактирования и окажется выделенным. В этот момент можно вставить содержимое буфера обмена и закончить редактирование. Ту же операцию надо провести с координатой Y. Но если точек нет, тогда надо ввести команду КООРД с привязкой Пересечение. Получим значения координат в командной строке. Далее скопировать значении координаты X в буфер обмена и... далее уже было расписано.
Setvar вне форума  
 
Непрочитано 25.01.2018, 17:22
#26
Boxa

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


Сергей812, не правильно меня понял, я не против делиться кодом и помогать, наоборот открыто делюсь и помогаю, участвую в open source проектах, но
мне не нравиться когда пытаются на чужом горбу в рай заехать и когда лгут, прося о помощи.
Boxa вне форума  
 
Непрочитано 25.01.2018, 17:32
#27
Сергей812


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


Цитата:
Сообщение от Setvar Посмотреть сообщение
Интересно вообразить, ка АТ действует сейчас. Допустим, выделил точку (если она есть). Далее можно посмотреть в палитру свойств и скопировать в буфер значение координаты X. Найти соответствующий текст, два раза кликнуть на нем, текст перейдет в режим редактирования и окажется выделенным. В этот момент можно вставить содержимое буфера обмена и закончить редактирование. Ту же операцию надо провести с координатой Y. Но если точек нет, тогда надо ввести команду КООРД с привязкой Пересечение. Получим значения координат в командной строке. Далее скопировать значении координаты X в буфер обмена и... далее уже было расписано.
Если для ТС 12 сек на точку - это хороший результат, то за чуть большее время можно просто вручную вбивать координаты по памяти)

Offtop:
Цитата:
Сообщение от Boxa Посмотреть сообщение
мне не нравиться когда пытаются на чужом горбу в рай заехать и когда лгут, прося о помощи.
это было всегда, сейчас просто более выраженное из-за смещения общества в сторону чистого потребления)
Сергей812 вне форума  
 
Автор темы   Непрочитано 25.01.2018, 19:20
#28
sherw00d


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


знаете, я пришел на форум с просьбой поделиться lisp'ом или ткнуть в него, т.к. таким алгоритмом уже пользовался, и я думал он здесь есть, просто у меня кривые руки и я не могу его найти. начались обвинения, да я этого, как тут подметили, и не скрывал в плане ТС лодырь, студенота ленивая и т.п. друзья, я не просил вас писать программу для меня, перечитайте мой пост, я просил помочь найти LISP, и всё. отдельно кричащих и уработавшихся товарищей, попрошу срочно отдохнуть, вашей помощи мне точно не требуется. мне казалось форум, это всегда добровольная бескорыстная помощь. отдельное спасибо kaMon за его труд, но к сожалению не смогу применить твой труд, дружище. спасибо за проявленное внимание к моему посту.
sherw00d вне форума  
 
Непрочитано 25.01.2018, 20:05
#29
ProjectMaster


 
Регистрация: 21.08.2017
Сообщений: 1,053


https://youtu.be/b-cQg-vSkIY
Смотришь (2 мин). Скачиваешь. Устанавливаешь. Юзаеш.
ProjectMaster вне форума  
 
Непрочитано 25.01.2018, 20:24
#30
Сергей812


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


Цитата:
Сообщение от sherw00d Посмотреть сообщение
, но к сожалению не смогу применить твой труд,
Т.е. открыть блокнот, скопировать туда содержимое лиспа со страницы, убрать цифры строк впереди, сохранить и переименовать расширение на *.lsp - для вас является уже неопределимым препятствием? Обижаться вы можете только на вашу лень.
Сергей812 вне форума  
 
Непрочитано 25.01.2018, 23:08
#31
Setvar


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


Для sherw00d.
Вот тебе код от koMon без нумерации строк и собственно файл LSP.
При других исходных данных мог бы получить приличную программу, нет, надо отклячить губу и притвориться обиженным.
Код:
[Выделить все]
(defun c:XY_DText (/			entity_selented
		   vla_object		where_get_coordinates
		   X_Coordinate		Y_Coordinate
		   coordinate_change	is_continuing
		  )
  (setq is_continuing t)
  (while is_continuing
    (setq vla_object
	   (progn
	     (while
	       (or (not	(setq entity_selented
			       (entsel
				 "\nSelect Circle/Point to get Coordinates from: "
			       )
			)
		   )
		   (not
		     (member (vla-get-objectname
			       (setq vla_object
				      (vlax-ename->vla-object
					(car entity_selented)
				      )
			       )
			     )
			     (list "AcDbCircle" "AcDbPoint")
		     )
		   )
	       )
	     )
	     vla_object
	   )
	  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
	   (progn
	     (while
	       (or (not	(setq entity_selented
			       (entsel
				 "\nXSelect DText to make it X Coordinate of Selected Circle/Point : "
			       )
			)
		   )
		   (not
		     (member (vla-get-objectname
			       (setq vla_object
				      (vlax-ename->vla-object
					(car entity_selented)
				      )
			       )
			     )
			     (list "AcDbText")
		     )
		   )
	       )
	     )
	     vla_object
	   )
	  coordinate_change
	   (vla-put-textstring vla_object X_Coordinate)
	  vla_object
	   (progn
	     (while
	       (or (not	(setq entity_selented
			       (entsel
				 "\nXSelect DText to make it Y Coordinate of Selected Circle/Point: "
			       )
			)
		   )
		   (not
		     (member (vla-get-objectname
			       (setq vla_object
				      (vlax-ename->vla-object
					(car entity_selented)
				      )
			       )
			     )
			     (list "AcDbText")
		     )
		   )
	       )
	     )
	     vla_object
	   )
	  coordinate_change
	   (vla-put-textstring vla_object Y_Coordinate)
    )
    (initget "No Yes")
    (if	(= (getkword "\nWant to Select Next Entity [No/Yes] <Yes>: ")
	   "No"
	)
      (setq is_continuing nil)
    )
  )
  (princ)
)
P.S. Не люблю программы с выходом по Esc.
Вложения
Тип файла: lsp xy-dtext.lsp (2.3 Кб, 13 просмотров)
Setvar вне форума  
 
Непрочитано 25.01.2018, 23:42
#32
Enik

ГИП
 
Регистрация: 07.06.2015
Сообщений: 1,254


Цитата:
Сообщение от Setvar Посмотреть сообщение
Допустим, выделил точку (если она есть). Далее можно посмотреть в палитру свойств и скопировать в буфер значение координаты X. Найти соответствующий текст, два раза кликнуть на нем, текст перейдет в режим редактирования и окажется выделенным. В этот момент можно вставить содержимое буфера обмена и закончить редактирование. Ту же операцию надо провести с координатой Y. Но если точек нет, тогда надо ввести команду КООРД с привязкой Пересечение. Получим значения координат в командной строке. Далее скопировать значении координаты X в буфер обмена и... далее уже было расписано.
Offtop: Как ППТшник, прочитал, задумался, перечитал, покурил, заплакал...
А на самом деле это очень удобный способ, когда из нескольких тысяч точек нужно передвинуть десяток и как-то быстро переделать все таблицы.
Enik вне форума  
 
Непрочитано 26.01.2018, 05:27
#33
Setvar


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


Цитата:
Сообщение от Enik Посмотреть сообщение
из нескольких тысяч точек
Ты всерьез допускаешь наличие на экране таблицу с несколькими тысячами строк? И надо скорректировать ее без нумерации точек (углов прямоугольников) и нумерации строк в таблице?

----- добавлено через ~2 ч. -----
Простейшая программа по условиям автора темы:
Код:
[Выделить все]
(defun C:XY-T ( / echo obj xyp xp yp str1 str2 sty1 sty2 tvt1 tvt2 ht1 ht2)
(setq echo (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setq obj (car (entsel "\nУкажите круг: ")))
(if (and obj (= (cdr (assoc 0 (entget obj))) "CIRCLE"))
    (progn
    (setq xyp (cdr (assoc 10 (entget obj))))
    (setq xp (rtos (nth 0 xyp) 2 3) yp (rtos (nth 1 xyp) 2 3))
    (setq str1 (car (entsel "\nУкажите текст X: ")))
    (if (and str1 (= (cdr (assoc 0 (entget str1))) "TEXT"))
        (progn
        (setq sty1 (cdr (assoc 7 (entget str1)))) ; стиль текста X    
        (setq tvt1 (cdr (assoc 10 (entget str1)))) ; координаты точки вставки текста X    
        (setq ht1 (cdr (assoc 40 (entget str1)))) ; высота текста X    
        (vl-cmdf "_ERASE" str1 "")
        (vl-cmdf "_TEXT" "_s" sty1 tvt1 ht1 "0" xp)
        (princ xp)
        ) ; progn
    ) ; if
    (setq str2 (car (entsel "\nУкажите текст Y: ")))
    (if (and str2 (= (cdr (assoc 0 (entget str2))) "TEXT"))
        (progn
        (setq sty2 (cdr (assoc 7 (entget str2)))) ; стиль текста Y   
        (setq tvt2 (cdr (assoc 10 (entget str2)))) ; координаты точки вставки текста Y    
        (setq ht2 (cdr (assoc 40 (entget str2)))) ; высота текста Y    
        (vl-cmdf "_ERASE" str2 "")
        (vl-cmdf "_TEXT" "_s" sty2 tvt2 ht2 "0" yp)
        (princ yp)
        ) ; progn
    ) ; if
    ) ; progn
) ; if
(setvar "CMDECHO" echo)
(princ)
)
Setvar вне форума  
 
Непрочитано 26.01.2018, 07:14
#34
Boxa

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


Offtop: Парни красуются друг перед другом.
Boxa вне форума  
 
Непрочитано 26.01.2018, 07:38
#35
Enik

ГИП
 
Регистрация: 07.06.2015
Сообщений: 1,254


Цитата:
Сообщение от Setvar Посмотреть сообщение
Ты всерьез допускаешь наличие на экране таблицу с несколькими тысячами строк? И надо скорректировать ее без нумерации точек (углов прямоугольников) и нумерации строк в таблице?
Нет, немного не так. Несколько тысяч точек - это раскидано в модели (линейный объект, например). Через извлечение данных (из скрытых атрибутов блоков) они закидываются в эксель. А потом уже из экселя они перекочёвывают в различные таблицы в разных документах.

И, да, нумерация точек тут не летит, только координаты меняются:
а) либо количество точек умышленно делается такое, как было или
б) точки индексируются особым образом, чтобы можно было невозбранно добавить/выкинуть.

А за труд - спасибо! За себя и за ТС (если оный не появится).
Enik вне форума  
 
Непрочитано 26.01.2018, 08:36
#36
VVA

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


Цитата:
Сообщение от sherw00d Посмотреть сообщение
отдельное спасибо kaMon за его труд, но к сожалению не смогу применить твой труд, дружище. спасибо за проявленное внимание к моему посту.
Применить можешь. Подведи мышку к коду, дальше как на картинке
Миниатюры
Нажмите на изображение для увеличения
Название: lispcopyclipboard.png
Просмотров: 29
Размер:	67.2 Кб
ID:	198207  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.01.2018, 14:07
1 | #37
koMon


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


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

меня, что уже хакнули kaMon???))))

sherw00d, не надо писаь лиспы, чтобы их пробовать. это простые текстовые файлы. всё что нужно для их использования - это сохранение их на какой-то носитель в виде *.lsp и дальнейшая загрузка в автокаде тем или иным способом. я думаю здесь, на форуме можно найти немеряно описалок как это сделать)) VVA кстати вполне доходчиво показал как это сделать с веб-страницы. выкладываю текстовый лисп на ВПЖ.

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

зачёт)))

Цитата:
Сообщение от Bаxa Посмотреть сообщение
а вот то, что kaMon потакает такого рода хотелкам, вот это грустно. Видимо молод и зуд на кончиках пальцев еще не прошел.
sherw00d попросил хелпа, я попытался помочь, из "домашних" заготовок "слепив" пп. 1-3 из шапки. Заняло это у меня макс 15 мин с ниписанием поста и т.д., но я всё-же надеялся услышать что-то подобно-близкое...)

Offtop:
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
это личное дело каждого, и koMon не первый) Набор программок никогда не превратиться в законченный комплекс со сквозной обработкой информации, но многим фирмам это и не нужно. Мировое сообщество и Аутодеск сделали очень много для популяризации программирования, выложив информацию в свободный доступ - было бы желание облегчить свой труд.

и наверное не крайний)))

Цитата:
Сообщение от Setvar Посмотреть сообщение
P.S. Не люблю программы с выходом по Esc.
я конечно же могу дописать выход по Esc без ошибки, но это не укладыва[лось][ется] в обозначенную тематику))) И кстати там можно выйти по ключевому слову.

Offtop:
Цитата:
Сообщение от Boxa Посмотреть сообщение
Парни красуются друг перед другом.

Offtop: знаешь, я начинаю серьзёзно подумывать о существовании Alter ego)))
Вложения
Тип файла: lsp XY_DText.lsp (2.0 Кб, 10 просмотров)

Последний раз редактировалось koMon, 26.01.2018 в 14:18.
koMon вне форума  
 
Непрочитано 26.01.2018, 14:31
#38
Boxa

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


Цитата:
Сообщение от koMon Посмотреть сообщение
знаешь, я начинаю серьзёзно подумывать о существовании Alter ego)))
Дык весна на улице =о))))) Хотя с другой стороны, выложено одно решение, в формате, которым автор темы не может воспользоваться, зачем выкладывать остальные решения в том же формате? Почему не приложить lsp файл? Вот, вывод, парни скилами мериются... =о)))
Boxa вне форума  
 
Непрочитано 26.01.2018, 14:49
#39
koMon


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Дык весна на улице =о)))))
Впору объявлять соцсоревнование)))
koMon вне форума  
Ответ
Вернуться   Форум 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