|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
05.06.2009, 13:19 | #1 | |
Проблема извлечения площади примитива в CAD
Регистрация: 05.06.2009
Сообщений: 15
|
||
Просмотров: 3851
|
|
||||
Регистрация: 05.06.2009
Сообщений: 15
|
В том-то и дело, я не говорил, что команда "area" не работает (строку типа "Область = 8.4364 кв. единиц, Периметр = 11.8118" выдает исправно), а то что после обращения к ней моя программа останавливается в аварийном режиме, а аналогичное обращение в AutoCAD к этому не приводит, а продолжает свою работу до конца.
Возможно я в первом посте неясно описал ситуацию. Может еще есть какие предложения? |
|||
|
||||
А переменная area есть?
что выдает (setq ar (getvar "area"))
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 05.06.2009
Сообщений: 15
|
возможно неверно истолковал ваш вопрос, поэтому 2 варианта ответа:
1 - в моем коде такой переменной не используется 2 - area - системная пременная Последний раз редактировалось DEMOGOG, 05.06.2009 в 14:46. Причина: возможно неверно истолковал предыдущий вопрос |
|||
|
||||
Цитата:
http://www.caduser.ru/forum/index.ph...D=44&TID=36136 |
||||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
А почему ты не обращаешься сюда:
http://www.infrasoftcad.ru/forum/ Кстати, тему не мешало бы переименовать: Проблема извлечения площади примитива в InfrasoftCAD Последний раз редактировалось Profan, 10.06.2009 в 18:27. |
|||
|
||||
Регистрация: 05.06.2009
Сообщений: 15
|
Официальная поддержка меня расстроила. Я звонил в службу технической поддержки в Москве, пытался выяснить элементарные вещи, также уточнить официальные сравнительные показатели по LISP в противовес AutoCAD, как это выложено, например, у zwCAD или BricsCAD на их оф. сайтах, там ответили мне, что они понятия не имеют. На вопрос: "где можно это выяснить", получил ответ: "если бы существовали такие данные, то мы обязательно знали бы" ))
|
|||
|
||||
Регистрация: 05.06.2009
Сообщений: 15
|
Судя по цене InfrasoftCAD практически самый дешевый, поэтому вывод напрашивается сам собой. Наша организация юзает несколько лицензий AutoCAD и BricsCAD, с ними все ОК. Вообще подсунуть проги работающие под AutoCAD в zwCAD или BricsCAD не было никаких проблем, с менюхами пришлось только немного поразбираться. Под InfrasoftCAD попросили переделать ряд моих прог из дружественной организации, ни одна из них не пашет, проблема извлечения площади только вершина айсберга ((
|
|||
|
||||
Регистрация: 12.09.2005
Барнаул
Сообщений: 77
|
Попробуй следущий код на Лиспе
----------------------------------------------------------------- (setq inPoint (getpoint "\nУкажите точкой площадь: "));;end (Command "_-boundary" inPoint "") (setq Ree (entlast)) (Command "_area" "_E" Ree) (setq areareal (getvar "area")) (Command "_erase" "_L" "") ----------------------------------------------------------------- Или используй утилиты RTools (бесплатные) посмотри на сайте dwg.ru (правда они тут уже старые) или на сайте (не реклама) http://www.zwcadsoft.ru/ в разделе СПДС |
|||
|
||||
Регистрация: 05.06.2009
Сообщений: 15
|
Попробовал. Чем только отличается код, приведенный мной в начале темы, от этого? В AutoCAD Ваш код работает как и ожидалось отлично. В InfrasoftCAD после строки "(setq areareal (getvar "area"))" в командной строке появляется сообщение типа "Область = 8.4364 кв. единиц, Периметр = 11.8118ошибка: неразрешенная функция" и соответственно последняя строка Вашего кода не выполняется (Command "_erase" "_L" ""). Что приводит к аварийному останову любой проги, использующий подобный оборот ((
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835
|
Попробуй предварительно (перед (getvar "area")) установить menuecho и cmdecho в 0. Можно (для гарантии) - nomutt в 1. Не знаю, есть в InfrasoftCAD'e эти переменные или нет, но попробовать можно. Пара встречных вариантов:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 05.06.2009
Сообщений: 15
|
Спасибо за отзывчивось, но по ходу с софтиной что-то не так. Так, если на этом примере показать:
(setq inPoint (getpoint "\nУкажите точкой площадь: "));;end (Command "_-boundary" inPoint "") (setq Ree (entlast)) (Command "_area" "_E" Ree) (setq areareal (getvar "area")) (Command "_erase" "_L" "") После строки (Command "_area" "_E" Ree) выдается сообщение: "Область = 8.4364 кв. единиц, Периметр = 11.8118ошибка: неразрешенная функция" и код прерывается, а если добавить кавычки в конце (Command "_area" "_E" Ree ""), то за счет них после корректного извлечения площади появляется, например, диалоговое окно подгрузки приложений (это последняя команда которой я пользовался перед обращением к юзерской функции), нажимаю на нем ОК и код продолжается до своего логического завершения. Если пользовался перед этим командой redraw, то прога корректно работает )) Бред какой-то Получилось!!!! Проблеммная строка теперь выглядит вот так: (Command "_area" "_E" Ree "_redraw"). "_redraw" - первое простое, что на ум пришло. Получается, что Command "_area" жаждет активного своего завершения )) Всем спасибо за участие! Теперь буду дальше ковырять InfrasoftCAD, что-то там не так в восприятии типов переменных, позже отпишусь Последний раз редактировалось DEMOGOG, 11.06.2009 в 15:55. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |