| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
29.10.2007, 09:15 | 2 | | #1 |
Автозаполнение ведомости рабочих чертежей
инженер
Владивосток
Регистрация: 09.08.2006
Сообщений: 1,535
|
||
Просмотров: 127529
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
А если попробовать использовать SheetSetManager? Там вроде была такая возможность...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Выложи файлик чертежа для примера. Думаю можно будет собрать со всех листов твои ObjID и "выплюнуть" все это в блокнот, или таблицу Автокада.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Вот пример файла. В таблицу автокада - это классно. Когда вставляешь в таблицу ObjID он превращиется в то что нужно!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Пробуй
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 25.02.2009 в 17:34. Причина: Специально для Red Nova |
|||
|
||||
Инженерконструктор Регистрация: 25.10.2007
Минск
Сообщений: 361
|
Привет wetr. В тему я не въезджал, потому-что не дорос еще до использования Лэйаутов, Вьюпортов и прочей высшей математики (отчасти из за того, что работаю совместно с людьми, что привыкли по старинке, не особо вдаваясь в возможности Акада), но мне очень понравились твои динамические блоки арматуры, хомутов и шпилек. Может посоветуешь где искать, чтоб время особо не тратить на опыты.
А ВетКАД рулит без вопросов!
__________________
Запомнить информацию легко. Вспомнить трудно. |
|||
|
||||
Че-то не въезжаю:
Command: VRC ; error: no function definition: GET-ALL-ATTS что то делаю не так?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Цитата:
p.s. Что искать то?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 30.10.2007 в 11:02. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Все так, забыл функцию добавить. Пробуй снова из №5
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Спасибо! То что нужно! Только вручную приходится перетаскивать значения ячеек - они сортируются примерно так : 3а,3б,1,10,11,12...19,2,21...
Стиль таблицы используется по умолчанию? Я ничего не шарю в лиспе, но, я могу поменять в исходном коде названия столбцов, ширину, длину ячеек??? Ничего не рухнет?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Инженерконструктор Регистрация: 25.10.2007
Минск
Сообщений: 361
|
Привет wetr. Уточняю вопрос. Где найти такие динамические блоки (сетки, хомуты, шпильки...), которые применены в твоем чертеже. Я перелопатил по поиску весь сайт - нашел похожие блоки, но не настолько интересные и удобные. Если не сложно кинь ссылку или выложи сами блоки (вышли на мыло).
__________________
Запомнить информацию легко. Вспомнить трудно. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
2. Да 3. Нет (в смысле ничего не рухнет). Названия солбцов Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Цитата:
http://dwg.ru/dnl/2849 О каком чертеже речь? Если не секрет?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 31.10.2007 в 04:53. |
||||
|
||||
Инженерконструктор Регистрация: 25.10.2007
Минск
Сообщений: 361
|
Привет wetr. Имею ввиду чертеж пример.rar в 4-ом посте (али не товой?).
Спасибо за блоки. Если надумаешь сделать блоки хомутов, то рассмотри вариант конфигурации загибов как у меня в файле. Такие загибы как рисуют в учебниках на стройке мало кто делает. А вариант, приведенный в файле, вполне реализуем на практике и, кроме того, такие загибы приведены в штатовских нормативных документах по жб и по-моему в Еврокоде (нет под рукой сейчас).
__________________
Запомнить информацию легко. Вспомнить трудно. |
|||
|
||||
to VVA. пасибо еще раз. Все получилось. Начинаю любить Lisp
to RomansFather. Добавлено. см. download .
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Недавно узнал про многострочные атрибуты. Но они... не очень хорошо отображаются в табличке... Можно ли что то сделать???
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Используй форматирование многострочного текста
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 14.11.2007 в 09:48. |
|||
|
||||
Что то не въехал... Каким образом его использовать?
Насколько я понял, при вставке этой абракадабры в мультитекст и, в том числе в многострочный атрибут, должно быть как у тебя на картинке? Но у меня только этот набор текста и символов остается...Попробовал с разными текстовыми стилями, с атрибутами, таблицами и мультитекстом = везде едино
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
При вставке этой абракадабры через буфер Автокад добавляет еще один слэш. В окне свойств поудаляй по одному
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Вообще все это можно делать в редакторе мтекста.
1. Пичешь числитель и знаменатель, разделенный или / или ^ 2. Выделяешь числитель, / (или ^), знаменатель. 3. На панельке становится активной кнопка a/b. Нажимаешь ее. 4. Текст превращается в дробь и наоборот
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 14.11.2007 в 09:48. |
|||
|
||||
Это понятно. Но все равно не канает. Когда используешь многосточный атрибут - добавляется еще элементы форматирования: в частности перенос на другую строку
- "\p". И нипанятна почиму попадая в поле эта абракадабра не превращается обратно в "человека"... Мож какая сис. переменная есть?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
В данный момент 2008 нет, но можно попробовать переформатировать строку многострочного атрибута в "съедобную" для мтекста
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Пришлось таки пользоваться Data Extraction, т.к. там отображается все нормально с многострочными атрибутами(Интересно почему?). Но там есть другой недостаток - упорядочить номера листов не получается если есть лист №7*. Он эти листы со звездами ставит всегда вперед...
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
ИНЖЕНЕР Регистрация: 28.11.2007
Курган
Сообщений: 8
|
Жаль, что так и не "дожали" тему....
Мои старания по созданию многострочного атрибута увы успехом не увеньчались. Многострочный атрибут - тема весьма нужная!!! Может выложит файлик кто использует его. ... ну хоть одним глазком подсмотреть. |
|||
|
||||
От темы в итоге отвлеклись,с ведомостью то разобрался?используй подшивки,там это создается проще всего.См.пост#2
__________________
Errare humanum est, insipientis perseverare |
||||
|
||||
Цитата:
2. Согласен!!! 3.Если у тебя 2008, при создании атрибута поставь галочку "mutiply" и все 4. Почему же не дожали. Все получилось. Я использую блок штампа(рамки) с атрибутами "НАИМЕНОВАНИЕ ЧЕРТЕЖА" и "ЛИСТ". "НАИМЕНОВАНИЕ ЧЕРТЕЖА" естественно многострочный атрибут. Блок может располагаться где угодно, т.е. этот вариант подходит как любителям МОДЕЛИ так и любителям ЛИСТа. Далее все просто: - создаем стиль таблицы "ведомость чертедей", например - data extraction - все
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
VVA, wetr,
Хорошая темка. Вот только для тех у кого название листа в блоке атрибут. А у меня вот поверх блока мтекстом (люблю редактор мтекст). Но у этого мтекста есть определенная координата на листе (координата У, поскольку Х при разных форматах разная) Можно ли сделать лисп, чтобы в выбранных листах выбирались мтексты с этой координатой, и затем их содержимое вписывалось в другие мтексты по очереди? Заранее спасибо.
__________________
Блог |
||||
|
||||
Файл примера
__________________
Блог Последний раз редактировалось Red Nova, 29.04.2008 в 23:02. |
||||
|
||||
Да уж если так никак, то навеное придется, но хотел попробовать без этого.
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Для текста нужно "маркировать" текст. Собрал по быстрому пример
УСЛОВИЯ
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
VVA, Спасибо что откликнулся, что бы я без тебя делал. Но у меня пока не работает.
Прописал путь к папке, открыл пример, загрузил лисп, текущий стиль таблицы там твой. Все названия помечены как надо. Запускаю VRC_VED, запрашивает точку вставки, но нечего не вставляется. Цитата:
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Файлик выложи
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Дык файлик твой, с #32. Может у меня просто руки кривые, можно для чайника еще раз пояснить?
К стати у тебя как я понял ведомость в таблицу генерируется. А можно в мтексты вписывать? В файле с поста 29 есть пример ведомости из мтекстов. Можно сделать так. Беру первую строчку ведомости. Копирую ее (скажем 10 копий). Запускаю команду. Выходит запрос какие листы захватить, потом лисп читает номера страниц и их наименования, затем выдает запрос отметить ведомость. Отмечаем одной рамкой нашу ведомость (там напомню два столбца и 10 строчек), все переписывается на свои места. Если вдруг строчек в таблице больше чем количество листов, то в последних строчках текст становиться типа "###", если строчек в таблице меньше чем количество листов, то выходит соответствующее сообщение, а строчки заполняются до последней имеющейся.
__________________
Блог Последний раз редактировалось Red Nova, 07.05.2008 в 12:15. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Чтобы отобрать нужные тексты, они "маркируются" расширенными данными (команда VRC_Mark). Какие замаркированы- можно посмотреть командой VRC_Sel. Перейди в любой дист и набери ее, должен подсветиться текст.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Я открываю твой файл, с поста 32, там кажется все уже подготовлено для сборки ведомости. Маркировка есть. Стиль таблицы есть. Даю команду, запрашивает точку вставки таблицы, а дальше ничего не делает.
Прошу выложи файл в котором все уже настроено как надо, и остается только лисп загрузить. А-то тот что с #32 не работает
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
В примере #32 все подготовлено. Нужно только лисп загрузить
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Ну прям магия какая-то. Ни в какую у меня не работает (на двух машинах). Запрос на точку вставки таблицы идет, а таблицы нету. Облом.
Прошу рассмотреть вариант описанный на #35, было бы действительно здорово.
__________________
Блог |
||||
|
||||
Прелесть варианта где вместо таблиц мтексты в том, что не надо потом таблицу приводить к стандартному размеру, не надо думать на счет примечаний. Да и просто это полезно людям, у которых на таблицы аллергия. А мне и пуха на улице вполне хватит. Все чихаю.
__________________
Блог |
||||
|
||||
VVA,
Может до отпуска как нибудь все-же найдешь время
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Red Nova,
Обещать не буду, но постараюсь. Оффтоп: Корочку КТН обмыл как следует? Не засохнет?
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
По секрету скажу что корочку еще не получил, (два месяца от ВАК ответ ждать) но обмыть уже успел.
__________________
Блог Последний раз редактировалось Red Nova, 17.07.2008 в 13:08. |
||||
|
||||
VVA
Ты уже в отпуске?
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
А где отпуск проводишь? Дома или поехал куда?
__________________
Блог |
||||
|
||||
Я это к тому, чтобы понять тебя можно щас беспокоить, или ты на отдыхе, тогда я подожду до окончания отпуска.
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Ну беспокоить можно, если достучишся. Я и сам не знаю что будет завтра. Я взял только 12 дней отпуска и на отдых (в смысле Турция-Болгария-Египет) сейчас не еду. Ковыряюсь потихоньку дома. Вот интернет себе провел. Осталось самое сложное - спрятать провода.
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 16.07.2008 в 23:05. Причина: орфография |
|||
|
||||
Эх жалко по разным странам живем, в отличая от лиспа с проводами я бы справился.
На этой неделе пойду к другу, он в некотором роде программист (правда другого профиля), постараюсь поучить лисп и разобраться с лиспом описанным мною на этом форуме, если не получиться то вернусь на форум и буду опять стучать в твою дверь.
__________________
Блог |
||||
|
||||
VVA Вот решил перейти на блок штампа с атрибутом. Попробовал лисп с поста 5, у меня почему-то не работает. Хотя в файлах от wetr работает нормально.
Мои атрибуты именуются также как и у wetr в файле. Что я делаю не так?
__________________
Блог |
||||
|
||||
Ура, заработало. Вроде как сделал все как в прошлый раз, скопировал имя атрибута от wetr в свой штамп, почему-то в прошлый раз не прокатило, а на этот раз все прошло нормально.
Но не все так радужно. Возникла новая проблема. В отличие от wetr, у меня номер листа в атрибуте вписывается как поле от имени лейаута. Когда поле копируется в таблицу, то там (при реген алл) оно отображается как odel (это model без первой буквы). Может возможно как-то вписать в таблицу не поле с дизелем, а перед этим переконвертировать его в текст?
__________________
Блог |
||||
|
||||
Я пользуюсь автонумератором этих самых блоков. Лайоуты при этом могут называться как угодно. Довольно удобная штука. Ссылку дать не могу, но по моему туда тоже VVA руку приложил. Брал на кадюсере...
...еще недавно где-то здесь на форуме djonikbishkek (извени если не правильно!) давал ссылку прям на этот лисп!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 17.07.2008 в 15:29. Причина: орфография |
||||
|
||||
Просмотрел недавние сообщения от djonikbishkek , такого не нашел. Может на форум выложишь? Или на мыло пришли пожалста.
__________________
Блог |
||||
|
||||
Сори. Конечно!
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=21092Ky
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Спасибо за ссылку.
Буду просить VVA усовершенствовать лисп тут. http://dwg.ru/f/showthread.php?t=20139&page=3 К стати, если еще не использовал, там очень полезная программа для работы с листами.
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Листы листами, а штамп штампом
Часть 1 Вводная 1. Имя блока штампа без разницы 2. Блок штампа должен иметь таг "ЛИСТ" (по умолчанию) 3. Если у вас таг отличается, ищем и правим эту строчку (выделена в коде красным) Код:
Название листа---------->Значение атрибута 3 ----------------------------> 3 3a ----------------------------> 3a КЖ-1.1 -----------------------> 1.1 4. Две команды SHTUPDALL - пробегается по всем листам SHTUPD - пробегается по текущему листу (CTAB) Пример можно взять с #4 Код:
1. Берете пример с #4 2. Грузите лисп 3. Переименовываете любой лист (например КМ-112) 3. Вызываем команду SHTUPD
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 18.07.2008 в 13:32. Причина: Описка (выделена синим) |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Часть 2. Конструктор "ЛЕГО"
Как скрестить LISP. Копирование, сортировка, переименование листов (layout) и код с #57 Вводная 1. Оба лиспа должны быть загружены 2. Будем скрещивать команду LTINC и SHTUPD (т.е. создадим копию листа с увеличенным номером и обновим штамп на этом листе) Назовем команду LTINC1 Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 18.07.2008 в 09:55. |
|||
|
||||
VVA, Спасибо. Все и в правду просто.
Я даже сумел скрестить LTRENN и SHTUPDALL, В результате получилось именно то, что надо. Код:
__________________
Блог |
||||
|
||||
VVA,
Заметил, что SHTUPD и SHTUPDALL делают то же самое, то есть влияют на все листы, только один не переименовывается.
__________________
Блог |
||||
|
||||
Начал использовать лисп с поста #5. Появились вопросы.
1. Лисп создает ведомость для всех без исключения чертежей. Как быть если некоторые чертежи не надо туда добавить? К примеру у меня в КМ проекте всегда бывает и лист который мы отправляем на завод изготовителя, а в проект он не входит. 2. Возможно ли добавить еще один столбец (примечание)? Я вставляю в такой столбец поле связанное со свойствами файла (custom properties), там у меня есть строка по имени “Том”, желательно вписать во все строки примечания ее значения (хотя это может не для всех быть универсально, но по госту такой столбец есть). Текст в этой колонке желательно чтобы имел направленность middle center. 3. В Лиспе я нашел некоторые параметры настройки размеров ведомости. Но все настроить мне не удалось. Как я понял высота ячейки для всех общая. Но по госту она разная для разных строк. Хотелось бы настроить по отдельности. 4. Можно ли подчеркнуть название? (как вариант). 5. В столбцах “лист” и “обозначение” перед полями появляется пробел. Для столбца “обозначение” это удобно, так как он имеет левую направленность, и этот пробел отодвигает текст от перегородки. Но столбец “лист” имеет центральную направленность, и в нем желательно этот пробел удалить, так как возникает смещение. 6. Тут думаю что ты помочь не сможешь, так как это свойство поля, пишу на всякий случай. Если в многострочном атрибуте использовать перенос строки (enter), то в поле появляются побочные эффекты в виде “\P” на местах (enter). Сразу же оговорюсь и скажу, что это можно преодолеть задав нужную ширину атрибуту. Тогда enter не нужен. 7. Прости, что вопросов так много.
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
1. Могу предложить использовать другой штамп (отличаются таги атрибутов)
2. См красным 3. См синим 4. Стандартно для МТЕКСТА. Замени "Ведомость чертежей" на "{\\LВедомость чертежей}" 5. Это не пробел, а отступ. Ищи в коде (vla-put-horzcellmargin tbl 100) ;_Отступ текста по горизонтали 6. Помочь не смогу, так как это поле. Если писать текст, то почистить можно 7. Прощен Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 18.07.2008 в 13:25. |
|||
|
||||
Спасибо. Со многими вопросами понятно. Но еще не на 100%.
1. Как задать в лиспе, чтобы во все строки колонки "Примечание" вставлялось поле из custom properties (строка по имени “Том”) 2. Я сумел задать Два вида высоты строк, первая - для первых двух строк, вторая - для последующих строк. Можно ли раздельно задать высоты для первых двух строк? 3. Можно ли задать разный отступ для разных столбцов?
__________________
Блог |
||||
|
||||
Совсем забыл. Как на счет вопроса на #60?
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Внес исправления в #62
1. См. фиолетовым 2. См. фиолетовым жирным 3. Нет (по крайней мере я не знаю как) Насчет #60 Исправил #57. Там была описка Вместо (defun update-shtamp-block ( cps / ss i n Target-Tag-Name attValue ch ) Нужно (defun update-shtamp-block ( csp / ss i n Target-Tag-Name attValue ch )
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 18.07.2008 в 13:33. |
|||
|
||||
Большое спасибо. Теперь ведомость чертежей можно настроить по полной программе. В сочетании с лиспами с LISP. Копирование, сортировка, переименование листов (layout) и лиспом с #57 получается полный функционал для организации листов проекта.
__________________
Блог |
||||
|
||||
Обнаружил что в столбце Примечание отступа перед полем нет вовсе, можно и в графе лист так сделать?
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
"Не виноватая я. Он сам пришел" (C) "Бриллиантовая рука"
Честное слово, нигде никаких пробелов не задавал, кроме как (vla-put-horzcellmargin tbl 100) ;_Отступ текста по горизонтали
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 18.07.2008 в 21:25. |
|||
|
||||
Выкладываю пример создания ведомости по ГОСТ. (Настройки изменены под ГОСТ).
В архиве файл со штампом, ReadMe, использованный шрифт и два лиспа (в первом в графу примечание вписывается поле тома чертежа, во втором графа примечания пуста)
__________________
Блог Последний раз редактировалось Red Nova, 18.07.2008 в 22:02. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Ругается на отсутсвие GOST 2.303-68.shx
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Странно, я его вроде как не использовал.
Но, раз уж ругается, то вот, выкладываю.
__________________
Блог |
||||
|
||||
Цитата:
В общем VVA - респект!!! Впрочем, как всегда
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
VVA,
Для того чтобы была возможность составит ведомость не из всех листов, а из некоторых я сделал дополнительный штамп, у которого отличаются таги. Часто нужно бывает быстро поменять основной штамп на вспомогательный (или на оборот). Приходится удалять старый штамп, вставлять новый, корректировать параметры лукап и заново заполнять атрибуты. Можно разработать лисп для замены штампов местами? Алгоритм такой: Команда может быть одна или сразу две. Нужно чтобы работало в обоих направлениях. К примеру имею на листе блок "штамп", находясь на листе запускаю лисп, запоминаются лукапы, точка вставки и содержания атрибутов, затем блок удаляется, на запомненное место вставляется блок по имени "штамп вспомогательный", корректируются лукапы и содержания артибутов. Если считаешь что это не слишком сложным, то создание этого лиспа можно еще и сделать очередным уроком в нашей обучающей теме. Как ты думаешь?
__________________
Блог Последний раз редактировалось Red Nova, 28.07.2008 в 14:15. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
А чем Blockreplace из Express Tools не устраивает
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
А ты пробовал на моем файле? У меня не работает.
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Red Nova, Так у тебя там динамический блок.
Добавил диалог выбора листов Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 30.07.2008 в 13:44. |
|||
|
||||
VVA,
Спасибо, но, честно говоря, было бы более удобно, если бы ты добавил в лисп возможность выбора листов для ведомости (как в LTREN)
__________________
Блог |
||||
|
||||
VVA, Может все же добавишь диалог выбора листов?
__________________
Блог |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Не вмешиваюсь в реализацию, опишу как подобное сделано в ruCAD на алгоритмическом уровне.
1. Форматы с любыми размерами и основными надписями создаются программно. Могут размещаться хоть в модели, хоть на вкладках компоновок. Последний вариант, конечно, предпочтительней. Правильный вариант - один формат на компоновке. 2. Тексты в основных надписях хранятся в атрибутах с определенными именами. 3. Имя компоновки не включает никаких формальных признаков - номеров и прочего. В идеале оно должно быть точно таким, какое наименование у чертежа. Для переименования компоновок - специальная программа. Первичным является наименование чертежа в штампе - именно оно должно попасть в ведомость чертежей. 4. Имеется программа, позволяющая пакетно изменить атрибуты во всех основных надписях. Например, в последний момент может потребоваться изменение наименования объекта или обозначения. 5. Правильные имена компоновок позволяют автоматически заполнить ведомость чертежей. Это можно сделать и с помощью Sheet Set (подшивки) и специальной программой. Учитываем, что пользователь мог вручную переместить закладки компоновок куда угодно. Программа выводит диалоговое окно с двойным списком (см. рис). В этом списке можно отобрать компоновки, включаемые в ведомость (не обязательно все входят), а также изменить их порядок следования. Нумерация листов в ведомости может выполняться по порядку, но можно из корректировать номера - например, вместо номера "4" сделать "4и". Компоновка, на которую надо вставить саму ведомость, выбирается из списка. Ведомость чертится по стандартной форме в виде ACAD_TABLE. Названия чертежей вставляются в виде текста, а не в виде полей, и сделано это специально. Результат на втором рисунке. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Red Nova, Обновил лисп в #76 с диалогом запроса листов. Поправишь у себя - обнови пост #69
ShaggyDoc, Это правильно. Я бы тоже с полями не делал, но такое было ТЗ.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Так я не для рекламы, чтобы "взять", а чтобы обратить внимание на принципиальную постановку задачи - не надо искусственно придумывать какую-то систему именования вкладок. Она должна быть естественной - имя вкладки=название чертежа.
Вот тогда VVA и сделал бы по такому ТЗ. А он делал по неудачной (на мой взгляд) первоначальной идее. |
|||
|
||||
VVA
Спасибо за диалог выбора листов. (хотя честно говоря пока не опробовал) Я тоже за мысль заменить поля текстом. Может сделаешь такой вариант? Пока на всякий случай подожду с обновлением #69
__________________
Блог |
||||
|
||||
ShaggyDoc,
Цитата:
__________________
Блог |
||||
|
||||
Выкладываю последний вариант примера создания ведомости по ГОСТ, с учетом выбора листов.
Настройки по ГОСТ. В архиве файл со штампом, ReadMe, использованные шрифты и два лиспа (в первом в графу примечание вписывается поле тома чертежа, во втором графа примечания пуста)
__________________
Блог |
||||
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,143
|
Offtop: VVA, хотел спросить можно ли как то в лайаутах если написано к примеру текстом желтого цвета делать выборку именно этого цвета, в каждом лайауте потом собирать все в кучу, при этом если по два текста на лайауте то их в одну строчку выписывать, если можно то у меня родился алгоритм, без всяких таблиц и полей, буду ждать ответа...
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
В поле выбирай Diesel Expression и в качестве кода вбить
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Я говорил про "чистый" AutoCAD, без привязки к подшивкам. По-моему (могу и ошибаться!) поля "Название листа" и "Номер листа" работают только с подшивкой и никак иначе. Кто профи - пусть рассудит.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Кулик Алексей aka kpblc, а ты не знаешь как получить число закладок в файле. Хочу вставить поле в рамку - "Листов"
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
По-моему, это реализовывается только через подшивку. Количество закладок (пространств листа) в текущем документе можно вычислить лисповой функцией (layoutlist), но как ее в DIESEL подставить - не представляю. У меня не получилось.
Лисповое выражение (length (layoutlist)) работает корректно, но вот DIESEL отказывается принимать $(length,$(layoutlist)) Может, я неверно описываю DIESEL-выражение?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
и еще вопрос ко всем.
Как можно в полях убрать часть текстового значения аргумента. Например, получаю значение "A3 альбомная" а нужно только А3. Может кто помнит???
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 02.10.2008 в 10:42. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
wetr, DIESEL:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Кулик Алексей aka kpblc, что то не обновляется.
Формат %<\AcDiesel $(substr,"%<\AcObjProp Object(1910331576).Parameter(93).lookupString \f "%tc3">%",1,2)>% не обновляет поля. "A3 альбомная" отнимает альбомная, остается А3. Но при изменении значения лукапа на "А2 альбомная", например, поле не обновляется.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
regen сделай
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Все что делал раньше - неверно. Ссылался на вхождение блока, а это не то. Необходимо, чтобы каждое вхождение блока зависело от своего параметра текущего вхождения. Это достигается вставкой поля местозаменителя (BlockPlaceholder). Но опять таки не могу "урезать выражение" с помощью Дизеля.
значение поля Код:
Код:
Код:
Кто нибудь сталкивался? P.S. Спасибо Какаду http://dwg.ru/f/showpost.php?p=234249&postcount=4
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 07.10.2008 в 04:01. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Выложи блочок, посмотрю. А то "всухую" что-то плохо соображается
P.S. Если со строки "LOOKUPSTRING" оставлять только первые 2 символа, то останется "LO"
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 03.10.2008 в 08:35. |
|||
|
||||
да я понял, что остается 2 первых символа от "LOOKUPSTRING", а вот как его заставить обрабатывать значение поля...
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Кхе, а у меня в значение поля не удалось засунуть результат Lookup-параметра (имею в виду без программирования )
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Насколько я понял, этот самый BlockPlaceholder становится активным только при вставке поля в атрибут и только в редакторе блока. В простой текст его не вставишь. А жаль...
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Задача решилась. Выкладываю вкупе все примочки которые я использую.
Редми внутри
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 09.10.2008 в 10:10. Причина: скромней надо быть ;) |
||||
|
||||
Немного по теме
VVA, проясни хоть немного. Ничего не получается А в vrc нужно добавить что-то типа такого : Код:
Код:
Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Ну так про table это для примера. Переменная может называться и мама_мыла_раму
Ищи что-то похожее Код:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
VVA, что-то не получается у меня. Добавил функцию и строку, где ты написал - вставляется таблица в нужном слое, но пустая и не того размера.
Код:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 13.10.2008 в 16:06. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
wetr, Просто вставил vla-put-layer в конструкцию and, а она (vla-lut-layer) взвращает nil и and прекращает работу.
Замени Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
VVA, отлично все работает!
Ну а чтобы все было идеально, нужно чтобы вставлялась таблица в нужном стиле. Это реализуемо? (заменил код в №110. А кому лень копипастить прикрепляю файл)
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Создать табличный стиль программно - реализуемо. После вставки таблицы применить к ней стиль - тоже можно. Проблема в другом В том, что ширины столбцов, например, касаются только таблицы как таковой и не хранятся в стиле.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Что-то я не въехал в проблему
Сейчас в лиспе уже задаются размеры столбцов и строк. Т.е. какой стиль таблицы не выбери - создается таблица с нужными размерами ячеек. Но, не более. Стиль текста, толщины линий - это все зависит от стиля таблицы и там настраивается.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Я к тому, что таблицу надо будет сначала вставить, потом применять стиль, а потом перепроверять ячейки. У меня на 2006-м ADT такое было, до сих пор испуга хватает.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Стиль надо создавать программно и обязательно проверять его наличие и, при необходимости, пересоздавать. Стиль должен быть не только для этой конкретной таблицы - все таблицы по стандартам СПДС должны ему соответствовать.
Сами таблицы (стобцы, ширина и прочее - в том числе, возможно и данные) надо вообще выносить из программы. Иначе потом замучаетесь на каждый случай кустарно программы делать. В ruCAD описание таблиц вынесено в XML. Например, таблица, показанная на рисунке в #79, описана так: Код:
Код:
Это для размышления о возможных путях совершенствования. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
ShaggyDoc, вопрос: а зачем в атрибутах, например, columns, хранить количество подэлементов? Они ж и так вычисляются (правда, я использую Microsoft'овский XML-parser...) По-моему, xml-файл можно подупростить (для вариантов ручного либо программного наращивания).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Структуру, конечно, можно всякую предусматривать - любой парсер её прочитает (а MS-XML еще и испортит без спросу, даже при чтении). Но, если не указывать числа колонок (и строк данных), всё значительно замедляется. Сначала парсер должен будет выстроить полную объектную модель документа, а программист должен будет, обращаясь к модели, извлекать из свойств структуры количество колонок и прочее. Кроме того, иногда (не в этом случае) заголовки ячеек могут объединяться, и там надо точно задать номер ячейки, не надеясь, что парсер его правильно объединит. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Все, сегодня же забираю "САПР на базе". Пора обновляться...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
По поводу стиля таблицы делаю примерно как сказал ShaggyDoc в #116. Правда пошел по более легкому пути. Ручками создал нужный стиль, замтем "достал" его из словаря и сохранил ввиде списка. В автозагрузке есть такой кусочек Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Заменил в №110.
Этот кусочек создает стиль таблицы "МИП". Осталось соединить все в одно целое и заставить таблицу вставляться в этом новом стиле.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
wetr Я тут почитал твом посты, но пока не совсем понял что в итоге ты намерен получить. Хочешь чтобы таблица создавалась на определенном слою? Offtop: или может "на определенном слое"? Запутался.
__________________
Блог |
||||
|
||||
Red Nova, она уже создается на слое "_Таблицы", но с текущим стилем таблиц. Я хочу, чтобы получился конечный ПРОДУКТ - чтобы не менять ничего впоследствии.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Offtop: Продуктом называют результат различных процессов:
всякое произведение человеческого труда; созданные для обмена продукты являются товаром; продукт радиоактивного распада является нуклидом; продуктом химической реакции является образовавшееся вещество; аналогично, образовавшаяся субстанция является продуктом жизнедеятельности организма; и тому подобное.
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
На основе #110. Создание стиля таблицы вынес в отдельную ф-цию
table-style-make. В ней изменить поля Код:
Изменения в команде VRC выделил красным Не проверял, но должна работать Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 19.09.2015 в 22:34. |
|||
|
||||
Да, все работает. Но есть одно «но». Стиль таблицы создаваемый программно, имеет размеры по госту и текстовый стиль какой хочешь. Но толщины линий д.б. разные. Такие как сделал RedNova в стиле «Ведомость чертежей». Как мне показалось, программно этого нельзя сделать. Может тогда не создавать стиль в программе, а просто назначать. А в шаблоне он и так всегда лежит (у меня). Уже неловко как-то просить тебя по мелочам всяким. Экспериментирую тут с твоим кодом. Пытаюсь разобраться хотя бы с этой строчкой
Код:
« if(E1 E2 [E3]) Вычисляется выражение E1. Если оно истинно (не NIL), то выполняется выражение E2, иначе - E3», if имеет 3 аргумента. Т.е. если NIL -> то, ничего не происходит? Я добавил Код:
Думаю правильней было бы конструкцию (if (table-style-make "VRC")(setvar "CTABLESTYLE" "VRC")) записать как (if (имеется_в_чертеже_стиль "Ведомость чертежей")(setvar "CTABLESTYLE" " Ведомость чертежей ") ("CTABLESTYLE" "Standard"))??? Итого получившийся код имеет вид Код:
В файле должен быть стиль таблицы "Ведомость чертежей". Для примера выкладываю файл, где все работает
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 17.10.2008 в 13:43. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
wetr, Ты уже где-то писал, что понял для чего пишутся коментарии в лисп программах
Код:
Код:
Поэтому можно смело менять (if (table-style-make "VRC")(setvar "CTABLESTYLE" "VRC")) на (if (table-style-make "Ведомость чертежей")(setvar "CTABLESTYLE" "Ведомость чертежей")) Вариант (if (имеется_в_чертеже_стиль "Ведомость чертежей")(setvar "CTABLESTYLE" " Ведомость чертежей ") ("CTABLESTYLE" "Standard"))??? (для замены (if (table-style-make "VRC")(setvar "CTABLESTYLE" "VRC")) Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
vla-setgridlineweight, vla-setcellgridlineweight Только надо с умом, чтобы одни линии были "толстенькие", а другие тоненькие. Шоб по стандарту. |
|||
|
||||
Резюмируя:
Мы имеем лисп от VVA, который создает "Ведомость рабочих чертежей основного комплекта" - Ведомость создается в виде таблицы с полями. - Обязательно использование блока с атрибутами. - Таблицы вставляется в слое _Таблица. Если слоя нет - он создается - Таблицы вставляются в Стиле таблиц "Ведомость чертежей", оформленные по ГОСТ. Если стиля нет - он создается. Единственное условие - наличие в файле текстового стиля Vlad_style (в моем случае). Стиль текста меняется в лиспе - там помечено. Единственное "но" - создаваемая программно таблица(если стиля "Ведомость чертежей" нет в файле он создается) будет иметь толщины линий одинаковые (чуть-чуть не по гост). Но так-как в моем шаблоне всегда есть этот стиль настроенный точно под ГОСТ (спасибо Red Nova) то я и не парюсь
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Регистрация: 21.10.2008
Петербург
Сообщений: 19
|
А можно подробную инструкцию к примерам? Как например добавить новые позиции в таблицу (добавлял лист с блоком-рамкой, regen all, vrc -- новой позиции нет)?
В 2008 автокаде многострочный атрибут или отображается с \P или (после открытия-закрытия блока в редакторе блоков) преобразуется в однострочный. |
|||
|
||||
b00,
Цитата:
Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Регистрация: 21.10.2008
Петербург
Сообщений: 19
|
Я не могу понять, как ее вставлять, чтобы сформировался список чертежей
Код:
Спасибо! Последний раз редактировалось b00, 21.10.2008 в 16:52. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
b00,
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 21.10.2008
Петербург
Сообщений: 19
|
Вот тут в теме пример проскакивал
Последняя версия vrc.lsp позволяет подобное или нет? И если позволяет, то какие аргументы передавать для vrc? |
|||
|
||||
b00, с какого поста брал код?
VVA, я тут подумал... (не пугайся ) В общем мой блок-рамка имеет пункт "Листов". Т.е. сколько всего штук. благодаря твоей подсказке http://forum.dwg.ru/showpost.php?p=110593&postcount=3 я сделал макрос на кнопку запускающую VRC Код:
Прочитал, что переменные USERI* нужно стараться обходить стороной. Типа их все могут переопределять и тогда - "Ой". Но здесь вроде по другому не сделаешь. Ну так вот, в блоке сделал поле в Код:
И, вуаля, кол-во листов прописывается само. А теперь вопрос: Почему у меня не получилось проделать тот же фокус с лиспом? Т.е. я тупо вбил строчку Код:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 22.10.2008 в 02:26. |
||||
|
||||
Регистрация: 21.10.2008
Петербург
Сообщений: 19
|
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
wetr, b00, В примере #131 в лиспе ищется имя тага атрибута наименование чертежа "НАИМЕНОВАНИЕ.ЧЕРТЕЖА", а в блоке штампа "НАИМЕНОВАНИЕ.ЧЕРТЕЖА_001". Лисп не работает. Через пару минут выложу вариант vrc с настройками.
*** Добавлено Вариант с настройками и файлом примера. Как работает написано вначале
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 21.10.2008 в 18:48. |
|||
|
||||
VVA, СУПЕР! Все создается программно. Вынес все настройки в 1 место - спасибо, намного удобнее.
Только я не нашел ни в 1 файле тэг атрибута "НАИМЕНОВАНИЕ.ЧЕРТЕЖА_001". Может он сам приписывается? Я пробовал на 2х компах - не нашел, в лиспе исправил на "НАИМЕНОВАНИЕ.ЧЕРТЕЖА", заработало. Выложу наверное в первом посте пояснения и ссылку на файлы - вроде уже идеал!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
>wetr Я имел ввиду имя тега атрибута в блоке
*** Добавлено. По поводу текста в 1-м посте Ограничения на Автокад 2008 только из-за того, что там используется многострочный Атрибут. Программе все равно какой, лишь бы тэг совпадал. Поэтому если не использовать многострочные атрибуты, то можно и с 2006 (так как используются поля). Кстати в примере из #139 файл в формате 2004 Автокада и все работает.
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 22.10.2008 в 10:50. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Допускаю, что при пересохранении в формат 2004 Автокад сам меняет имя тэга многострочного атрибута
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 21.10.2008
Петербург
Сообщений: 19
|
Цитата:
5...6 страницы темы. |
|||
|
||||
b00, зайди в атрибут, вставь поле (Ctrl+F), МестозаполнительБлока(blockplaceholder), ссылка на lookup.
Или скачай заново мой блок
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 22.10.2008 в 15:41. |
||||
|
||||
Нужно выбрать "МестозаполнительБлока". Но он доступен только из редактора блоков, а не так как ты открываешь.
***Добавлено. Но сначала нужно для Lookup parameter "Выбор" выставить "Показывать в свойствах" в свойствах. Только после этого он станет доступным в полях как "МестозаполнительБлока"
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 22.10.2008 в 15:47. |
||||
|
||||
Регистрация: 21.10.2008
Петербург
Сообщений: 19
|
Цитата:
А результат не тот Если картинкой, то см. выделенную строку: |
|||
|
||||
VVA
У меня возникли проблемы с армянским вариантом программы. Таблицу я настроил, но автокад по видимому имеет аллергию на то, что в таблицах поля с армянскими символами. Либо файл портится, либо такие поля просто пропадают, сначала вроде все как с русским вариантом, но чуток поработаешь и фатал эррор гарантирован . Можно переделать лисп с #69 так, чтобы текст из штампов записывался в таблицу не полем, а просто текстом?
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
У меня сейчас запарка до 20 ноября. Напомни после 20
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Запишу в мобильник напоминалку на 21-е.
__________________
Блог |
||||
|
||||
VVA,
Уже 21-е число
__________________
Блог |
||||
|
|||||
Я получаю много вопросов в личку по поводу использования этой программы. Я думаю лучше общаться здесь, ведь часто возникают одинаковые вопросы.
Вот например переписка Цитата:
Я бы так сделал. Если я правильно понял проблему... Цитата:
См. прикрепленный файл. Или тебе нужна только часть ведомости?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
|||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
>wetr
Версия vrc от 04.02.2008 24.05.2013 23-01-2014. Добавлена возможность заполнять таблицу полями, текстом, выбирать или нет листы. Подробности в начале лиспа. Протестируй и если нормально, то обнови 1-й пост. Файл для тестирования брать в 1-м посте. 2014-01-23 Добавлена функция BG:GET-TEXTSTRING (как замена vla-get-textstring. Т.к. неверно возвращает строку при наличии юникод символов) Смотреть здесь Команды: VRC - таблица с полями, все листы VRCTS - таблица с Tекстом, выбор (S) листов VRCTN - таблица с Tекстом, нет (N) выбора листов VRCFS - таблица с полями (F), выбор (S) листов
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 08.03.2018 в 23:40. Причина: Обработка x64 |
|||
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Цитата:
Почему то написал в первый раз, что некорректный файл Последний раз редактировалось Nikolay 2, 04.02.2009 в 18:30. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Где?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Странно. Зачем 5 раз создавать таблицы, если можно сделать 1 объект и на 5 столбцов разделить.
Я бы так сделал. Если я правильно понял проблему... М.б. ты не все настройки таблиц видел? Там можно все сделать. См. прикрепленный файл. Или тебе нужна только часть ведомости?[/quote] И получается, что таблицы, кроме первой обезглавлены... По поводу наличия заголовка в каждой таблицы один мой знакомый сказал "всю жизнь так делаем", и ты знаешь, я ему верю. Причина одна - он проектирует столько, сколько я живу, шутка ли 50 лет (и еще работает, и держат его не из уважения, а за профессионализм. Хорошо здоровье позволяет). Были времена (давно правда) сомневался в этой фразе, но потом поковырявшись в нормативах убеждался в правоте и теперь фраза из его уст "всю жизнь так делаем" для меня означает "учите матчасть, Николай". Извиняюсь перед модераторами за флейм. Ну должен быть у каждой таблицы заголовок... оп!!!! извинения для vetr касательно заголовков, заголовки поставил и пр. настройки тоже, да, матчасть пошел учить... Последний раз редактировалось Nikolay 2, 04.02.2009 в 19:18. Причина: извинения для vetr |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Где протокол?
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Обновил #159
Вот что должно быть в протоколе Цитата:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 04.02.2009 в 19:03. Причина: Чуток ошибся номером поста |
|||
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
Именно так и есть, все работает. Большое спасибо, думаю от многих. Глупая конечно мысль пришла, но все же, можно ли изменив название чертежа, например в "таблице с Tекстом, выбор (S) листов" сделать так, чтобы он изменился в соответствующем листе?
|
|||
|
||||
Цитата:
Но лучший вариант опять подшивки.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
VVA, а каким образом заставить программу вставлять ведомость в таблицу, в нужном мне стиле таблиц? Программа всегда создает стиль таблиц "Ведомость чертежей"?
Все дело в том, что у нас теперь цветозависимые стили печати, и цвет текста в разных строках таблицы - разный. Это для того, чтоб более высокий текст имел большую толщину, как требует ГОСТ. Так вот, когда я заменил в строке Код:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 06.09.2010 в 03:11. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
wetr, Смотреть код vrc_VVA.lsp с поста #1?
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
А как названия листов собирать?
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
VVA, смотрю "код vrc_VVA.lsp с поста #1"
Код:
Код:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Это какой-то новый примитив Автокада? Если текст в блоке, то это и есть "блочный штамп"
Изменил немного код. Добавил переменную для стиля таблиц. Принцип такой: если стиля таблицы с таким именем нет, то создается с настройками какие и были, если стиля таблицы с таким именем еcть, то со стилем ничего не делается. Обновил код в посте #159. Протестируй, если нормально, то то обнови 1-й пост
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,143
|
VVA, а что если таблица не влазиет в формат листа как ее на две части к примеру разбить
VVA, у меня есть идея воспользоваться таким алгоритмом: 1. Надписи в штампе состоят из блочных штампов как вы говорите, но чтобы просто можно копирывать было из лайаута в лайаут без проблем и потом они распозновались как отдельные блочки 2. Запускаем лисп он согласно нумерации лайаутов и расположения в лайауте согласно оси Х и Y объединяет название в лайауте и в итоге выдает перечень старниц просто в блокноте как вы делали 2 года назад
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
|
||||
Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 1,847
|
пара вопросиков подскажите кому не лень
пытаюсь прикрутить автонумератор http://dwg.ru/dnl/1929 вот этот, нумерует только тот лист на котором выделено, можно сделать чтоб нумеровал все листы? (расположены в листах соответственно) объясните пожалуйста, как сделано что в блоке идет ссылка на текст с вкладки "титул" ну хотя бы на примере "шифр!!!" чего то никак догнать не могу. Спасибо |
|||
|
||||
VVA, все работает! Спасибо! Обновил первый пост
kifa, http://forum.dwg.ru/showthread.php?t=35047 вопрос №5 автонумератор Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) Последний раз редактировалось wetr, 08.09.2010 в 01:53. |
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 1,847
|
Цитата:
|
|||
|
||||
BIM, С#, AutoCAD, LISP Регистрация: 15.03.2006
Дуброво
Сообщений: 657
|
VVA, скажите, пожалуйста, если использовать пакетную обработку файлов по лиспу в 6-м сообщении темы возможно ли возникновение каких-либо проблем?
__________________
"Молодой человек, Вы не представляете всей широты поставленной перед Вами задачи." © Панкратова Г.Е. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Да. Навскидку:
1. Файл сохранен в формате более старшей версии Автокада. 2. Файл испорчен и при открытии требует выполнить _recover 3. В файле есть ссылка на несуществующий файл форм. И при его открытии будет болтаться окно запроса. 4. Наличие Proxy объектов. Почитай тему Последовательное применение lisp-функции к множеству файлов Там описаны и другие варианты обработки. Я бы остановился на варианте №4 из поста #4 по ссылке
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
На твой вопрос ответил wetr
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
Здесь не понятно. Причем здесь X и Y. Название листа берется из атрибута. Где-то на форуме были программы по синхронизации названий листов и атрибутов. Ну и наконец если я это делал 2 года назад, то почему бы этим не воспользоваться?
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
BIM, С#, AutoCAD, LISP Регистрация: 15.03.2006
Дуброво
Сообщений: 657
|
В запарке не всегда удаётся отследить - нажал Enter или нет при вводе наименования чертежа. Это незаметно на рамке, но при формировании ведомости всплывают косячки.
Надоело каждый раз править и добавил очистку форматирования наименования чертежа: Код:
UPD: При длинном названии чертежа текст утаптывается в две строки и текст снизу и сверху налезает на границы ячейки. Чтобы поправить это, добавил настройку отступа по вертикали в таблице: Код:
__________________
"Молодой человек, Вы не представляете всей широты поставленной перед Вами задачи." © Панкратова Г.Е. Последний раз редактировалось kha, 04.08.2011 в 13:14. |
|||
|
||||
BIM, С#, AutoCAD, LISP Регистрация: 15.03.2006
Дуброво
Сообщений: 657
|
Прикрутил ещё одну опцию - формирование ведомости рабочих чертежей по выбору секущей рамкой:
(and ;;(setq ss (ssget "_X" '((0 . "INSERT")(66 . 1)))) - было (setq ss (ssget '((0 . "INSERT")(66 . 1)))) ;;;; - стало (setq lst (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp(mapcar 'cadr(ssnamex ss)))))
__________________
"Молодой человек, Вы не представляете всей широты поставленной перед Вами задачи." © Панкратова Г.Е. |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
baklushev, Я думаю, что проблема в этом ( см. пост #4 решение в #8)
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
попробуй убрать форматирование http://forum.dwg.ru/showthread.php?t=24790
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 03.12.2009
Сообщений: 1,847
|
и так и сяк пробую вставить кусок когда, чтоб поля нормлаьно отображались, в каде 2011, система winows 7 ультимейт х64. Ставлю в конец, все правильно делаю?
код беру отсюда http://forum.dwg.ru/showthread.php?t=51822 |
|||
|
||||
VVA,
Давно не использовал лисп. На 2013-м x64 пробую код с поста #159. Вариант с полями выдает вместо требуемого названия "####". Вариант без полей показывает вопросы вместо армянского шрифта (с русским нормально). Шрифт прилагаю. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
kifa, Спасибо. Именно в этом и дело. В своем варианте убери в конце файла цифру 39
Обновил #159 Red Nova, Шрифт пока не тестировал. Попробуй обновленный вариант. М.б. дело было в этом
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
гадание на конечно-элементной гуще Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,604
|
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Я проверил #159 работает на W7 x64 Acad2013 x64 SP2. Возможно у тебя не совпадали tag'и атрибутов. Я обновил #159, добавил файл с примером. В lsp файлы таги атрибутов настроены на файл примера
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 03.12.2009
Сообщений: 1,847
|
Для работы с полями код или с текстом? С текстом вроде работает, а вот с полями нет, есть решения как в полях убирать непечатные символы, сейчас то руками подчистил, так на будущее спрашиваю?
|
|||
|
||||
Цитата:
У меня вот что получилось
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
BIM, С#, AutoCAD, LISP Регистрация: 15.03.2006
Дуброво
Сообщений: 657
|
с полями не делаю содержание, к сожалению не могу подсказать по этому поводу
__________________
"Молодой человек, Вы не представляете всей широты поставленной перед Вами задачи." © Панкратова Г.Е. |
|||
|
||||
А что именно не устроило ? И зачем взрываете ?
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 1,847
|
Столкнулся с неким глюком, отправляю файл, у меня акад 2014 у человека тоже, открывает а в названия чертежей добавляются интеры, соответственно едет форматирование и в ведомости появляются /Р, плюс к этому едет высота шрифта. у себя на всех компах попробовал все ровно, но у двоих знакомых кому высылал едет. Может кто чего подсказать?
Пример файла прикладываю. |
|||
|
||||
Цитата:
Цитата:
|
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 1,847
|
Цитата:
Да этот шрифт они мне и присылали, я до этого всегда стандартный arial использовал и проблем не было. |
|||
|
||||
Цитата:
Цитата:
|
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 1,847
|
Цитата:
вот это тоже из за enter вот прикрепил как это выглядит у меня |
|||
|
||||
У меня 2013х64. У тебя какой битности?
Может переход с 32х на 64х ? Цитата:
|
||||
|
||||
Регистрация: 03.12.2009
Сообщений: 1,847
|
2014 это я просто качаю 2013 на пробу щас вот и запарился)
попробовал у себя в 2011х64 все ровно... хз че делать есть подозрение что все дело в шрифтах все же Если не сложно открой вариант с ариалом, улетает или нет? Разобрался вроде - кривой таки шрифт. Спасибо за помощь Последний раз редактировалось kifa, 16.12.2013 в 11:26. |
|||
|
||||
Регистрация: 01.07.2007
Москва
Сообщений: 26
|
Здравствуйте! Более для меня подходящий вариант от VVA и Red Nova не работает. Т.е. я захожу в файл примера, подгружаю лиспы и по командам vrc и vrc2 выводятся таблицы, в которых все в решетках, т.е. у полей почему-то сбита ссылка. Уже вставленные в файле примере таблицы работают нормально, т.е. при изменении параметров листа поля правильно обновляются. Не подскажите в чем дело?
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
zz07, номер поста откуда взял коды и файл примера. а так же версия и разрядность автокада. немного побольше информации
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 26.02.2007
от туда
Сообщений: 370
|
какой-то не понятный глюк, когда перезагружаешь файл, то все номера листов превращаются в 1 (ну или в любой другой номер листа на котором сохранился перед выходом) регениратьсия не помогает, после того как зайдешь на каждый лист то все встает на свои места
|
|||
|
||||
Регистрация: 21.10.2008
Петербург
Сообщений: 19
|
Добрый день. А возможно каким-то образом получить номер листа не из атрибута блока рамки, а взять из порядкового номера вкладки листа?
Т.е. через Код:
Последний раз редактировалось b00, 22.10.2016 в 07:55. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
b00, задачка довольно интересная.
Думаю, тут только программно. Штатно нельзя сослаться полем на порядковый номер листа. Если мы говорим НЕ о номере листа в подшивке. И то, там мы сошлемся не на порядковый номер листа в списке, а на жестко заданное свойство "Номер листа подшивки", которое не поменяется автоматом при перетасовке листов. В общем, если я правильно понял задачу, а именно: номер листа представлен атрибутом, который находится в составе блока форматки, этот блок находится в пространстве листа, при этом атрибуту нужно присвоить порядковый номер листа, на котором он находится, и при замене листов местами этот атрибут, содержащий поле, должен обновиться вне зависимости от цифр, входящих в имя листа, но в завимости от порядкового номера листа, - то вот (пока) тестовая, набросанная на скорую руку версия кода, без обработок ошибок и прочих пряничков: Код:
1. SetLayoutNumbers или SLN - начнется поочередное переключение листов (пока не в порядке их следования во вкладках, а в алфавитном порядке), на каждом из них пользователю будет предложено выбрать атрибут, в котором хранится номер листа. Это может быть и текст или Мтекст, но тогда обязательно не в блоке, потому как в этом случае он будет одинаковым на всех листах. Эту команду можно будет исключить в принципе, если принять определенные соглашения. Например, этот атрибут должен иметь определенное имя или находиться на определенном слое и т.д. Тут лучше бы мне увидеть файл с примером - понимания будет больше. Данный вариант - хоть и требует по одному клику на лист - универсальный при условии, что в листе есть блок с атрибутом. Промахнуться мимо атрибута пока нельзя - вылетит с ошибкой. 2. LayoutNumerator или LN - далее эту команду следует вызывать после того, как был изменен порядок следования листов. Произойдет изменение полей. Пока сделал принудительную регенерацию. Если файлы большие, и возникнут тормоза, можно будет ее убрать, и тогда для обновления полей придется производить регенерацию вручную, по мере необходимости. Не уверен, но думаю, что данную команду можно заменить реактором (т.е она будет вызываться автоматически при изменении листов) - пока не проверял. Ограничения: имя листа должно начинаться с буквы (русской или латинской) и не должно содержать: (, ) − левой и правой скобок, . − точки, ‘ − апострофа, “ − кавычек, ; − точки с запятой. Пробелы - можно. Эти ограничения реально обойти - было бы желание. Алгоритм работы следующий. При вызове первой команды сначала происходит создание глобальных переменных, имена которых совпадают с именами листов, но пробелы преобразуются в тире. Это и является причиной ограничений - они те же, что и при именовании переменных в лиспе. Каждой из этих переменных присваивается числовое значение, совпадающее с порядковым номером соответствующего листа. На значение этой переменной и ссылается программно созданное поле. При вызове второй команды происходит приведение в соответствие этих переменных новым порядковым номерам листов и регенерация Последний раз редактировалось skkkk, 27.11.2015 в 10:42. |
|||
|
|||||
Регистрация: 21.10.2008
Петербург
Сообщений: 19
|
Нет, не о подшивке.
Цитата:
Цитата:
Цитата:
Цитата:
И сопутствующий вопрос - для обработки строки в Diesel есть только функция substr? Т.е. вкладки листов имеют имена вида: 01_2.1_Название_листа, 02_2.2_Название_листа и т.п. Первые 2 (или X) символов до первого знака _ при помощи $(substr,$(getvar,CTAB),1,X) я вырезаю из имени вкладки и добавляю к полю, высчитывающему по формуле сквозной номер листа в томе (именно от этой операции хочется избавиться, получая данную информацию из порядка расположения вкладки листа, что и делает Ваш скрипт). Следующие X символов до второго знака _, которые должны быть подставлены в номер листа в основной надписи, простым substr универсально описать не получается, можно ли в Diesel применить регулярку типа ^(\d+)_([.\d]+).*$ ? |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Она содержится в свойстве листа TabOrder, но доступ к ней только программный, из полей - нет (по крайней мере, насколько я знаю, могу ошибаться). Чтобы к ней был доступ из полей, и была придумана данная программка. Она назначает это свойство одноименной (за исключением замененных пробелов на тире) глобальной переменной, на которую уже можно сослаться полем.
Этот порядок и сохраняется в указанном свойстве каждого листа. Точнее в файле. Ведь всегда после закрытия порядок следования листов остается неизменным, правда? Иными словами это свойство напрямую зависит от положения листа по порядку и может принимать только одно значение - целое число. Функцией vla-get-TabOrder мы это число можем получить, функцией vla-put-TabOrder - задать, при этом произойдет физическое перемещение листа в соответствующую позицию, остальные номера поменяются согласно ряду натуральных целых чисел. Цитата:
По поводу Дизеля - не подскажу - попросту не знаю, поскольку еще на рассвете карьеры выбрал лисп. Пробовал я эту соляру разок-другой, но помню, там почему-то при изменении свойств источника поля терялась связь - и я плюнул. В Сети полно информации по его функциям, но они довольно-таки скудны, хотя и позволяют делать многое со строками или числами. На вкус и цвет, как говорится. Однако, меня одолевает ощущение, что мы отошли от основной темы топика... Косвенная связь, конечно, есть, но к ведомости чертежей наш код имеет посредственное отношение. Если есть интерес, и он достаточно велик, предлагаю попросить модераторов перебросить это обсуждение в отдельную тему, если они сочтут это целесообразным. |
|||
|
||||
Регистрация: 03.12.2009
Сообщений: 1,847
|
|
|||
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,143
|
Коллеги, кто-нибудь может видео на камстасии закинуть, как оно работает, хотел наглядно посмотреть, не хочу свою предыдущую от VVA удалять она меня устраивает на все 100%
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
|
||||
Менеджер проектов Регистрация: 03.11.2015
Полтава
Сообщений: 28
|
У меня в блоке штампа три атрибута: номер листа и еще два поля с названием листа и частью проектируемого объекта, изображенного на конкретном листе. Сортирую по номеру листа. Все отлично.
|
|||
|
||||
Регистрация: 21.10.2008
Петербург
Сообщений: 19
|
Мне достаточно приведенного решения, благодарю. С учетом полученных пояснений по теме извлечения и установки свойства TabOrder (стал ясен смысл отдельного программного создания списка с номерами листов из TabOrder - чтобы получить доступ к ним через поля) я Ваш скрипт, при нужде, под себя перепишу, в т.ч. пропишу и имя атрибута блока.
|
|||
|
||||
Регистрация: 08.06.2016
Сообщений: 15
|
Здравствуйте!
Акад 13. Прошу научить в несколько шагов сделать а/заполнение ведомости чертежей. Чертеж на листах. Многострочные атрибуты (будущие названия чертежей) не получаются. Ссылки на эти атрибуты на разные листы неизвестно как ставить. Помогите плиз. Или хоть ветку дайте из этого моря. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Цитата:
|
|||
|
||||
ТОО Регистрация: 22.05.2014
Аршалы
Сообщений: 52
|
|
|||
|
||||
Цитата:
|
||||
|
||||
Регистрация: 08.06.2016
Сообщений: 15
|
Спасибо!
Но я хочу своими руками без микропрограмм. В начале темы у человека получалось в ведомости ставить текст-поле, которое менялось даже при изменении текста на разных листах. У меня такое текст-поле превращается в #### в акаде13. Не пойму как сделать связь |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Тогда точно
Потому как иного способа сделать связь полей между файлами я не знаю. Тем более, что там ничего сложного. Нажимаем Файл -> Создать подшивку и понеслась. Когда в подшивку добавлены листы, левой кнопкой таскаем их вверх-вниз, правой - осваиваем возможности, одна из которых - это почти удобная нумерация листов, на которую, кстати, можно ссылаться полем. А вот когда все готово, то еще одна возможность - Вставить ведомость листов... . Пусть и не по ГОСТ, зато с гиперссылками. А без "микропрограмм" по-другому и никак. Хотя вру - все можно сделать из палочек, даже текст. |
|||
|
||||
Регистрация: 08.06.2016
Сообщений: 15
|
С подшивкой я мучался. Получился процесс ради процесса. Ибо надо и в штампе вбить название чертежа и в названии листов надо вбить тоже самое. Мне надо ЧТОБЫ ПО ПРОСТОМУ ОБОЙТИ ЗАПРЕТ Поле-Лист-Объект (что не сделал автодеск). С таблицей хорошая наколочка была, но поле ячейку с буквами не глотает (####) forum.dwg.ru/showthread.php?p=1541389#post1541389. Еще советовали копировать блок-текст, так он всегда в одинаковом прямоугольнике д.б. (тоже не подходит). Так есть простой х/умный способ? wetr знает, но не говорит
----- добавлено через ~8 мин. ----- .....затем копировать текст вида "%<\AcObjProp Object(%<\_ObjId 2130566400>%).TextString>%" в отдельный файл, затем вставлять в нужное мне поле. поле для объекта серое и неактивное. wetr как это сделать??? |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Ничего не понял...вся информация вводится в поля подшивки ОДИН РАЗ, иначе от нее кроме вреда никакой пользы. Полное наименование листа (любой мыслимой длины) вводится в "Описание листа" и отображается на чертеже в соотв. поле. Краткое (кажется, до 256 симв.), для удобства поиска - в "название листа", в чертеже не отображается. Дублировать их не следует, да и не получится из-за ограничений на длину строки в "названии листа"
Последний раз редактировалось kp+, 10.06.2016 в 17:15. |
|||
|
||||
Регистрация: 08.06.2016
Сообщений: 15
|
у нас названия листов могут поменяться. ну да ладно. если я буду подшивкой пользоваться, мне тогда и в подшивке надо вбивать название листов и в штампе. на кой оно мне? ветр же как то обманул акад и сделал то что надо. в первом посте он копировал-вставлял адреса
|
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
Offtop: Врубись, ведь это же кайф! (С) |
|||
|
||||
Регистрация: 08.06.2016
Сообщений: 15
|
Попробовал еще раз с подшивками. Все работает. Меняешь в подшивке (в листе) название листа и меняется поле в штампе и в ведомости. ОК. ТОЛЬКО БЕДА В ТОМ, ЧТО В ШТАМПЕ ТЕКСТ, КОТОРЫЙ ДОЛЖЕН БЫТЬ ПО УМУ МНОГОСТРОЧНЫМ И ДОЛЖЕН ВПИХИВАТЬСЯ В ПРЯМОУГОЛЬНИК НИ ФИГА НЕ ПЕРЕНОСИТСЯ.
Короче прям в модели в штампах (в м/строчном тексте) я меняю названия листов и у меня меняется поле в ведомости листов сделанной из палок. Ничего лучше и проще не могу придумать |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
|
|||
|
||||
Регистрация: 28.12.2011
СПб
Сообщений: 843
|
Господа вопрос по программе в шапке темы, все страницы не читал, но решил попробывать данную чудо программу и возник такой вопрос, если название чертежа в штампе длиннее строки Ведомости рабочих чертежей можно ли сделать чтоб текст перепрыгивал на следующую строку? Для понимания картинку приложил.
|
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
Цитата:
Offtop: Письмо прописными буквами воспринимается как крик. Успокойтесь Стандартными средствами таблиц Акада (по крайней мере, 2010) - нельзя. Такой функционал был в проге Atable http://alxd.it-dept.ru/ru/shareware/...0for%20AutoCAD Но кажется автор прекратил поддержку под новые версии Последний раз редактировалось kp+, 14.06.2016 в 14:51. |
|||
|
||||
Регистрация: 08.06.2016
Сообщений: 15
|
штамп нарисован палками. В одном из прямоугольников штампа - название листа. название листа длинное (3 строчки). сейчас в прямоугольник вписан м/строчный текст. ну очевидно же всё! зачем чего то прикладывать?
В акад2013 вставлять поле в многострочный текст не получается |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Если лечение по фотографии неэффективно, то что говорить о лечении по описанию?
Другой вопрос, если у Вас нет возможности выложить DWG (например служба внутренней безопасности бдит) Это какой-то глюк. У меня версия 2010, поля в Мтексте нормально работают. У коллеги 2013, тоже все путем. Эти "палки" и Мтекст - отдельные примитивы, или объединены в блок? Если объединены в блок, то поля подшивки в обычном Мтексте, входящем в состав блока, работать не будут. Вместо этого надо использовать многострочный атрибут. Последний раз редактировалось kp+, 14.06.2016 в 17:00. |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Печаль. Но хороший пример как это должно быть, уже с DWG и файлом подшивки DST можно посмотреть тут: http://dwg.ru/dnl/5319
То ли Вы что-то не так делаете, то ли Ваш Акад 2013 надо переустанавливать или ставить сервис-паки. Еще много интересного в теме "решился освоить подшивку" http://forum.dwg.ru/showthread.php?p=1540643 |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
А многострочный атрибут разве не также себя ведет как многострочный текст? Если в нем настроить выравнивание, то он будет переносить слова в соответствии с габаритами ограничивающего прямоугольника. Советую для атрибутов включить редактор такой же, как и для мтекста (переменная ATTIPE). Честно говоря, тоже не очень понял, о чем речь, надеюсь, понял правильно.
|
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
Это при "жесткой" ссылке на конкретную подшивку. "Мягкие" ссылки типа "НомерПроектаТекущейПодшивки" МТекст внутри блока не воспринимает. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Но при таком подходе есть один момент, который порой приводит к ошибкам. Если одновременно открыто более одной подшивки, может получиться так, что в штампе появляются данные не из той подшивки. Если так получается, приходится переоткрывать Автокад. По этой причине приучил себя открывать каждый проект в отдельном сеансе. |
|||
|
||||
Регистрация: 07.02.2011
Сообщений: 13
|
Добрый день.
Я работаю в пространстве модели и динамические блоки рамки находятся там-же. Создаю листы командой AL (лисп нашел здесь же) исключительно для публикации. В примере если блоки формата перенести в модель, то поля сбиваются. Для модели такое возможно? В идеале примерно так: В модели есть примерно 40 дин. блоков "Формат" с атрибутами (с числе которых - лист и наименование). 1. Вводим специальную команду 2. Программа предлагает выбрать необходимые блоки "Формат". 3. Секущей рамкой выделяем пространство с блоками. 4. Создается таблица ведомости (как в примере) с соответствующими значениями атрибутов. Спасибо |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
|
|||
|
||||
Конструктор Регистрация: 23.03.2011
Москва
Сообщений: 43
|
Если Вы работаете в листах, зачем Вам все эти сложности - используйте подшивку. Там ведомость автоматически вставляется, названия и номера листов можно быстро редактировать.
----- добавлено через ~4 мин. ----- А можно ведомость собирать из чертежей, которые находятся в нескольких файлах?
__________________
Если долго мучаться, то всегда получится:i-m_so_happy: |
|||
|
||||
Приложите пример вашего чертежа.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Конструктор Регистрация: 23.03.2011
Москва
Сообщений: 43
|
Да все то же самое, но проект разбит на несколько файлов: Монтажные схемы отдельно, узлы отдельно, а ведомость чертежей одна общая
__________________
Если долго мучаться, то всегда получится:i-m_so_happy: |
|||
|
||||
Конструктор Регистрация: 23.03.2011
Москва
Сообщений: 43
|
в vrc_VVA меню выбора файлов не нашел, я в лиспе совсем не силен, но думаю что vrc про другие файлы ничего не знает.
Рамка еще не создана Дело в том, что на новой работе требование чертить в модели, а я уже к подшивкам привык. Думаю как ведомость листов делать. Что у Вас за метод?
__________________
Если долго мучаться, то всегда получится:i-m_so_happy: |
|||
|
||||
baksconstructor ранее описал в #276
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Barmaley Bubusikin, Посмотрел код из #1. VRC цвет слоя не меняет
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Найди
Код:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 05.06.2014
Сообщений: 77
|
Я пользуюсь кодом из #159.
Цитата:
Хотелка такая: цвет "по слою" без жесткого задания. Спасибо за внимание. upd. Меняется и толщина слоя. Похоже, лисп не понимает, что слой существует. Последний раз редактировалось Barmaley Bubusikin, 08.03.2018 в 14:54. Причина: дополнение |
|||
|
||||
Регистрация: 16.10.2013
Сообщений: 323
|
|
|||
|
||||
Регистрация: 16.10.2013
Сообщений: 323
|
есть папка проекта, в ней чертежи 1.двг, 2.двг, 3.двг, есть в папке еще внутренняя папка "дополнение", там чертежи 4.двг, 5.двг, все начерчено в модели, а оформлено в листах (т.е. рамки и штампы указаны в листах), листов может быть несколько.
в корневой папке создаю файл "общие данные" и как в лиспе от VAA в нем создать ведомость чертежей, только уже с возможностью выбирать файлы и листы в нем, которые будут помещены в ведомость |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
пока самое удобное для себя - название чертежа в многострочном атрибуте прямо в вставке блока основной надписи вбивается при "настройке" листа через ВЭ. Все остальное - через подшивку. А извлекать программно - из подшивки выдергиваешь название чертежа и лист, затем из атрибута - название чертежа. Если даже "глюкнет" программа - вручную пройтись по атрибутам и скопировать - дело несколько минут)
|
|||
|
||||
Регистрация: 03.09.2020
Сообщений: 10
|
Здравствуйте! Очень нравится программа по созданию ведомости... Респект автору! Напишите есть ли возможность, что бы при вставке таблицы, ее размер был в 100 раз больше? Часто работаю с чертежами с масштабом 1:100. Может настройки какие есть?
|
|||
|
||||
Регистрация: 16.10.2013
Сообщений: 323
|
А еще возможно ли допилить лисп так, чтобы листы в ведомость попадали не по алфавитному порядку, а по порядку следования в файле?
Т.е. у меня листы называются не "1", "2", "3", "4"..., а например "Фасад", "Разрез поперечный", "Разрез продольный", лисп ведомость выдает в алфавитном порядке, т.е. лист с именем фасад оказывается в конце списка, а нужно в начале. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Автозаполнение ведомости чертежей и автонумерация листов в спдс 6 | Кукурузо_Джон_Горыныч | ПО от CSoft | 34 | 15.02.2019 08:13 |
Ведомость рабочих чертежей основного комплекта | 13Rossoneri | Архитектура | 3 | 22.08.2015 00:21 |
Аннулирование комплекта рабочих чертежей путем замены | Elena.sh | Разное | 8 | 26.05.2011 05:47 |
Хочу быстрее заполнять ведомости рабочих чертежей! | a-alex | Программирование | 2 | 19.02.2008 19:09 |