Тема: Функция SOLDRAW из acsolids.arx

Почему то не работает функция SOLDRAW из acsolids.arx.

В LISP-программе пишу:

(arxload "acsolids")
(c:soldraw "l" "")

Функция "срабатывает", но без аргументов (требует ввести)... Изменение способа указания viewport'а (именем, например) ничего не дает.

(изменено: Александр Ривилис, 19 марта 2009г. 18:47:00)

Re: Функция SOLDRAW из acsolids.arx

Ну и причем здесь форум ObjectARX?
Так тоже не работает:

(command "_SOLDRAW" "_L" "")

:?:

Re: Функция SOLDRAW из acsolids.arx

Александр Ривилис пишет:

Ну и причем здесь форум ObjectARX?
Так тоже не работает:
Код
(command "_SOLDRAW" "_L" "")

Не все так просто. Во-первых, (command "_SOLDRAW" "_L" "") работает, но с глюком в версиях ниже 2009. В 2007, например, срабатывает один раз. При попытки повторного вызова выдает ошибку "4-х глубин":). Во-вторых, во всех описаниях говорится, что использовать (command "_SOLDRAW" "_L" "") в ЛИСП-программах некорректно, а нужно использовать функцию (c:soldraw args) из acsolids.arx. Проблема, как я уже писал, в том, что эта функция, почему то не видит аргументов. Кстати, не только эта функция, но и функция (c:solview args) тоже не видит аргументов. Поэтому и вопрос к спецам по ObjectARX: в чем тут дело?

Re: Функция SOLDRAW из acsolids.arx

1) Для того, чтобы спецы по ObjectARX могли сказать в чем дело, они должны иметь исходные коды acsolids.arx, а они их не имеют.
2) Я проверял в AutoCAD 2006 SP1 - у меня работает.
3) По поводу "4-х глубин" - ищи ошибку у себя.

Re: Функция SOLDRAW из acsolids.arx

Александр Ривилис пишет:

Я проверял в AutoCAD 2006 SP1 - у меня работает.

Что именно работает: (command "_SOLDRAW" "_L" "") или (c:soldraw "_l" "")?

Re: Функция SOLDRAW из acsolids.arx

Конечно:

(command "_SOLDRAW" "_L" "")

а

(c:soldraw "_l" "")

и не должно работать.

(изменено: baliev, 20 марта 2009г. 16:46:41)

Re: Функция SOLDRAW из acsolids.arx

а Код
(c:soldraw "_l" "")
и не должно работать.

Почему???!!!

Re: Функция SOLDRAW из acsolids.arx

Потому-что функция требует на вход набор примитивов, а не ключевое слово _L. Это команде можно передать ключевое слово, а функция этого не поймет.

Re: Функция SOLDRAW из acsolids.arx

Возможно, но я пробовал и так:

(c:soldraw entity_name "")

. Тоже не работает. Кстати, аналогичная функция

(c:solprof entity_name "" "" "")

почему то работает...

Re: Функция SOLDRAW из acsolids.arx

entity_name - имя какого примитива? И какие примитивы нужны команде SOLPROF? Вот над этим подумай.

Re: Функция SOLDRAW из acsolids.arx

Да, там есть разница: для soldraw нужен viewport, а для solprof  - solid. Но с другой стороны, если корректно указываешь имя, то какая разница?