|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 07.05.2009
Астрахань
Сообщений: 103
|
Подскажите пожалуйста в каком посте взять работающий лисп-файл, как в нем указать нужный дин.блок и его свойства - для маркировки элементов по длинам. Как лисп подгружать в акад вроде ясно, а вызывать его с комстроки? Мой блок это стержень с изменяемой длиной. Будут два варианта горизонтальный и вертикальный.
Очень нужно, помогите плиз.
__________________
Debes, ergo potes Последний раз редактировалось Crane, 23.12.2009 в 13:36. |
|||
|
||||
Регистрация: 31.05.2010
Сообщений: 37
|
Здравствуйте.
Проектирую ОПС, необходимо промаркировать извещатели (сквозная нумерация) по всему проекту. Пользуюсь программами для маркировки, но при этом, если где-нибудь в середине проекта один извещатель удаляется, то нужно перенумеровывать все остальные заново. Есть ли возможность пронумеровать их так, чтобы при удалении одного элемента, вся остальная цепочка перестраивалась автоматически? Пример.dwg |
|||
|
||||
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Чтобы "поподробнее" - вам сначала следует озвучить язык, на котором пишете код.
Если на .Net, то (ежели мне не изменяет память) "поймать" удаление примитива можно подписавшись на событие ObjectErased объекта Database. Однако я не думаю, что стоит это делать, поскольку событие будет генерироваться при удалении каждого примитива (насколько я помню). Если вы выбрали и удалили сразу несколько примитивов, к примеру у вас 10 000 вхождений блоков и вы удаляете номера с 5 по 15, то после удаления каждого примитива будет выполняться перенумерация. Сами должны понимать, что это будет не самый быстрый процесс. Лучше создать спец. команду, которую можно было бы вызвать принудительно, после удаления примитивов. Эта команда должна выбирать нужные вам вхождения блоков и выполнять корректировку нумерации - так будет быстрее (имхо). Если пишете на Lisp - тут я не подскажу, однако юзать реакторы в данном вопросе всё так же не советую. Пример возни с указанным мною событием: Код:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 14.09.2010 в 14:40. |
||||
|
||||
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Регистрация: 31.05.2010
Сообщений: 37
|
Да. Я просто понял, что такое мне не по зубам. Казалось, что проблема может решиться при помощи использования Полей, или связывания атрибутов блоков с таблицей, в которой можно было бы редактировать значения атрибутов. А на уровне программирования не осилить с моим уровнем знаний.
Спасибо за потраченное время.. |
|||
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
|
Доброго дня.
Нумерация блоков штучка интересная. А можно сделать "Нумерация атрибутов в блоках из внешнего файла Excel или txt". 1) Имеются множества блоков с атрибутом "Позиция". 2) Имеется готовый файл Excel с позициями оборудования в котором пронумерован первый столбец А Ячейка А1 = 1 Ячейка А2 = 2 Ячейка А3 = 2а Ячейка А4 = 3 Ячейка А5 = 3а Ячейка А6 = 3б Ячейка А7 = 4 и т.д. При запуске LISP: 3) Запрос на выбор EXCEL файла (Запоминание этого Excel файла). 4) Запрос выбора позиции (princ "\nВведите номер позиции") 5) Ввод вручную позиции (к примеру "2а") 6) Lisp сверяет введенную позицию "2а" с выбранным EXCEL файлом и столбом А 7) Если находит "2а" то запрос выбрать дин. блоки с атрибутом "Позиция" и вставить ячейку А3 (см. пункт 2 "Ячейка А3 = 2а"). 8) После вставки позиции в атрибут, подсветить атрибут цветом. 9) Если не находит "2а" то повтор. (princ "\nДанной позиции не существует") (princ "\nВведите номер позиции") 10) При повторном запуске lisp сохранять предыдущий вод позиции. 10) И самое необходимое. Ради чего это все надо. При изменении позиций в ячейках этого же Excel файле (к примеру "2а" я заменил на "2б"), во всех дин блокам атрибуты с "2а" поменялись на "2б". |
|||
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
|
VoVoRoNaLe
На примитивном уровне то что надо. Но примитивный уровень для использования одноразовый. Но суть конечно почти то что надо. Исходя с команды AttOut: 1) Сохраняет только указанные конкретные блоки BLOCKNAME *U166. Как быть если нужно добавить или удалить блоки с атрибутами к предыдущему списку в txt? 2) Вытягивает все атрибуты и лишнюю информацию в txt. Как убрать лишнюю информацию, а оставить только атрибут "Позиция" для вывода в txt? 3) Сохраняет порядок записи txt в зависимости от последовательности указаний блоков. Как отсортировать по алфавиту? 4) Если выделить несколько блоков одинаковых один в один. Создаст две разных записи. Хотя позиция может быть одинаковая. Как свести все записи с одинаковыми атрибутами в одно? С командой AttIn вопросов практически нет. Ну разве что как при пересчете подсветить все измененные атрибуты? Идея то какова всего этого. Имеется спецификация в которой каждому оборудованию присваивается позиция. "Температура" ее позиция "1" "Гильза для температуры" ее позиция "1а" "Давление" ее позиция "2" "Перепад давления" ее позиция "3" и.д. Эти позиции проставляются на чертеже. Причем на чертеже может быть как одна позиция "2" так и десять позиций "2". Позиции имею жесткую сортировку 1а, 1б, 2, 3, 4а, 4б, 4в, 5 и т.д. И во время проектирования могут добавляться (удалятся) новые блоки с атрибут "Позиция" которые должны встать между поз. 2 и 3. Тобиш все остальные поз. после 3 смещаются на единицу. Типа 1а, 1б, 2, 3, 4, 5а, 5б, 5в, 6. Последний раз редактировалось Eddicordo, 27.10.2010 в 17:28. |
|||
|
||||
Регистрация: 25.09.2008
Новосибирск
Сообщений: 218
|
Если обрабатывать в Excel, то большинство вопросов легко решаются:
1) скопировать вновь извлеченные и добавить к предыдущему списку; 2) удалить лишние столбцы в Excel; 3) сортировка в Excel; 4) у одинаковых блоков одинаковое имя, использовать атрибут, содержащий поле с именем блока, по имени сортировать в Excel. Если блок динамический, то использовать атрибуты со значениями параметров блока, по ним и сортировать.
__________________
www.saa-blogs.blogspot.com |
|||
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
|
Да тут не суть важно где хранится сам список позиций. В Excel в txt, хоть сам AutoCad в табличной форме хранит позиции, либо другая внешняя программа.
Главное что бы: 1) Хранился список позиций. 2) Редактирование этого списка (добавить, удалить). 3) Сортировка списка по увеличению цифр. 4) Скрещение одинаковых атрибутов в одну. 5) Расстановка позиций со списка в разные блоки чертежа и чертежей. 6) При изменении списка позиций обновление всех блоков в одном и нескольких чертежах. 7) Подсвечивание внесенных атрибутов в список и измененных атрибутов в блоках. Это касается не только позиций. А также можно будет использовать для расстановки номеров кабеля. Короче говоря каждый найдет для себя применение. Раньше использовал вот эту программу. http://dwg.ru/dnl/101 Но она мало эффективная. При количестве (ячеек) позиций более 50 шт. начинает очень сильно тормозить. Не работает с атрибутами. Нет возможности добавить новую позицию (ячейку) по сортировке. Приходилось новую позицию создавать в самом низу. Короче не прижилась эта программка. Для использования обычного пользователя очень заумная, тяжелая для использования. Есть MyExpress.lsp кому интересно могу выложить поковыряться Последний раз редактировалось Eddicordo, 28.10.2010 в 11:19. |
|||
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
|
Можно продемонстрировать на примере поэтапно.
Какой ход всего процесса. Возьмем примеры: 1) Проект в разработке. Вы уже пронумеровали все позиции по всем чертежам. Во время работы к Вам приходят технологи с изменениями которые влекут за собой изменения в позициях. Вам необходимо пронумеровать абсолютно все позиции заново. Нумеруете в ручную изменяя атрибуты? 2) Проект готовый. Заказчик захотел внести изменения которые опять же влекут за собой изменения позиций и вам же опять необходимо пронумеровать все позиции. Нумеруете в ручную изменяя атрибуты? |
|||
|
||||
КИП и А Регистрация: 28.04.2010
Киев
Сообщений: 101
|
Что все вбивают позиции вручную? И при изменения обновляют так же в ручную?
Или может кто то поделится дельным советом как проставлять удобно позиции и при изменениях, добавлении, удалении в одном месте обновлять их хоть каким то образом. Сюда же можно отнести и Номера кабелям. Одни и те же номера на 5-20 чертежах. И при смещении или замене номеров кабеля обновление согласно какого то списка. В одном месте поменял позицию, номер кабеля. Обновил чертежи и получил результат и сокращение времени на пару дней. |
|||
|
||||
И так позаимствовав у Wetr его блоки решил пронумеровать кассеты на фасаде расставив использовал код от VVA в посте №134.
Всё бы хорошо но по подаются одинаковые блоки но с разной номерацией . Файл с блоками прикладываю. |
||||
|
||||
Выкладываю спецификацию (в самом файле помечены желтым цветом повторяющиеся нумерации).
Кстати возможно ли в коде добавить ещё одну операцию например есть 2-ва размера 744мм и 745мм -либо округлял или уменьшал. Прошу в помощи в правке кода. Код:
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,790
|
Файла что-то не вижу... Или имеется в виду файл в #157?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||