Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

> Александр
Ривилис
ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов - вот скрин с Autocad 2008 + GeomProps + AcadLayoutsCount
>Hwd
Удалил из реестра раздел, выполняющий автоматическую загрузку AcadLayoutsCount и проверил, проблема исчезла вместе с действием поля... так поучается что нет ветки в реестре, нет загрузки программы, нет проблем ;)

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Ты не упомянул наличие СПДС.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Упс, каюсь.
Как-то уже прижился, как само собой разумеющееся ...
В MEP2011 тоже к стати установлен.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

1. Добавил в версии 2007+ возможность включения/отключения GeomProps (команды GeomPropsStart и GeomPropsStop). Состояние GeomProps сохраняется между запусками AutoCAD (т.е. если отключили, то при следующем запуске будет отключено).
2. Добавил в версии 2006+ обработку AcDbBody, AcDbPolygonMesh и AcDbPolyFaceMesh
3. Добавил в версии 2010+ обработку AcDbSubDMesh
4. Изменил алгоритм подсчета площади AcDbFace если грань неплоская (обсуждение здесь)
Проверяйте.

(изменено: Reka, 12 декабря 2010г. 15:44:05)

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

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

2. Радикальный метод избавится от GeomProps - удалить файл его arx-файл. 3. Если открыт Design Center (команда _adcenter) и загружен GeomProps при выходе из AutoCAD возникает ошибка (необрабатываемое исключение в AcObjClassImp.arx). При этом нет потери данных в dwg-файлах, которые были открыты, т.к. к этому моменту они уже сохранены.

Еще раз спасибо за приватную помощь, Александр!
По существу цитаты.
Оказывается, то о чем я писал "инструментальные палитры" не есть Design Center (команда _adcenter), а вызывается ком. _ToolPalettes. Однако сути не меняет. При открытых инструментальных палитрах (ACAD 2007 RUS без SP) и закрытии CADa возникает ошибка (необрабатываемое исключение в AcObjClassImp.arx). Попробовал закрывать ToolPalettes перед закрытием CADa, после этого перегружал. Повторная загрузка уже была без ToolPalettes. Все равно при выходе возникает ошибка.
По Вашему совету КАЧЕСТВЕННО избавился чисткой реестра, радикально избавившись, тем самым, от GeomProps. Но "примочка"-то стоящая и периодически требуется. При этом, что-бы не раздражало сообщение об ошибке, реестр нудновато чистить. Удалять / копировать файл то-же, лично мне, не очень - привык когда все на своих местах. Более простой, опять же на мой взгляд, способ - просто переименовать его, например, "GeomProps2007_.arx".

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Reka, Более простой способ забить на это, т.к.

При этом нет потери данных в dwg-файлах, которые были открыты, т.к. к этому моменту они уже сохранены.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Владимир Азарко пишет:

Reka, Более простой способ забить на это, т.к.

Не эстетично это...  :) Но к сожалению пока избавится от этого необрабатываемого исключения я не смог. Для этого требуется радикальная переделка всей программы, которая может занять несколько недель плотного труда. Я пока на такое не могу решиться.

(изменено: Reka, 14 декабря 2010г. 16:57:13)

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Все равно, Александр, прога обалденная!!! Не нарадуюсь! Спасибо!
И как она мимо меня столько лет проскальзывала?... :D

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Можно поблагодарить своего героя, тут http://forum.dwg.ru/showthread.php?t=61058
Особое внимание к посту #13
;)

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Александр, выдаёт ошибку и закрывает AutoCAD при выборе EXTRUDEDSURFACE, ваша программа их в принципе не обрабатывает? Или это у меня поверхность не правильная?

(изменено: Александр Ривилис, 1 апреля 2011г. 22:07:54)

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Disney пишет:

Александр, выдаёт ошибку и закрывает AutoCAD при выборе EXTRUDEDSURFACE, ваша программа их в принципе не обрабатывает? Или это у меня поверхность не правильная?

Должна обрабатывать. Пришли мне чертеж - проверю. Уточни только версию AutoCAD и разрядность.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

В AutoCAD 2008 эта ошибка не проявляется, в AutoCAD 2011 стабильно повторяется. Не понятно почему именно с EXTRUDEDSURFACE, т.к. ошибка происходит еще до анализа типа примитива. Тем не менее путем хитрых манипуляций мне удалось (кажется) обойти эту ошибку. Проверяй.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

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

Уточни только версию AutoCAD и разрядность.

Извините забыл, конечно же 2011х64

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

Тем не менее путем хитрых манипуляций мне удалось (кажется) обойти эту ошибку.

Да, спасибо, всё отлично работает ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

(изменено: Александр Ривилис, 5 апреля 2011г. 14:35:10)

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Сделал попытку обойти ошибку при работе с вертикальными продуктами. В частности в AutoCAD Architecture при перетаскивании стен/окон/дверей и т.д. в чертеж возникала ошибка (Fatal Error). Удалось устранить. Тестируйте. Исправление сделано для версий 2008+.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Александр, добрый день. А скажите, вы убрали из своей программы для новых версий автокада возможность вызывова функций в VBA, как у вас было для 2006-2007 автокадов?

' Для AutoCAD 2006
' Private Declare Function GeomPropsGetArea Lib "GeomProps2006.arx" (ByVal id As Long) As Double
' Private Declare Function GeomPropsGetVolume Lib "GeomProps2006.arx" (ByVal id As Long) As Double
' Private Declare Function GeomPropsGetPerimeter Lib "GeomProps2006.arx" (ByVal id As Long) As Double
' Для AutoCAD 2007 и выше
Private Declare Function GeomPropsGetArea Lib "GeomProps2007.arx" (ByVal id As Long) As Double
Private Declare Function GeomPropsGetVolume Lib "GeomProps2007.arx" (ByVal id As Long) As Double
Private Declare Function GeomPropsGetPerimeter Lib "GeomProps2007.arx" (ByVal id As Long) As Double

Для 2010-го сейчас такого нету?

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Mameluk пишет:

А скажите, вы убрали из своей программы для новых версий автокада возможность вызывова функций в VBA, как у вас было для 2006-2007 автокадов?

Нет. Она сама потерялась.  :oops: Исправил. Тестируй.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Александр Ривилис, спасибо, все работает :)

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Можно сделать Linear scale factor в Geometrical properties (settings)независимым от числа знаков после запятой, установленной в рабочих единицах файла?
Чтобы всегда видеть, какой коэффициент установлен. Иногда нужно работать, округляя до десятых или сотых, а, если считать нужно с 0.001 или т.п., то в строке Linear scale factor кроме нулей ничего не видно.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

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

Можно сделать Linear scale factor в Geometrical properties (settings)независимым от числа знаков после запятой, установленной в рабочих единицах файла?

Теоретически возможно. Практически - достаточно трудоемко. Извини но возможности сейчас заняться этим нет.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Здравствуйте, Александр.

Такой вопрос.
Как всё-таки удалить GeomProps грамотно, не радикальным методом?

Дело в том, что мне надо установить GeomProps с помощью Автолиспа.
и код:

(vla-LoadArx
       (vlax-Get-Acad-Object)
       "d:\\GeomProps\\GeomProps2010x32.arx"
)

Не работает, выдаёт ошибку (это кстати второй вопрос, потому что подобный код срабатывает например с DWGConvert и ExplodeProxy).

Я загрузил GeomProps с помощью _APPLOAD. Всё нормально.
Сейчас, чтобы продолжить эксперименты с лиспом, мне надо это GeomProps удалить. Радикально, как предложено в 1-м посте, не хотелось бы.

AutoCAD 2012 32bit

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

А почему не использовать просто (arxload <...>)?

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Makswell пишет:

Сейчас, чтобы продолжить эксперименты с лиспом, мне надо это GeomProps удалить. Радикально, как предложено в 1-м посте, не хотелось бы.

А придется. smile Другого способа нет, т.к. GeomProps регистрирует себя для автозагрузки и регистрирует сервер.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Кулик Алексей aka kpblc пишет:

А почему не использовать просто (arxload <...>)?

Не знаю. А вот как сейчас проверить? GeomProps-то уже стоит. Переименовывать и загружать другой? А потом, если я опять что-то в лиспе проверить захочу, то переименовывать и загружать другой? И так далее? Я не знаю, что там делает эта программа, но ИМХО это замусоривание системы. Получается деинсталлировать программу (а это очевидный момент не требующий каких-то спец условий) можно только с деинсталляцией Автокада? Не слишком ли сурово?

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

А придется.Другого способа нет, т.к. GeomProps регистрирует себя для автозагрузки и регистрирует сервер.

Ок. Объясните мне, что будет происходить в системе/в Автокаде когда я удалю файл программы.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

Makswell пишет:

Ок. Объясните мне, что будет происходить в системе/в Автокаде когда я удалю файл программы.

Ничего особенного. AutoCAD при запуске не найдёт этот файл, соответственно не загрузит его. Ну и в панели свойств не появятся пункты GeomProps. AutoCAD при этом не будет ругаться.

Re: ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов

А он (Автокад) не будет пытаться его найти по путям поддержки? Я в том смысле, что не скажется ли это на быстродействии (пусть чуть-чуть, но тем не менее)?