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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Каким образом узнать длину нескольких динамических блоков

Каким образом узнать длину нескольких динамических блоков

Ответ
Поиск в этой теме
Непрочитано 05.12.2007, 12:50
Каким образом узнать длину нескольких динамических блоков
ie.spb
 
Инженер
 
Регистрация: 21.08.2007
Сообщений: 583

Блоки- простейшие прямоугольники с линейными параметрами. Каждый блок своей длины. можно ли узнать суммарную их длину. (т.е. просто длину прямоугольного блока). В поиске не нашел ничего подходящего.
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
Просмотров: 6338
 
Непрочитано 13.12.2007, 03:13
#21
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,555
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
data extraction - это имеется в виду извлечение атрибутов? Потому что таблица в #12 как-то странновато сделана: обновления не выполняется при копировании объектов. Проверял на ADT 2006 Rus.
Цитата:
Сообщение от Djonikbishkek Посмотреть сообщение
Такая же история на 2008 каде. Но когда сам создаешь все нормально, обновляется как положено.
Все верно вы говорите. В моей таблице прописаны мои пути доступа к файлу в котором производится подсчет атрибутов. Поэтому на других компах и не будет обновлять пока не перебьешь пути к файлу. Или, как говорит Джоник-Бишкек, можно создать таблицу заново.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 13.12.2007, 07:19
#22
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 583
<phrase 1=


Твоя правда. И все таки долгая это история. Проще программкой. И еще не переводи мой ник на русский, а то звучит не очень как-то.
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 13.12.2007, 08:15
#23
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,555
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Djonikbishkek, ОК!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 13.12.2007, 21:44
#24
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Мужики! вы совсем заработались.
Вот как надо и складывай, и вычитай и хоть в степень возводи.
Вложения
Тип файла: dwg
DWG 2004
Блоки.dwg (46.4 Кб, 545 просмотров)
Supermax вне форума  
 
Непрочитано 14.12.2007, 03:06
#25
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,555
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Supermax Посмотреть сообщение
Мужики! вы совсем заработались.
Вот как надо и складывай, и вычитай и хоть в степень возводи.
Ага, а когда у тебя хотя бы 50 блоков с различными параметрами, как у Djonikbishkek, ты что делать будешь? Записывать в филд формулу из 50 слагаемых??? Потом прибавилось пара блоков... Перебивать формулу в филде??? Ты уж извени, Supermax, но твой вариант самый плохой...
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 14.12.2007, 03:20
#26
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Какого перебивать? А добавить слабо? Если в блоке и высота и длинна, как отличить одно от другого? Только указанием на конкретный параметр. Что в проге, что в формуле, работа одна и та же. Тыкай, тыкай, тыкай. Формула хоть никуда не исчезает и все указанные параметры хранит, а прогой один раз посчитал и привет. Иначе в прогу надо вставлять создание файла и сохранение в нем данных, или в сам файл чертежа вставлять куда-то. Можно конечно параметры длин обозвать особо, чтобы прога их выделяла из прочих длин, но тогда платим универсализмом. Прийдется везде такие названия параметрам давать, а это не приемлемо.

Что, сохранять в таблицу лучше? В два раза больше работы.
Supermax вне форума  
 
Непрочитано 14.12.2007, 03:36
#27
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,555
<phrase 1= Отправить сообщение для wetr с помощью Skype™


по моему мы про разные веши разговариваем. Supermax, ты data extraction пробовал??? Судя по высказываниям - "Что, сохранять в таблицу лучше? В два раза больше работы" - нет.
1. Для данной КОНКРКТНОЙ задачиDjonikbishkekа, лисп это лучший вариант, не надо тыкать,тыкать, тыкать.
2. data extraction позволяет автоматом вывести ЛЮБЫЕ параметры, хоть длину, хоть высоту, в таблицу и не важно сколько блоков. Я вчера пробовал посчитать 2500 блоков Djonikbishkekа. Все вывелось в таблицу за несколько секунд. А ты сколько раз бы тыкал??? После создаем ячейку "сумма". И ФСЕ!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 14.12.2007, 04:35
#28
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Заинтриговал, однако.
Supermax вне форума  
 
Автор темы   Непрочитано 14.12.2007, 06:40
#29
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 583
<phrase 1=


Алексей, еще вопрос. Так получилось, что у одного нашего сотрудника русский Автокад, и программа выдает сумму 0. Знаю что надо где-то в тексте программы поставить "_", вот только где?
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 14.12.2007, 08:36
#30
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,411


Дело в том, что у меня не используются командные методы, поэтому ставить "_" где бы то ни было - бесполезно (попросту негде). Сейчас проверю на 2006-м, оно у меня русское...
Проверил. Все считается. Может, в блоках нет свойства distance?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.12.2007, 09:02
#31
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 583
<phrase 1=


Я знаю в чем проблема. Мои блоки созданы в английской версии, и у них есть параметр Distance, который так и воспринимается русской версией. А если блок создать в русской версии, то этот параметр называется Длина. Или я не прав?
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 14.12.2007, 09:53
#32
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,555
<phrase 1= Отправить сообщение для wetr с помощью Skype™


вот тут то и проявляются преимущества data extraction
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Автор темы   Непрочитано 14.12.2007, 11:53
#33
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 583
<phrase 1=


Тебе надо рекламным агентом работать. Хорошо продвигаешь data extraction. :-))
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 14.12.2007, 12:18
1 | #34
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,411


Втупую, думать не получается:
Код:
[Выделить все]
(defun c:get-len (/ summ selset)
  (vl-load-com)
  (if (setq selset (ssget '((0 . "INSERT"))))
    (setq summ
           (apply
             '+
             (mapcar
               '(lambda (b) (vlax-variant-value (vla-get-value b)))
               (vl-remove-if-not
                 '(lambda (a)
                    (wcmatch (strcase (vla-get-propertyname a))
                             "DISTANCE,ДЛИНА"
                             ) ;_ end of wcmatch
                    ) ;_ end of lambda
                 (apply
                   'append
                   (mapcar
                     '(lambda (x)
                        (vlax-safearray->list
                          (vlax-variant-value
                            (vla-getdynamicblockproperties x)
                            ) ;_ end of vlax-variant-value
                          ) ;_ end of vlax-safearray->list
                        ) ;_ end of lambda
                     (vl-remove-if-not
                       '(lambda (x)
                          (equal (vla-get-isdynamicblock x) :vlax-true)
                          ) ;_ end of lambda
                       (mapcar 'vlax-ename->vla-object
                               ((lambda (/ tab item)
                                  (repeat (setq tab  nil
                                                item (sslength selset)
                                                ) ;_ end setq
                                    (setq tab
                                           (cons (ssname selset (setq item (1- item))) tab)
                                          ) ;_ end of setq
                                    ) ;_ end of repeat
                                  tab
                                  ) ;_ end of lambda
                                )
                               ) ;_ end of mapcar
                       ) ;_ end of vl-remove-if-not
                     ) ;_ end of mapcar
                   ) ;_ end of apply
                 ) ;_ end of vl-remove-if-not
               ) ;_ end of mapcar
             ) ;_ end of apply
          ) ;_ end of setq
    ) ;_ end of if
  (if summ
    (alert (rtos summ 2 2))
    ) ;_ end of if
  ) ;_ end of defun
Заберет данные и с DISTANCE, и с ДЛИНА.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 14.12.2007 в 13:40.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.12.2007, 12:47
#35
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 583
<phrase 1=


Я понимаю, что после вчерашнего. Еще раз с прошедшим. И к теме, даже если заменить Distance на Длина, все равно не работает, выдает ошибку.
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 14.12.2007, 13:08
1 | #36
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,411


Тут мало что после вчерашнего, так еще и работы немеряно нарисовали. короче, образец (если можно, конечно). Потому как рисовать полный вариант означает пытаться изобразить замену того, что рекламирует wetr
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.12.2007, 13:13
#37
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 583
<phrase 1=


Вот тот же самый файл только с параметром "Длина"
Вложения
Тип файла: dwg
DWG 2004
Блоки.dwg (45.3 Кб, 535 просмотров)
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 14.12.2007, 13:40
#38
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,411


Моя дурак. В коде идиотская ошибка. Исправил #34.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.12.2007, 13:57
#39
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 583
<phrase 1=


Вот теперь все работает. Спасибо огромное. Как буду в Питере с меня пиво, к бабке не ходи. Как говорят у нас в Киргизии "Чон рахмат, досум"
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb вне форума  
 
Непрочитано 20.12.2007, 09:51
#40
Log_in

Инженер-электрик
 
Регистрация: 16.01.2007
Москва
Сообщений: 19


А при копировании блоков не обновляет таблицу потому что извлечение атрибутов делалось с "выбором объектов", а не применительно к "текущему рисунку"... и наверное wetr прав, что извлечение атрибутов более универсальная штука нежели лисп под конкретную задачу, хотя если задач немного, то почему бы и нет

Последний раз редактировалось Log_in, 20.12.2007 в 09:57.
Log_in вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Каким образом узнать длину нескольких динамических блоков

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сквозная нумерация динамических блоков zenon Программирование 214 28.08.2020 08:45
Руководство по созданию динамических блоков tanushka_ch Динамические блоки 20 25.11.2015 20:46
Проблема вставки Динамических блоков Владимир М Программирование 11 12.09.2007 15:42
Игра -Пятнашки- С использованием динамических блоков Gig Динамические блоки 1 11.12.2006 10:32
Библиотека динамических блоков Коробейников Алексей Динамические блоки 2 05.04.2005 16:08