Сплайн

Автор Тема: Сплайн  (Прочитано 9040 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн 1958Автор темы

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Сплайн
« : 06-05-2018, 19:52:05 »
Вроде просмотрел везде, но так и не нашел, как обойти запрос на указание касательных при рисовке сплайна.
Сейчас приходится нажимать несколько раз <Enter> для завершения процесса. :(
Код - Auto/Visual Lisp [Выбрать]
  1. (defun c:22 (/)
  2.  (command "_SPLINE")
  3.  (while (/= (logand (getvar "cmdactive") 31) 0) (command pause))
  4. )

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сплайн
« Ответ #1 : 06-05-2018, 20:34:29 »
Сплайны, рисуемые командой, зависят от ряда системных переменных. И кроме того есть различие в разных версиях AutoCAD.
SPLFRAME 
SPLINESEGS
SPLINETYPE
SPLDEGREE
SPLKNOTS
SPLMETHOD
SPLPERIODIC
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сплайн
« Ответ #2 : 06-05-2018, 21:14:33 »
1958
Попробуй такой вариант:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun c:22 (/)
  2.      (initcommandversion 2)
  3.      (command "_SPLINE")
  4.      (while (/= (logand (getvar "cmdactive") 31) 0) (command pause))
  5. )
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Сплайн
« Ответ #3 : 06-05-2018, 21:43:15 »
Можно, конечно, совсем извратиться :) Запрашивать точки и их добавлять как контрольные точки в сплайн по мере указания ;)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сплайн
« Ответ #4 : 06-05-2018, 21:47:03 »
Можно, конечно, совсем извратиться :) Запрашивать точки и их добавлять как контрольные точки в сплайн по мере указания ;)
Предложенный мной код, а именно (initcommandversion 2), заставляет AutoCAD выполнять (command "_SPLINE" ...) как команду _SPLINE запущенную из командной строки вручную.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн 1958Автор темы

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: Сплайн
« Ответ #5 : 07-05-2018, 03:43:49 »
** Error: no function definition: INITCOMMANDVERSION **
У меня 2007. Эта версия меня больше всего устраивает. Перепробовал множество, вплоть до 2018, но душа всё-равно в 2007 осталась. :)

Оффлайн 1958Автор темы

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: Сплайн
« Ответ #6 : 07-05-2018, 03:45:36 »
Попробуй такой вариант:
** Error: no function definition: INITCOMMANDVERSION **
У меня 2007. Эта версия меня больше всего устраивает. Перепробовал множество, вплоть до 2018, но душа всё-равно в 2007 осталась. :)

Оффлайн 1958Автор темы

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: Сплайн
« Ответ #7 : 07-05-2018, 03:50:49 »
Можно, конечно, совсем извратиться  Запрашивать точки и их добавлять как контрольные точки в сплайн по мере указания
Это чтоб потом сплайн создать командой entmake? Но тогда я не увижу процесс отрисовки сплайна (его укладки). Мне надо обрисовывать чертеж по растру (дигитализация горизонталей топоплана).

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Сплайн
« Ответ #8 : 07-05-2018, 08:02:30 »
Поскольку нужно видеть "процесс укладки", то придется мириться с запросом углов.
P.S. Уже очень давно не работаю в 2007, почти ничего о его особенностях и не помню...
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сплайн
« Ответ #9 : 07-05-2018, 10:34:06 »
Попробуй такой вариант:
** Error: no function definition: INITCOMMANDVERSION **
У меня 2007. Эта версия меня больше всего устраивает. Перепробовал множество, вплоть до 2018, но душа всё-равно в 2007 осталась. :)

Ну если эта версия устраивает, то смирись со всеми её недостатками.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн 1958Автор темы

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: Сплайн
« Ответ #10 : 07-05-2018, 15:32:43 »
В версии 2018 (initcommandversion 2) работает.
Тогда такой вопрос: - с какой версии АвтоКАД появилась initcommandversion ?
Это чтобы я мог сделать проверку на версию и включить (initcommandversion 2).

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Сплайн
« Ответ #11 : 07-05-2018, 15:40:34 »
А оно настолько надо?
Код - Auto/Visual Lisp [Выбрать]
  1. (defun custom-spline ()
  2.   (vl-cmdf "_.spline")
  3.   (while (/= (logand (getvar "cmdactive") 31) 0) (vl-cmdf pause))
  4.   ) ;_ end of defun
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Отмечено как Решение 1958 07-05-2018, 17:12:52

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сплайн
« Ответ #12 : 07-05-2018, 15:44:32 »
В версии 2018 (initcommandversion 2) работает.
Тогда такой вопрос: - с какой версии АвтоКАД появилась initcommandversion ?
Это чтобы я мог сделать проверку на версию и включить (initcommandversion 2).
Проверка на версию не нужна:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun c:22 (/)
  2.      (if initcommandversion (initcommandversion 2))
  3.      (command "_SPLINE")
  4.      (while (/= (logand (getvar "cmdactive") 31) 0) (command pause))
  5. )
Эта функция появилась или в AutoCAD 2009 или в AutoCAD 2010.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн 1958Автор темы

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: Сплайн
« Ответ #13 : 07-05-2018, 16:59:20 »
А оно настолько надо?
А в чем смысл вашего вопроса? И зачем Вы повторили код из первого поста?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сплайн
« Ответ #14 : 07-05-2018, 17:04:54 »
И зачем Вы повторили код из первого поста?
У  Алексей Кулик используется функция (vl-cmdf) вместо (command). Эти функции не совсем одинаковые. Но в данном случае замена не помогает.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Сплайн
« Ответ #15 : 07-05-2018, 17:24:50 »
Приношу свои извинения, невнимательно прочитал ветку.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн 1958Автор темы

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: Сплайн
« Ответ #16 : 07-05-2018, 17:35:56 »
У  Алексей Кулик используется функция (vl-cmdf) вместо (command). Эти функции не совсем одинаковые. Но в данном случае замена не помогает.
Про эту разницу я в курсе. Кстати, у меня в оригинале (не в посте №1) используется vl-cmdf вместо command и, совершенно верно, тут без разницы.

Оффлайн 1958Автор темы

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: Сплайн
« Ответ #17 : 07-05-2018, 17:37:54 »
Приношу свои извинения, невнимательно прочитал ветку.
:) Бывает. Не обижайтесь, если чем-то задел Вас.