| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как создать формулу для автоматического счета количества нужных объектов c чертежа?

Как создать формулу для автоматического счета количества нужных объектов c чертежа?

Ответ
Поиск в этой теме
Непрочитано 15.07.2011, 09:31 #1
Как создать формулу для автоматического счета количества нужных объектов c чертежа?
Альпар666
 
Проектировщик
 
Владивосток
Регистрация: 06.02.2010
Сообщений: 6

Как создать формулу для автоматического счета количества нужных объектов c чертежа?
Допустим есть 6 кружков, нарисованных в Автокаде с одинаковым радиусом, как задать формулу или команду в таблицах EXEL в Автокаде, что бы программа автоматически добавляла количество подсчитанных объектов в ячейку, даже если я их буду копировать (кружки). Например копирую кружки, стало 10 штук и в ячейке 10 штук.
Просмотров: 7894
 
Непрочитано 15.07.2011, 09:53
#2
saa


 
Регистрация: 25.09.2008
Новосибирск
Сообщений: 218


Можно сделать нечто подобное с помощью извлечения данных, будет таблица в автокаде, которая будет следить за количеством новых объектов. С Excel такой фокус не пройдет, насколько я помню.
Вот ссылочка в помощь, там вроде то, что тебе надо
__________________
www.saa-blogs.blogspot.com
saa вне форума  
 
Непрочитано 15.07.2011, 09:59
#3
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


_dataextraction
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 15.07.2011, 10:31
#4
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Альпар666 Посмотреть сообщение
в таблицах EXEL в Автокаде
Offtop: ужас...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 15.07.2011, 12:51
#5
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от Альпар666 Посмотреть сообщение
Как создать формулу для автоматического счета количества нужных объектов c чертежа?
Допустим есть 6 кружков, нарисованных в Автокаде с одинаковым радиусом, как задать формулу или команду в таблицах EXEL в Автокаде, что бы программа автоматически добавляла количество подсчитанных объектов в ячейку, даже если я их буду копировать (кружки). Например копирую кружки, стало 10 штук и в ячейке 10 штук.
Есть такая партия
http://through-the-interface.typepad...ng-an-exc.html
Олег (jr.) вне форума  
 
Непрочитано 15.07.2011, 13:56
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Как минимум через DXF (я в одном проекте это использовал) можно установить разное значение и отображение (текстовое) в ячейке - пары 1 и 302. То есть можно придумать свои формулы которые будет обрабатывать, либо по вызову команды(прочитал формулу - изменил отображение), либо вообще реактором на изменение документа - то есть в таблицу вбиваешь какой-нибудь #blockcount("Болт М8 по ГОСТ...."), а в ней будет отображатся текущее количество блоков(болтов). Беда в том, что эти отображения не работают (у меня не получилось) со стандартными табличными формулами - то есть если делать хорошо - надо добавить еще как минимум функци +-*/ скобки и пр. Так-же плюс функции подсчета аттрибутов и суммирования их значений. Проще всего это реализовать через eval - (просто запускаешь строку лисп кода идущего после определенного символа(@# например), а возврат заносишь в отображение ячейки), но в автолиспе eval работает только в общем окружении (там и окружений-то как таковых нет) - то есть потенциальная проблема безопасности (в ячейку запросто вирус или просто какую-нибудь гадость вписать можно). То есть по хорошему надо писать полноценный парсинг с отловом функций, расстановкой их по приоритетам (там всякие скобки, кавычки, умножение, сложение), но на это лично у меня совсем нет времени - будет время (и если еще кому-нибудь нужно) может "разрожусь". Программа-то на самом деле не сильно большая - но "продумать" всяких аспектов надо много.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.07.2011, 18:12
#7
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


делается элементарно на VBA, но если комп у вас недостаточно быстрый... через пару лет лишитесь зубов
gomer вне форума  
 
Непрочитано 15.07.2011, 19:44
#8
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Цитата:
Сообщение от gomer Посмотреть сообщение
делается элементарно на VBA, но если комп у вас недостаточно быстрый... через пару лет лишитесь зубов
это Вы к чему??
p.s. Лично меня "кодерская" часть в данном исполнении нисколько не смущает, а уж диалект здесь дело 10-е - тут куча вопросов в правильной структуре формул и их связи между собой (по простому тут все строчек в 20-30 уложится), а по хорошему одно описание формул (словесное) - на пару страниц.
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 15.07.2011 в 19:54.
Дима_ вне форума  
 
Непрочитано 15.07.2011, 19:56
#9
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Это я к тому что COM не самая быстрая технология...

Цитата:
Сообщение от Альпар666 Посмотреть сообщение
Например копирую кружки, стало 10 штук и в ячейке 10 штук.
За такие мысли на костер нужно сажать...
gomer вне форума  
 
Автор темы   Непрочитано 15.07.2011, 20:00
#10
Альпар666

Проектировщик
 
Регистрация: 06.02.2010
Владивосток
Сообщений: 6
<phrase 1=


Суть в том что как связать таблицу с базой векторных объектов(например линий) в модели автокада, что бы превратить их в табличную матрицу, по которым EXEL будет искать нужное одинаковое значение. Как создать этот автономный "переход"
Альпар666 вне форума  
 
Непрочитано 15.07.2011, 20:11
#11
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


эксель тут 5е колесо, оставьте его бухам, в акаде есть таблицы, что вам еще надо???
gomer вне форума  
 
Непрочитано 17.07.2011, 12:14
#12
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Таблицы в акаде? Это убожество!!! и нереальные тормоза!!! (по крайней мере до 2011 акада).
В них кроме "Ведомости чертежей основного комплекта" и "Ведомости ссылочных и прилагаемых документов" делать ничего не стоит.
Alexeipost вне форума  
 
Непрочитано 17.07.2011, 14:00
#13
5hev

roads
 
Регистрация: 22.12.2010
msk
Сообщений: 121
<phrase 1= Отправить сообщение для 5hev с помощью Skype™


Альпар666, если необходимо (как я понял) из АКАДа в Ексел данные передавать автоматически при редактировании базы АКАДа, то тут ИМХО без реакторов (в случае LISP) и COM не обойтись. В случае VBA - отследить событие базы (редактирование) и опять COM.
Что касается COM-сервера, в данном случае это Ексел, необходимо иметь именованный диапазон (ячейку), которая будет отвечать за определенные примитивы. Я пользуюсь списками, а не диапазонами, ибо они гораздо более продуманные как раз для нашего случая.

Могу сказать сразу, что автообновление - не самая лучшая практика, все это грузит систему, а при больших файлах - очень даже заметно. Я пользуюсь обновлением по запросу юзера.

***
Или разговор сейчас о встроенных таблицах АКАДа? Или об OLE вхождениях?

Последний раз редактировалось 5hev, 17.07.2011 в 17:45. Причина: не догнал
5hev вне форума  
 
Непрочитано 17.07.2011, 18:44
#14
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
и нереальные тормоза
Ручонки крявые однозначно - смотри методы подавления регенерации эскиза таблицы
Олег (jr.) вне форума  
 
Непрочитано 17.07.2011, 20:07
#15
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
Таблицы в акаде? Это убожество!!! и нереальные тормоза!!! (по крайней мере до 2011 акада).
В них кроме "Ведомости чертежей основного комплекта" и "Ведомости ссылочных и прилагаемых документов" делать ничего не стоит.
Если под "тормозами" понимаешь снижение производительности при подсвечивании таблицы, то это легко отключается. Насчёт "убожества" - да, функционал ограничен, но работать с ним можно. В любом случае это лучше, чем в AutoCAD копировать таблицу Excel в виде OLE-объекта.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 18.07.2011, 00:12
#16
vapross

Архитектор
 
Регистрация: 11.05.2010
Москва
Сообщений: 10


Цитата:
Сообщение от 5hev[ru] Посмотреть сообщение
Альпар666, если необходимо (как я понял) из АКАДа в Ексел данные передавать автоматически при редактировании базы АКАДа, то тут ИМХО без реакторов (в случае LISP) и COM не обойтись. В случае VBA - отследить событие базы (редактирование) и опять COM.
Что касается COM-сервера, в данном случае это Ексел, необходимо иметь именованный диапазон (ячейку), которая будет отвечать за определенные примитивы. Я пользуюсь списками, а не диапазонами, ибо они гораздо более продуманные как раз для нашего случая.

Могу сказать сразу, что автообновление - не самая лучшая практика, все это грузит систему, а при больших файлах - очень даже заметно. Я пользуюсь обновлением по запросу юзера.

***
Или разговор сейчас о встроенных таблицах АКАДа? Или об OLE вхождениях?
По-моему, речь идет о dataextraction и все, без БД, серверов и тп., т.е. делается стандартнъми средствами. Тем более в 2011 - там не нужен никакой скриптинг в основном. Мне даже плохо стало, когда я представил, что в акаде я с БД вожусь
__________________
Scio nihil scire
vapross вне форума  
 
Непрочитано 18.07.2011, 07:54
#17
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
Ручонки крявые однозначно - смотри методы подавления регенерации эскиза таблицы
прямым поиском по форуму "методы подавления регенерации эскиза таблицы" выводит только эту тему. Дайте ссылку плиз.
Alexeipost вне форума  
 
Непрочитано 18.07.2011, 08:23
#18
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,780


Offtop:
Цитата:
Сообщение от Alexeipost Посмотреть сообщение
прямым поиском по форуму "методы подавления регенерации эскиза таблицы"
Забыли дописать в начале "диссертация на тему: ".
engngr вне форума  
 
Непрочитано 18.07.2011, 09:30
#19
trezvo_pro


 
Регистрация: 12.05.2011
Сообщений: 65


Я думаю, что это возможно реализовать с помощью автолиспа
trezvo_pro вне форума  
 
Непрочитано 18.07.2011, 09:35
1 | #20
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
прямым поиском по форуму "методы подавления регенерации эскиза таблицы" выводит только эту тему. Дайте ссылку плиз.
Код:
[Выделить все]
 <  Здесь создается или выбирается таблица для редактироания >
;;подавляем перерисовку
 (vla-put-regeneratetablesuppressed atable :vlax-true) 
 < здесь остальная часть работы с таблицей >
;; теперь отображаем все изменения сразу
 (vla-put-regeneratetablesuppressed atable :vlax-false)
сравни как возрастет скорость работы
Олег (jr.) вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как создать формулу для автоматического счета количества нужных объектов c чертежа?

Размещение рекламы