Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Ese от 17-12-2020, 15:08:03

Название: Ввод Lisp выражений.
Отправлено: Ese от 17-12-2020, 15:08:03
Вопрос, можно ли как-то посылать Lisp через командную строку?
Например этот:
Код - Auto/Visual Lisp [Выбрать]
  1. (command "_move""_all""""""0,0,1e99""_move""_all""""""0,0,-1e99")

Пробовал через doc.SendStringToExecute() с экранированием кавычек (\"), но не получилось.

Если можно то как?

Название: Re: Ввод Lisp выражений.
Отправлено: Александр Ривилис от 17-12-2020, 15:12:12
Ese,
Можно. И через doc.SendStringToExecute() - видимо плохо экранировал. Вопрос только "Зачем???"
Тоже самое ты можешь прекрасно проделать средствами AutoCAD .NET API
Название: Re: Ввод Lisp выражений.
Отправлено: Ese от 17-12-2020, 16:12:37
Можно. И через doc.SendStringToExecute() - видимо плохо экранировал.
Да, получилось.
А как это будет через Net?
(Lisp не знаю, я понимаю, что наверное, там должны быть пробелы вместо пустых кавычек?)
Название: Re: Ввод Lisp выражений.
Отправлено: Александр Ривилис от 17-12-2020, 16:17:11
Можно. И через doc.SendStringToExecute() - видимо плохо экранировал.
Да, получилось.
А как это будет через Net?
(Lisp не знаю)
Для каждого примитива в текущем пространстве выполняешь метод TransormBy с матрицей переноса из 0,0,0 в 0,0,1e99 и обратно. В чем только смысл этих телодвижений? Передернуть все примитивы?
Название: Re: Ввод Lisp выражений.
Отправлено: Ese от 17-12-2020, 16:23:31
В чем только смысл этих телодвижений? Передернуть все примитивы?
https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/RUS/how-to-flatten-a-drawing-in-autocad.html (https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/RUS/how-to-flatten-a-drawing-in-autocad.html)
Сделать чертеж плоским. Типа Flatten.
Название: Re: Ввод Lisp выражений.
Отправлено: Алексей Кулик от 18-12-2020, 07:58:54
Сделать чертеж плоским. Типа Flatten.
Так просто это может и не получиться. Достаточно вспомнить хотя бы про разные OCS.
Название: Re: Ввод Lisp выражений.
Отправлено: Привалов Дмитрий от 18-12-2020, 09:07:11
Сделать чертеж плоским. Типа Flatten.
А почему не Flatten? используется AutoCAD LT?

Данный способ малоэффективный, и может привести к проблемам.
Название: Re: Ввод Lisp выражений.
Отправлено: Алексей Кулик от 18-12-2020, 09:53:06
LT не позволит загрузить dll, насколько я помню.
Название: Re: Ввод Lisp выражений.
Отправлено: Привалов Дмитрий от 18-12-2020, 10:17:05
LT не позволит загрузить dll, насколько я помню.
Скорее всего.

Испытал способ с перемещением. Бездумно использовать нельзя, может испортить чертежи, особенно размеры.
Но нашел для себя возможное полезное использование.
Этим способом можно сбросить Z у объектов СПДС без необходимости их разбивать. А вот это очень интересно.
После НГ попробую протестировать более детально.