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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Подготовка подосновы

LISP. Подготовка подосновы

Ответ
Поиск в этой теме
Непрочитано 13.04.2011, 20:25 25 | #1
LISP. Подготовка подосновы
VVA
 
Инженер LISP
 
Минск
Регистрация: 11.05.2005
Сообщений: 6,996

Набор команд, опубликованных в теме Подоснова
Желательно ознакомиться с указанной темой или как минимум с описанием
Описание команд
Код:
[Выделить все]
BGLAYDEL - Удаление выключенных и замороженных слоев с примитивами
BG1BLEXP - Взрывает блоки, состоящие из одного примитива (возможно другого блока)
BGBLEXP  - Взрывает блок и все блоки, входящие в него, превращая видимые атрибуты в текст
BGBLEXP1 - Взрывает блоки 1-го уровня, превращая видимые атрибуты в текст
BGBLDYNEXP1 - Взрывает динамические блоки 1-го уровня, превращая видимые атрибуты в текст
BGBLEXP1NOATT - Взрывает блоки 1-го уровня, у которых нет видимых атрибутов
BGBLXCLIP - Показывает подрезанные блоки
BGBLDYN2A - Преобразовывает динамические блоки в анонимные
BGBLDYN2S - Преобразовывает динамические блоки в статические
BGBLALLDYN2A - Преобразовывает ВСЕ динамические блоки в анонимные    
BGBLALLDYN2S - Преобразовывает ВСЕ динамические блоки в статические  
BGBLXCLIPEXP - взорвать подрезанный блок
BGCB - копирует одно из вхождений блока в блок с новым именем 
BGRB - переименовывает одно из вхождений блока в блок с новым именем
M2U - Преобразовать MINSERT в Unnamed блок
M2B - Преобразовать MINSERT в блок
U2B - Преобразовать UNNAMED в блок
U2BM - Преобразовать UNNAMED в блок множественный выбор
UX - Взорвать UNNAMED блок
=======================================
BGRGB2ACI - Изменяет цвет с RGB на ACI
BGAll2RGB - Изменяет ACI цвет в его RGB эквивалент
BGCOLOR - Задает выбранный цвет всем объектам
BGCOLORCMD - Задает выбранный цвет всем объектам с запросом в командной строке
BGCOLORXREF - Меняет цвет выбранных внешних сылок (только в текушем сеансе)
BGCOLBL - Установка "послою" цвета примитивов подосновы. Если цвет задан явно- создается новый слой !Новое с версии 3.0
BGResetXRef -Сброс настроек слоев выбранных внешних ссылок на установленные в исходном файле
BGBLCC - Изменяет цвет выбранных блоков
BGENCC - Изменяет цвет выбранного элемента блока
BGCATT - Изменяет цвет атрибутов выбранных блоков
BGCBL2 - Изменяет цвет в блоках 2 и более уровня (вложенных блоках)
BGBLFIX - Нормализация блоков (цвет, слой, взрываемость и т.п.)
BGCFT   - Конвертирует все поля в обычный текст
BGCFTSEL - конвертирование полей в обычный текст в выбранных примитивах
BGHATCHDEL - Удаление штриховки
Текущая версия 3.13a
Отличие версий 3.3 и 3.6 и выше - переписана функция взрыва блоков (команды BGBLEXP...)
В версии 3.3 - вариант из expresstools. Сохраняются поля при взрыве. Медленная обработка при большом количестве блоков
В версии 3.6 функция bg:BURST-ONE заменена функцией Lee Mac LM:burst. На порядок быстрее, если атрибут многострочный и включена маскировка - получаем маскированный мтест.
Поля не сохраняются.

Код:
[Выделить все]
;;;	Версии:
;;;	1.0 - исправлены ошибки burst - при наследовании типа линии поблоку, показ скрытых атрибутов и наследования типа линии блока
;;;	                                если в блок примитив входил не на 0 слое, тип линии поблоку.
;;;	      добавлена обработка Burst LineWeight
;;;	1.1  изменение цвета блока при наличии атрибутов (см ;;; Change VVA 12.09.2008)
;;;	...
;;;	1.4  Обработка стилей мультилиний
;;;	1.11 ChangeAllObjectsColor - Обработка размеров, leader и mtext с явным заданием цвета.
;;;	     BGBLEXP - обработка видимостей динамических блоков (если в видимости включены атрибуты)
;;;	     BG1BLEXP - Обабатываются блоки, состоящие из одного элемента и
;;;	     - имя блока A$C*
;;;	     - или любое другое имя и этот один элемент другой блок
;;;	1.12 - Не удаляет блоки, расположенные на выключенном/ замороженном слое
;;;	       и имеющие хотя бы 1 примитив на включенном слое, отличном от "0"
;;;	2.0  - BGBLEXP - исправлена ошибка со списком
;;;	2.1  - обработка блоков внешних ссылок ChangeXrefAllObjectsColor
;;;	2.2  - команда BGCFT
;;;	2.3  - add BGCOLORXREF and BGRGB2ACI
;;;	2.4  - Обработка многострочных атрибутов
;;;     2.5  - Добавленна gc:FieldCode ChangeAllObjectsColor ChangeXrefAllObjectsColor - обработка Unicode символов
;;;     2.6  - Добавленны команды BGBLDYN2A BGBLDYN2S
;;;     2.7  - Добавлена обработка предварительного выбора
;;;     2.8  - Баги с обработкой атрибутов и visibility
;;;     2.9 - Команда BGBLDYNEXP1 
;;;     2.9.1 - добавлена ф-ция bg:massoc
;;;     2.10  - Конвертация динамических блоков  bg:DynToStatic. Сохранение и восстановление значений атрибутов
;;;     2.11 - Изменения в bg:get-all-atts (обработка UNICOD символов в значениях атрибутов)
;;;              добавлена команда BGHATCHDEL
;;;             ChangeAllObjectsColor - change table text and grid color
;;;    2.12  - Учтен lineweight для атрибутов. Изменен BgBlFIX
;;;    2.13  - Добавлена функция BG:GET-TEXTSTRING (как замена vla-get-textstring. Т.к. неверно возвращает строку при наличии юникод символов)
;;;    2.14  - Добавлена команда BGAll2RGB Изменена ClearFieldInAllObjects
;;;    2.15  - Небольшие изменения в BGAll2RGB. добавлены BGCB и BGRB
;;;;   2.16  - BGCBL2 теперь работает с RGB и ACI цветами
;;;;   2.17  - BGBLCC  теперь работает с RGB и ACI цветами + мелкие изменения
;;;;   2.18  - Учтено предложение http://forum.dwg.ru/showpost.php?p=949149&postcount=102
;;;;           Добавлена команда BGBLXCLIPEXP
;;;;   2.19  - Команда BGBLFIX. Добавлена опция игнорирования блокированных слоев
;;;    2.22  - Добавлены опции Одинаковые масштабы и Разрешить расчленение
;;;    2.23 - Внесены изменения в команду BGBLXCLIPEXP
;;;    2.24  - Отредактирована команда UX (вложенность анонимных блоков)
;;;    2.25  - Fix BGBLCC и BGCBL2 command. Add BGCFTSEL
;;;    2.26  - BGCFT - добавлена обработка формата текста в таблице. Добавлены команды BGBLALLDYN2A и BGBLALLDYN2S
;;;    2.27  - в командах U2B ,UX добавлена обработка блоков с именем *E
;;;    2.28  - BGCFT - исправлена ошибка + изменения в function bg:DynToStatic
;;;    2.29  - Исправлен недочет ClearFieldInThisObject
;;;    2.30    Fixed minor bugs in function ClearFieldInThisObject   http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/vla-get-textstring-u-symbols/td-p/4365165
;;;    2.31    BGCFT добавлена очистка полей в размерах  ( http://forum.dwg.ru/showthread.php?p=1335110#post1335110 )
;;;    2.32    изменения в bg:get-TextString (http://forum.dwg.ru/showpost.php?p=1386990&postcount=235)
;;;    2.33    изменения в bg:get-TextString (http://forum.dwg.ru/showpost.php?p=1386990&postcount=252) 
;;;    2.34    BGBLFIX обработка именованных стилей печати
;;;    2.35    BGBLEXP изменения
;;;    2.36    изменения в команде UX http://forum.dwg.ru/showthread.php?p=1421560#post1421560
;;;    2.37    BGCFT исправлена ошибка при обработке заблокированных ячеек таблицы
;;;    2.38    BGLAYDEL исправлена ошибка с востановлением слоев
;;;    2.40    Изменения в ф-ции bg:FieldCode. Добавлена ф-ция bg:GetObjectIDString mark VVA 2015-12-07
;;;    2.41    Изменения в ф-ции ClearFieldInThisObject. Обработка значений размеров над и под размерной линией. Mark VVA 2016-01-04
;;;    3.0    Добавлена команда BGCOLBL
;;;            Установка послою цвета примитивов подосновы. Если цвет задан явно- создается новый слой
;;;    3.1    BGBLEXP - сохранение полей в атрибутах
;;;   3.2    BGCFT игнор
;;;   3.3    Исправление в команде M2B
;;;   3.4    Исправление fix bg:explode-block (исключение обработки внешних ссылок)
;;;   3.5    BG:BURST-ONE измененая для сохранения постоянных атрибутов
;;;   3.6    добавлено bg:del-constraint в BGBLEXP
;;;   3.7    изменения в команде M2B
;;;   3.8    Изменения в bg:FieldCode (http://forum.dwg.ru/showpost.php?p=1754063&postcount=467)
;;;   3.9    Изменения BGLAYDEL. Слои удаляются командой _-LAYDEL
;;;   3.10   Добавлена команда BGCOLORCMD
;;;;  3.11   Изменения BGLAYDEL
;;;;  3.12   Изменения в функции mip_MTEXT_Unformat (VVA 2021-12-24)
;;;;          https://forum.dwg.ru/showthread.php?p=1975506#post1975506
;;;;   3.12a   Изменения в функции bg:hatch-delete-form-Block (VVA 2022-05-13)
;;;;            https://forum.dwg.ru/showpost.php?p=1991289&postcount=624

Полезные ссылки
C2L - Color to Layer или еще здесь
COLORFL - Color From Layer
PFL - Properties From Layer

Вложения
Тип файла: zip bgtools 3.3.zip (53.6 Кб, 8685 просмотров)
Тип файла: zip bgtools3.13b.zip (57.3 Кб, 1351 просмотров)

__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 29.01.2024 в 16:36. Причина: См историю изменений
Просмотров: 448559
 
Непрочитано 13.04.2011, 20:49
#2
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Эх дополнить бы еще эту подборку моим MaskSoft, но я не меценат и некогда сейчас выдерать все это из моих кодов, наполнять библиотечными функциями.
мне просто не понятно почему никому в голову не приходила идея сделать выгрузку/загрузку xref по маске описанной в текстовом объекте чертежа. Тогда можно загружать выгружать нужно количество подоснов одним кликом (реально одним). Это еще быстрее чем фильтры слоев, которые работают по маске названия слоя, только там нужно сначала выбрать фильтр, потом Ctrl+A и замораживать а потом проводить обратную процедуру. Конечно и для слоев у меня было, с них все и началось, и есть еще несколько процедур для того чтобы работа с подосновами стала еще более комфортной.
Sleekka вне форума  
 
Автор темы   Непрочитано 13.04.2011, 21:00
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Sleekka Посмотреть сообщение
и есть еще несколько процедур для того чтобы работа с подосновами стала еще более комфортной
Хотя бы озвучь что они делают
Цитата:
Сообщение от Sleekka Посмотреть сообщение
мне просто не понятно почему никому в голову не приходила идея сделать выгрузку/загрузку xref по маске описанной в текстовом объекте чертежа
Если найдешь время, то опиши поподробнее. Можно в личку. С подосновами работаем плотно, поэтому может пригодиться по работе
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.04.2011, 21:07
#4
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


"Нормализация блоков" мне не нравится принципиально. Не хочу все блоки файла нормализировать, то есть превращать их составляющие в слой 0 и так далее. Хочу нормализировать определенные блоки, по клику, а все сразу только как опцию. Среди блоков может быть целый кусок с другого чертежа, и ему "нормализация" повредит.
Vova вне форума  
 
Непрочитано 14.04.2011, 10:22
#5
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


VVA, спасибо за замечательную подборку программ!

По нормализации блоков согласен с Вовой - надо бы добавить опцию "Выбранные блоки"
Nike вне форума  
 
Непрочитано 27.04.2011, 16:49
#6
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Подписываюсь под словами Вовы и Найка.
Вовочка вне форума  
 
Непрочитано 04.05.2011, 19:50
#7
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, а как кнопка должна выглядеть чтобы в правильном порядке все выполнялось
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 04.05.2011, 19:55
#8
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


dextron3, авторы описывали порядок следования команд. И как по мне, каждый случай индивидуальный.

Цитата:
Сообщение от dextron3 Посмотреть сообщение
в правильном порядке

Цитата:
Сообщение от VVA Посмотреть сообщение
Желательно ознакомиться с указанной темой или как минимум с описанием
Вовочка вне форума  
 
Непрочитано 05.05.2011, 06:39
#9
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, Не могу найти команду которая разделяет по слоям в зависимости от цвета и толщины линий?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 05.05.2011, 12:16
#10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


нет такой команды
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.05.2011, 14:54
#11
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, а планируется?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 05.05.2011, 15:01
#12
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Нет, так как пока не понятны
Цитата:
Сообщение от dextron3 Посмотреть сообщение
зависимости от цвета и толщины линий
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.05.2011, 16:43
#13
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Задание:
Есть файл где добрый архитектор нарисовал все в нулевом или другом слое, но для красоты рисовал окна синим, двери коричневым, стены белые, мебель бордовый, ну и т.п. суть в том что в одном слое

Алгоритм:

1. Лисп проверяет наличие цветов задействованные в чертеже
2. Создает данное количество слоев с назавнием соотвествующим присвоенному цвету: red, orange, black и т.п.
3. Раскидывает все по слоям

если красным цветом нарисваны линии разной толщины то создаются слои: red020, red015 и т.п.

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


очень бы пригодилось, посоветуйтесь у вас в отделе, была бы нужная вещь для тех кто использует архитектурные чертежи, а именно овешники вкашники электрики
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 06.05.2011, 10:10
#14
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


А если цвет красный и вес поблоку?
А если цвет красный и вес послою?
А если цвет красный и вес поумолчанию?
А если цвет RGB?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.05.2011, 11:16
#15
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, поясните поподробнее

имелось ввиду red020 слой автоматически красный байлайер
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 06.05.2011, 16:03
#16
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от dextron3 Посмотреть сообщение
Есть файл где добрый архитектор нарисовал все в нулевом или другом слое, но для красоты рисовал окна синим, двери коричневым, стены белые, мебель бордовый, ну и т.п. суть в том что в одном слое
1. Вряд-ли арх красил "для красоты" Он хотел отделить одно от другого. Просто ему недостает автокадовской грамотности использовать слои. Создать лисп, который-бы вместо него чертил по-классике вряд-ли возможно. Разве что под конкретного арха, пока он не изменил свой стиль черчения. Проще ему подсказать как лучше сделать.
2. А как ты можешь править чужой файл? После этого чья фамилия будет стоять в штампе? А может, он применяет особый стиль печати, учитывающий нюансы с цветом?
В статье про создание подосновы говорится как исправить сделанное архом, но при этом создается новый файл, за который его первоначальный автор уже не несет ответственности.
Vova вне форума  
 
Непрочитано 06.05.2011, 17:10
#17
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Vova, а в чем он будет новый если его просто выправить для смежных разделов
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 06.05.2011, 21:03
#18
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Если файл переделывается по технологии, описанной в статье, то хотя-бы удалением ненужной смежникам информации. Я считаю, если ты прикоснулся к моему файлу, сохранил его (даже ничего не поменяв) то я за него уже не отвечаю. По дате сохранения файла видно, что это не то, что вам передали. Когда мой файл оказывается кем-то сохрaнен после меня, всегда разыскиваю данного товарища и спрашиваю, что он в нем сделал. Как правило, отвечают что случайно нажали на Save. Но я хотя-бы бегло, перепроверяю.
Vova вне форума  
 
Непрочитано 09.05.2011, 15:35
#19
Apex-E

Руководитель
 
Регистрация: 06.07.2010
Россия, Пермь
Сообщений: 12
<phrase 1= Отправить сообщение для Apex-E с помощью Skype™


Спасибо за лисп - пригодился.
Использовал для "взрыва" блоков перед выдачей электронной версии результата работы генподрядчику (давно задумывался как не выдавать свою автоматизацию и при том, сохранить возможность подкорректировать штампы и т. п.).
Только вот, блоки созданные в СПДС 6.1.859 (ACAD 2010) не обрабатываются. Их так-то нормально взрывают штатные комманды.

Последний раз редактировалось Apex-E, 09.05.2011 в 15:46.
Apex-E вне форума  
 
Непрочитано 09.05.2011, 16:11
#20
Кулик Алексей aka kpblc
Moderator

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


СПДС GraphiCS оперирует собственными объектами, и обрабатывать их надо командами СПДС GraphiCS.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 09.05.2011, 17:50
#21
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


В геониксе есть команда для преобразования объектов геоникса в объекты Автокада. Думаю в СПДС должно быть что-то подобное
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.05.2011, 18:09
#22
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


Тут в одной теме Vova порекомендовал мне внести свои предложения/пожелания по данной теме. Я попробую.

Я сразу скажу, что саму программу не тестировал, но описание смотрел.

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

0. Я ни разу не сталкивался с проблемой нахождения объектов подосновы на листе, хотя chspace из ET никто не отменял.

1. Вручную. Открываем все слои (unlock) и той части чертежа, которая нас интесует, и морозим все выключенные слои.

2. Вручную команда wblock - это позволит сразу создать файл подложки, очищенный от всех ненужных нам неграфических объектов, и объектов на замороженных слоях, а за одно задать точку вставки.

3. Вручную.Удаляем те объекты на чертеже, которые нам не нужны - тут поле для творчества, ибо требования к подложкам разные, разные варианты создания архитектуры и т.д. Как правило, удаляются размеры, кроме осевых, удаляются пояснительные надписи на чертеже.

4. Программно. Из чертежа удаляются пустые тексты, переименовываются слои, содержащие русские буквы, файл пуржится и аудитится.

после загрузки этого http://dwg.ru/dnl/9487
код: (apel-com '(APEL-FILE-DWG_PURGE))

4. Программно.Чертеж обесцвечивается, т.е. всем объектам присваивается цвет byblock - это позволяет впоследствии задать подложке тот цвет, который необходимо, и это очень удобно, например, если надо сравнить две подложки одного этажа, выполненные в разное время. Производится это действо специальной программкой которая обрабатыват все объекты , в т.ч. внутри блоков, атрибуты, мультитексты, составные части размеров и т.д

после загрузки этого http://dwg.ru/dnl/9487
код: (apel-com '(APEL-MOD-SELSET_COLOR 0))

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

Это то как это есть у меня сейчас. не идеал, но меня это вполне устраивает, времени отнимает не много, срабатывает на большей части чертежей.

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

Предложения по программе представленой тут, и проблемы с которыми сталкиваюсь в своей методике я, возможно какие-то вопросы уже решены в программах, прошу извинить:
1. Нужна все-же одна команда а не несколько.
2. Не нужно разбивать блоки, это теоретически невозможно сделать с любыми блоками корректно, а значит станет источником проблем.
3. Есть проблема с прокси-объектами, попадающимися в чертеже, это отдельная тема, часть из них можно разбить, но не всегда.
4. Иногда в файлах попадаются wipeouts - это проблема.
5. Частенько объекты в исходнике располагаются в 3d, и это часто не удобно.
6. Типы линий, используемые архитекторами, часто созданы некорректно, либо неверно задан их масштаб, это часто бывает проблемой.
7. Огромное количество объектов,многократное наслоение, излишняя детализация, это часто очень проблематично исправить.
8. Области очень частой штриховки либо заливка - можно решить программным удалением, но часто необходимы контуры, значит нужно обрабатывать такие области. Это же касается толстых полилиний.
9. Мультилинии - теоретически невозможно обрабатывать, только разбивать.
10. Шрифты, не найденные, слишком тяжелые, или слишком выделяющиеся - не всегда нормальный результат при простой замене, нужно смотреть вручную.
__________________
apel.fas
Apelsinov вне форума  
 
Непрочитано 12.05.2011, 09:41
#23
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


VVA, а предварительный выбор для нормализации блоков будете делать? Спасибо
Вовочка вне форума  
 
Автор темы   Непрочитано 12.05.2011, 09:56
1 | #24
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Буду, и наверное сделаю диалог для выбора опций, но позднее
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.05.2011, 03:35
#25
Krovlaf

геология, геодезия
 
Регистрация: 29.05.2009
Хабаровск
Сообщений: 185


А есть к функциям bgtools готовые иконки для кнопок?
Krovlaf вне форума  
 
Автор темы   Непрочитано 13.05.2011, 09:49
#26
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


пока нет
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.05.2011, 15:54
#27
Krovlaf

геология, геодезия
 
Регистрация: 29.05.2009
Хабаровск
Сообщений: 185


Можно конкурс объявить на создание лучшего тулбара...
Krovlaf вне форума  
 
Непрочитано 23.05.2011, 21:16
#28
Oliver_88

"ценный кадр"
 
Регистрация: 02.12.2010
Сообщений: 115
<phrase 1=


Скачал ради интереса попробовать. Теперь по мере надобности буду пользоваться. BGBLEXP хорошо работает. А BGCOLOR меняет цвет только части объектов и выдает ошибку:no function definition: LIB:MASSOC.
Oliver_88 вне форума  
 
Автор темы   Непрочитано 24.05.2011, 10:08
#29
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Oliver_88, Спасибо за дефектацию. Исправил #1
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.05.2011, 19:29
#30
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, а будет удобный тулбар?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 01.06.2011, 16:47
#31
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


VVA, При взрыве
Команда: BGBLEXP
Взрываю дин блок на котором имеется маскировка, поверх маскировки наложеный атрибут с текстом.
При разбивке маскировка накладывается поверх текста. Должно быть наобород. Текст, под текстом маскировка.
Есть решение. Все что записанно в атрибутах заного прописывается поверх маскировки. Как то так.
А в общем прога по взрыву отличная
Eddicordo вне форума  
 
Автор темы   Непрочитано 01.06.2011, 18:22
#32
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Файлик к студию
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.06.2011, 14:35
#33
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


VVA,
Звиняйте что долго не отвечал.
Вот блок
Вложения
Тип файла: dwg
DWG 2004
Чертеж3.dwg (47.7 Кб, 5528 просмотров)
Eddicordo вне форума  
 
Автор темы   Непрочитано 03.06.2011, 09:29
#34
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Eddicordo, Если взорвать блок просто explode, то атрибут также уйдет вниз. Поэтому в bgblexp варианта выхода не вижу. Могу предложить это Send to back все заливки во всех блоках Наверное включу в этот сборник
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.06.2011, 15:03
#35
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


VVA,
Вот я и говорю что есть вариант выполнения взрыва уважаемым Frigate учасника форума. Он реализовал взрыв таким образом.
1) Сначала взрывает сам блок.
2) Запоминает всю запись в атрибутах.
3) Программо вставляет на места атрибутов text на передний план.

Цитата:
Сообщение от VVA Посмотреть сообщение
Могу предложить это Send to back все заливки во всех блоках Наверное включу в этот сборник
Хотя может твой вариант будет более корректный.
Ждем обновления сборника
Eddicordo вне форума  
 
Непрочитано 09.06.2011, 15:20
#36
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Не ожидал, что вот это:
Код:
[Выделить все]
BGBLFIX - Нормализация блоков
будет размеры тоже обрабатывать.
Причем, после обработки они изменили цвет, но если их пошевелить - снова возвращали себе исходный.
Лог:
Код:
[Выделить все]
Command: BGBLFIX
 
Нормализовать в блоке [Типлиний/Веслиний/Цвет/ВСЕ] <ВСЕ> :
 
Содержимое блока изменить на [поСлою/поБлоку] <поБлоку>:
 
Изменить слой примитивов на 0? [Yes/No] <No>:
Regenerating model.
 
Command: _.Redraw
Command:
Изменено 2 блоков
Вложения
Тип файла: dwg
DWG 2004
BG_Dimension.dwg (37.8 Кб, 5507 просмотров)

Последний раз редактировалось Do$, 09.06.2011 в 16:52.
Do$ вне форума  
 
Автор темы   Непрочитано 17.06.2011, 21:12
#37
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Eddicordo Посмотреть сообщение
Вот я и говорю что есть вариант выполнения взрыва уважаемым Frigate учасника форума. Он реализовал взрыв таким образо
Пробуй версию 2.10
Do$, Размеры представляют из себя анонимные *DNNN блоки. Поэтому так ипроисходит. После отпуска планирую переписать BGBLFIX, тогда исключу и размеры
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.07.2011, 14:33
#38
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


VVA, подборка команд просто незаменимая, огромное спасибо!
часто пользуюсь BGRGB2ACI, сейчас понадобилось наоборот поменять в блоках цвет ACI на RGB (нужно заменить цвет red на 255,0,0)
можете добавить в этот сборник?
ASLYS вне форума  
 
Непрочитано 29.07.2011, 02:00
#39
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


VVA,
Здравствуй.
Короче обнаружил глюк взрыва дин блока в котором присутствует атрибут.
Если в атрибуте прописано что то типа "метр в кубе" или "в квадрате", то при взрыве вместо символа "м3" (в кубе) пишется квадратик или вопросительный знак.
И это не есть хорошо. Поскольку программа удобна для взрыва всего что есть на чертеже, а как правило без верхнего индекса не обойтись. Либо просматривай что взрываешь и после взрыва проверяй все ли отлично взорвал, и корректируй вручную все верхние индексы
Eddicordo вне форума  
 
Автор темы   Непрочитано 29.07.2011, 11:12
#40
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Eddicordo Файлик приложи
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.08.2011, 18:00
#41
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,783
Отправить сообщение для ssn с помощью Skype™


а случаем нет такой проги, которая действовала наподобие MERGE, только с сохранением цвета примитивов.
т.е. есть два слоя, на каждом примитивы с цветом по слою
допустим хочу все это дело собрать на один слой (допустим третий), но что бы объёкты каждого из слоёв остались прежнего цвета, только конечно получится что цвет назначен явно.
это про те же подосновы. если хочется сохранить разноцветность чертежа, но все разместить на одном слое (да и управляемость сохранится хоть как то).

PS^ если цвет задан явно, то впринципе и MERGE не меняет цветсти... значит надо просто задать всем примитивам цвета явно.

Последний раз редактировалось ssn, 02.08.2011 в 18:13.
ssn вне форума  
 
Автор темы   Непрочитано 02.08.2011, 18:13
#42
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


ssn,
1. Нужен Лисп для перевода цвета объекта пост #4
2. MERGE
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.08.2011, 18:14
#43
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,783
Отправить сообщение для ssn с помощью Skype™


спасибо.
оперативненько однако....
ssn вне форума  
 
Непрочитано 12.08.2011, 12:38
#44
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,783
Отправить сообщение для ssn с помощью Skype™


а нельзя ли лисп из поста 42 немного откоректировать, что бы была возможность сразу при переопределении параметров цвета, тощины и прочего ещё и переносить объект на определённый слой (который можно было бы выбрать на чертеже допустим)
если выбор примитива есть - все объекты на этот слой, если выбор пустой - просто переназначение свойств...
получится почти команда MERGE...
В идеале это бы конечно срастить эти две команды в одну. просто когда очень много слоёв команда MERGE тоже запарая (выбор каждого слоя отдельно)
ssn вне форума  
 
Непрочитано 19.08.2011, 09:59
#45
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


Всем привет
VVA,
Звиняй что так долго проподал.
Выкладываю файлик с блоком где при взрыве не корректно взрываются символы с верним и нижним индексами
Вложения
Тип файла: dwg
DWG 2004
Ошибка взрыва.dwg (48.8 Кб, 4361 просмотров)
Eddicordo вне форума  
 
Непрочитано 05.10.2011, 18:46
#46
shartal


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


При наличии в блоке маскировки, после расчленения любой из указанных команд, меняется произвольным образом порядок прорисовки- часто она вылазит на верх. И если в чертеже несколько блоков перекрывающих друг друга, после расчленения предстоит невероятная работа по раскладке всего по порядку. Самое странное, вставки одного и того же блока расчленяются по разному.
shartal вне форума  
 
Автор темы   Непрочитано 05.10.2011, 18:56
#47
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


shartal, Выложи пример файла
Eddicordo, Верхние и нижние индексы починил. Пока не выкладываю, переделываю FixBlok. Диалог готов, осталось код немного доработать
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.10.2011, 21:10
#48
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Там некоторая смесь языков. Будет-ли в итоговой программе диалог на англ и как вызывать его на нужном языке?
Vova вне форума  
 
Автор темы   Непрочитано 05.10.2011, 22:16
#49
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Диалог будет на русском, если кодовая страница ANSI_1251, в остальных случаях английский. Смесь - чтобы прикинуть как будет смотреться диалог.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.10.2011, 10:23
#50
shartal


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


Файл с блоком. Блок несколько урезан, атрибуты решеткой, но в реальности они должны быть, и обычным burst блок нельзя обработать. После burst маскировка сохраняет положение. А вот в рекомендованом на форуме Burst Upgraded с маскировкой та же беда.
Вложения
Тип файла: dwg
DWG 2010
Чертеж2.dwg (262.2 Кб, 4358 просмотров)
shartal вне форума  
 
Непрочитано 06.10.2011, 11:22
#51
angel-fear

инженер-электрик
 
Регистрация: 21.10.2010
Краснодар
Сообщений: 134


Цитата:
Сообщение от VVA Посмотреть сообщение
А MERGE это что, простите? Где эту команду откопать?
angel-fear вне форума  
 
Автор темы   Непрочитано 06.10.2011, 12:19
#52
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от angel-fear Посмотреть сообщение
А MERGE это что, простите? Где эту команду откопать?
Имелось ввиду Layer merge
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.10.2011, 13:57
#53
angel-fear

инженер-электрик
 
Регистрация: 21.10.2010
Краснодар
Сообщений: 134


А почему эта команда (laymrg) не предлагается при выборе по TAB? По какому принципу вообще этот выбор работает?
angel-fear вне форума  
 
Автор темы   Непрочитано 06.10.2011, 16:21
#54
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


angel-fear, Ты это о чем?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.11.2011, 15:43
#55
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


VVA, здравствуйте

Команда "BGCOLORXREF", меняет цвет выбранной внешней ссылки, а как вернуть исходное состояние цвета?

Файл прилагаю, ссылка в файле "1136-11-ЭН.dwg" одноцветная, когда как исходный файл "11_02838_500_не_согл.dwg" разноцветный.
Вложения
Тип файла: zip 1136-11-ЭН.zip (465.9 Кб, 155 просмотров)
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/
Kostinok вне форума  
 
Автор темы   Непрочитано 04.11.2011, 10:37
1 | #56
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


VISRETAIN тебе в помощь
1. Установи VISRETAIN в 0
2. В диспетчере ссылок обнови ссылку
3. Установи VISRETAIN в 1
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.11.2011, 11:20
#57
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


VVA, Привет.

Цитата:
Сообщение от VVA Посмотреть сообщение
Eddicordo, Верхние и нижние индексы починил. Пока не выкладываю, переделываю FixBlok. Диалог готов, осталось код немного доработать
Не могли бы выложить исправленую версию программы с индексами? А то очень неудобно взрывать все и после отслеживать все индексы.
Благодарю. )
Eddicordo вне форума  
 
Автор темы   Непрочитано 24.11.2011, 12:04
#58
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Eddicordo,
Выложил, тестируй. Изменил команду BgBLFIX, правда толком еще не оттестировал. Так что тестируй так же
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 09.12.2011, 18:50
#59
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Обновлена до версии 2.13. Причина
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.12.2011, 17:25
#60
shartal


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


Есть маленькая просьба, нельзя ли запрос о конвертации всех полей убрать. Хочу создать пакетный файл на обработку группы dwg, и вспылающий запрос не позволяет автоматизировать это.
shartal вне форума  
 
Автор темы   Непрочитано 12.12.2011, 17:58
#61
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от shartal Посмотреть сообщение
Хочу создать пакетный файл на обработку группы dwg, и вспылающий запрос не позволяет автоматизировать это.
Вызывай так
Код:
[Выделить все]
(ConvField->Text nil)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.12.2011, 12:20
#62
shartal


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


Прошу прощения, как это в загрузке применить?
Выражение (autoload "bgtools" ' ("(ConvField->Text nil)")) не принимается.
shartal вне форума  
 
Автор темы   Непрочитано 13.12.2011, 12:36
#63
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


А как ты собирался с командами это делать?
Сделай промежуточный lsp файл или в bgtools допиши свою команду
Код:
[Выделить все]
(defun C:BGCFTALL ()(ConvField->Text nil))
и вызывай ее
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.12.2011, 13:51
#64
shartal


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


Конечно. Спасибо.
shartal вне форума  
 
Автор темы   Непрочитано 01.03.2012, 15:51
#65
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Добавилось пару команд
Цитата:
Сообщение от ASLYS Посмотреть сообщение
VVA, подборка команд просто незаменимая, огромное спасибо!
часто пользуюсь BGRGB2ACI, сейчас понадобилось наоборот поменять в блоках цвет ACI на RGB (нужно заменить цвет red на 255,0,0)
можете добавить в этот сборник?
Добавилась команда BGAll2RGB

Цитата:
Сообщение от Kostinok Посмотреть сообщение
VVA, здравствуйте

Команда "BGCOLORXREF", меняет цвет выбранной внешней ссылки, а как вернуть исходное состояние цвета?
Цитата:
BGResetXRef -Сброс настроек слоев выбранных внешних ссылок на установленные в исходном файле
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.03.2012, 13:26
#66
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


Спасибо!!!

PS: у меня блоки второго уровня, BGRGB2ACI – работает с вложенными блоками, а
BGAll2RGB меняет цвет только снаружи. Еще не удалось взорвать/переименовать вложенный анонимный блок.
Вложения
Тип файла: dwg
DWG R14
PRUEBA.dwg (257.7 Кб, 4696 просмотров)
ASLYS вне форума  
 
Автор темы   Непрочитано 02.03.2012, 18:20
#67
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Обновил до версии 2.15
BGAll2RGB - работает с вложенными блоками
U2B - переименовывает анонимный блок верхнего уровня (можно вызывать в редакторе блоков). Задачи переименовывать вложенные анонимные блоки не стояло. Оно надо?
Добавил команды копирования и переименования (BGCD и BGRB) одного из вхождений блока (включая динамические), как продолжение этой темы
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.03.2012, 12:49
#68
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


Теперь все работает, супер!

Есть одна проблема, когда в блоке меняется цвет на RGB, то меняется цвет всех элементов блока. Т.е. белый цвет тоже меняется на RGB и не печатается, а нужно поменять только красную штриховку. В моем случае нужно что-то наподобии BGCBL2, только для RGB.

u2b в редакторе блока выдает:
Comando: u2b
Select block:
New block name: 123
no function definition: TABLELIST

я для анонимных блоков использую другой лисп, но его тоже надо запускать из редактора блоков.
Вложения
Тип файла: lsp ren_ablk.lsp (1.2 Кб, 236 просмотров)
ASLYS вне форума  
 
Автор темы   Непрочитано 05.03.2012, 19:37
#69
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


ASLYS,
Обновил до 2.16
Цитата:
Сообщение от ASLYS Посмотреть сообщение
Т.е. белый цвет тоже меняется на RGB и не печатается
Внес изменения, что белый/черный (цвет 7) меняется в RGB на черный 0,0,0
Цитата:
Сообщение от ASLYS Посмотреть сообщение
В моем случае нужно что-то наподобии BGCBL2, только для RGB.
Обновил BGCBL2. Теперь можно цвета выбирать из ACI, RGB и альбомов цветов
Цитата:
Сообщение от ASLYS Посмотреть сообщение
no function definition: TABLELIST
Добавил
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.03.2012, 21:02
#70
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


То, что надо, отлично работает! Cпасибо!

PS после команды BGALL2RGB цвет 0,0,0 меняет на 76,0,0
ASLYS вне форума  
 
Непрочитано 07.03.2012, 08:25
#71
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


После команды BGBLDYN2S (преобразовывает блоки в статические) появляются описания блоков $BG$_ ........ _1... которые не удаляются.
Вопрос - так задумано или что то не так?
Jonas вне форума  
 
Автор темы   Непрочитано 07.03.2012, 09:56
#72
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


То, что появляется имя "$BG$_ ***" так и должно быть. Это имя статического блока.
Цитата:
Сообщение от Jonas Посмотреть сообщение
... которые не удаляются.
Блок не удаляется, если на него есть ссылка в модели, в листе, в описании другого блока. Специальных мер по "не удалению" блоков не предпринимается
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.03.2012, 14:45
#73
shartal


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


Заметил особенность. Команда BGBLDYN2A преобразовывает все блоки во всех пространствах и листа и модели. А команды BGBLDYNEXP1, BGBLEXP1NOATT и BGBLEXP работают с объектами только текущего пространства. Возможно ли их действие расширить на весь файл?
shartal вне форума  
 
Непрочитано 23.03.2012, 10:29
#74
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Добрый день, у меня небольшой вопрос по команде BGHATCHDEL. Задача следующая. Есть блок в котором куча ненужной штриховки. Хочется эту штриховку оттуда удалить, чтоб оставить только линии. Команда BGHATCHDEL удаляет штриховку со всего чертежа даже если сказать ей, чтоб на замороженных и заблокированных слоях ничего не трогать (слои и замораживал, и блокировал естественно). Это баг или я что-то не так делаю?
crosandr вне форума  
 
Автор темы   Непрочитано 23.03.2012, 11:16
#75
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


crosandr, Скачай последнюю (2.16) версию. BGHATCHDEL сейчас спрашивает это
Миниатюры
Нажмите на изображение для увеличения
Название: bghd.png
Просмотров: 265
Размер:	12.6 Кб
ID:	77002  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.03.2012, 11:35
#76
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Цитата:
Сообщение от VVA Посмотреть сообщение
Скачай последнюю (2.16) версию
работаю с этой версией
Цитата:
Сообщение от VVA Посмотреть сообщение
BGHATCHDEL сейчас спрашивает это
Цитата:
Сообщение от crosandr Посмотреть сообщение
Команда BGHATCHDEL удаляет штриховку со всего чертежа даже если сказать ей, чтоб на замороженных и заблокированных слоях ничего не трогать (слои и замораживал, и блокировал естественно).
так собственно об этом я и писал. Вроде и спрашиват, но удаляет во всем чертеже.
Приложил файл, в котором нужно удалить штриховку из блока test.
Вложения
Тип файла: dwg
DWG 2004
тест.dwg (109.2 Кб, 4672 просмотров)
crosandr вне форума  
 
Автор темы   Непрочитано 23.03.2012, 13:45
#77
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


crosandr,
Проверил. Все работает
Еще раз обращаю внимание, что речь идет о слоях.
У тебя в блоке TEST штриховка а 0 слое. В блоке A$C07DF5D4C на слое ZALIVKA
1. При загрузке bgtools в командной строке пишется
Цитата:
Background tools v.2.16 Наберите в командной строке:
2. Создал слой "Слой1". На нем нарисовал штриховку. Слой заблокировал.
3. Заблокировал слой "ZALIVKA"
3. Вызвал BGHATCHDEL и ответил НЕТ. Штриховка из блока TEST удалилась.
PS В будущем добавлю команду удаления штриховки их конкретного блока
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.03.2012, 13:53
#78
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Цитата:
Сообщение от VVA Посмотреть сообщение
Еще раз обращаю внимание, что речь идет о слоях.
У тебя в блоке TEST штриховка а 0 слое
все, понял, спасибо))
Переместил штриховку внутри блока на спецслой, остальные слои заблокировал и команда BGHATCHDEL удалила то, что нужно
crosandr вне форума  
 
Непрочитано 03.04.2012, 14:03
#79
Alex_80

ПГС
 
Регистрация: 24.11.2011
Сообщений: 31


На AutoCAD 2013 версия 2.10 команды BGBLDYN2A и BGBLDYN2S преобразовывают нормально. Обновил до версии 2.16. Атрибуты с полями стали ###.
BGBLDYN2A - Преобразовывает динамические блоки в анонимные
BGBLDYN2S - Преобразовывает динамические блоки в статические
Alex_80 вне форума  
 
Непрочитано 03.04.2012, 14:29
#80
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Можно ли добавить к Бэкграунду программку "Взрыва подрезаного блока". Объясню, имеем подрезанный блок. Я его взрываю, и мне вылазит весь блок, а нужно, только то что подрезано
Вовочка вне форума  
 
Автор темы   Непрочитано 03.04.2012, 15:19
#81
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Alex_80, приложи файл, проверю (правда не на 2013)
Вовочка, Именно поэтому программа игнорирует подрезанные блоки, т.к. все возможные методы (express, vla-exlpode, _explode) игнорируют при взрыве подрезку.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.04.2012, 08:58
#82
Alex_80

ПГС
 
Регистрация: 24.11.2011
Сообщений: 31


Сохранил в 2007.
Вложения
Тип файла: dwg
DWG 2007
ТО.dwg (140.3 Кб, 3921 просмотров)
Alex_80 вне форума  
 
Непрочитано 05.04.2012, 09:45
1 | #83
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от Вовочка Посмотреть сообщение
Можно ли добавить к Бэкграунду программку "Взрыва подрезаного блока". Объясню, имеем подрезанный блок. Я его взрываю, и мне вылазит весь блок, а нужно, только то что подрезано
Вовочка, попробуй так
Код:
[Выделить все]
 
; Обязательно загузить bgtools 2.16.lsp (так как в команде используются функции из этого пакета)
; Вызов: BGBLXCLIPEXP
(defun c:BGBLXCLIPEXP( / ent)
  (vl-load-com)
  ((lambda(ent actdoc)
     (vla-startundomark actdoc)
     (if (and ent
              (not (vl-catch-all-error-p ent))
              )
       ((lambda(obj)
          (if (bg:block-GetXclip (vlax-ename->vla-object obj)) ; bg:block-GetXclip из bgtools 2.16.lsp
            (bg:block-xclip-exp obj)
            (prompt "\nУказанный блок неподрезанный")
            )
          )
         (car ent)
         )
       )
     (vla-endundomark actdoc)
     )
    (vl-catch-all-apply 'entsel
                        (list "\nУкажите подрезанный блок:")
                        )
    (vla-get-activedocument (vlax-get-acad-object))
    )
  (princ)
  ); end c:BGBLXCLIPEXP

(defun bg:block-xclip-exp(blk / pline_obj)
  (if (vl-cmdf "_.xclip" blk "" "_P")
    ((lambda(pline_obj)
       ((lambda(lst_exp_obj lst_xclip point)
          (if (and lst_exp_obj
                   lst_xclip
                   (not (vl-catch-all-error-p point))
                   )
            ((lambda(is_int_point)
               ((lambda(nbr_xclip pline_trim)
                  (if nbr_xclip
                    (foreach item (mapcar 'vlax-vla-object->ename lst_exp_obj)
                      (if is_int_point
                        (if (ssmemb item nbr_xclip)
                          (entdel item)
                          )
                        (if (not (ssmemb item nbr_xclip))
                          (entdel item)
                          )
                        )
                      )
                    )
                  (apply 'vl-cmdf (append (list "_.trim" pline_obj "" "_F")
                                          ((lambda(ed_pline_trim)
                                             (append (mapcar 'cdr (vl-remove-if-not (function (lambda(x) (= (car x) 10)))
                                                                                    (entget pline_trim)
                                                                                    )
                                                             )
                                                     (list (cdr (assoc 10 ed_pline_trim)))
                                                     )
                                             )
                                            (entget pline_trim)
                                            )
                                          (list "" "")
                                          )
                         )
                  (entdel pline_trim)
                  )
                 (if is_int_point
                   (ssget "_WP" lst_xclip)
                   (ssget "_CP" lst_xclip)
                   )
                 (if (vl-cmdf "_.offset" 0.1 pline_obj point "")
                   (entlast)
                   )
                 )
               )
              ((lambda(point_obj / result)
                 (setq result (ssmemb point_obj (ssget "_CP" lst_xclip)))
                 (entdel point_obj)
                 result
                 )
                (entmakex (list '(0 . "POINT") (cons 10 point)))
                )
              )
            )
          )
         (bg:burst-list blk)
         (mapcar 'cdr (vl-remove-if-not (function (lambda(x) (= (car x) 10))) (entget pline_obj)))
         (progn
           (initget 1)
           (vl-catch-all-apply 'getpoint
                               (list "\nУкажите точку внутри или снаружи контура подрезки: ")
                               )
           )
         )
       (entdel pline_obj)
       )
      (entlast)
      )
    )
  ); end bg:block-xclip-exp
P. S. Из-за использования для расчетов графических построений, командных методов, формирования наборов (по-другому я пока не сообразил как), данный вариант команды в течении одного цикла работы обрабатывает не все блоки на чертеже, а только один, указываемым блок. К тому же необходимо будет указать какую именно часть блока оставить видимой, а какую удалить.

VVA, если сочтете возможным, такой приближенный вариант расчленения подрезанных блоков с сохранением подрезки, добавьте команду в основной пакет bgtools.
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 05.04.2012, 14:29
#84
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Супер. Только не понял. Зачем мне указывать точку внутри или снаружи. И так понятно, что человек захочет оставить то что видимо сейчас, а не инверсию. ИМХО
VVA: эта подпрограмма обязана жить в БГтулсе.
еще раз спасибо, что вы есть, товарищи программисты!!!
Вовочка вне форума  
 
Непрочитано 05.04.2012, 14:52
#85
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от Вовочка Посмотреть сообщение
Только не понял. Зачем мне указывать точку внутри или снаружи. И так понятно, что человек захочет оставить то что видимо сейчас, а не инверсию.
Вовочка, проблема в том, что это Ты глазками видишь какая часть подрезана, а программно мне не удалось это определить, поэтому и появился дополнительный запрос на точку внутри или снаружи контура
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 05.04.2012, 18:44
#86
shartal


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


BGBLXCLIPEXP работает у меня странно. Оставшиеся после нее объекты совершенно не соответствуют контуру подрезки. Что динамические блоки , что обычные. На картинке снизу блок- блок с подрезкой- после команды.
Миниатюры
Нажмите на изображение для увеличения
Название: блок.jpg
Просмотров: 154
Размер:	12.5 Кб
ID:	77901  
shartal вне форума  
 
Автор темы   Непрочитано 05.04.2012, 19:06
#87
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


TararykovDG, Спасибо, добавлю. Чуть освобожусь с работой. Так как работают командные методы с выбором линией и рамкой, то нужно будет дополнительно проверить, что полученная полилиния контура подрезки целиком видна на экране.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.04.2012, 19:43
#88
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от shartal Посмотреть сообщение
BGBLXCLIPEXP работает у меня странно. Оставшиеся после нее объекты совершенно не соответствуют контуру подрезки. Что динамические блоки , что обычные. На картинке снизу блок- блок с подрезкой- после команды.

shartal, как правильно заметил VVA, да и я сам оговаривался об этом в посте #83, в команде BGBLXCLIPEXP используются командные методы, объекты формируются набором, все это приводит к крайней неустойчивости возможного результата, но другого варианта пока нет.
P. S. и лучше вместо картинки выложи файл с блоком (желательно в версии ACAD2008 или ниже) где не верно работает команда, мне проще будет разобраться
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 08.05.2012, 12:13
#89
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Такой вопрос. Есть ли программа, которая может всю палитру и альбомы цветов перевести к номерам цветов? Почему пишу в этой ветке, приходит ко мне подоснова от архитекторов. Там условно 100 цветов АРХу мало 256 номеров цветов и он выбирает из палитры. Чертеж красивый, что сказать. Только при предпросмотре на печать (и при монохроме и при грейскейле) я имею цветной рисунок. Я от и подумал. Запускаю команду и она все цвета из палитры объектов присваивает СХОЖЫЕ (что-бы чертеж оставался красивым).
Ну и хотел спросить у VVA проверил ли он программу из поста №83 для добавления в комбанй BG?
Вовочка вне форума  
 
Непрочитано 08.05.2012, 12:24
#90
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Кто будет определять схожесть 4 миллиардов цветов с индексированными 256-ю цветами?
Многие принтеры и плоттеры можно настроить на исключительно черную печать или печать в оттенках серого в свойствах самого устройства печати.
Profan вне форума  
 
Автор темы   Непрочитано 08.05.2012, 12:59
#91
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Вовочка Посмотреть сообщение
Есть ли программа, которая может всю палитру и альбомы цветов перевести к номерам цветов?
Есть. Смотри
Цитата:
BGRGB2ACI - Изменяет цвет с RGB на ACI
Цитата:
Ну и хотел спросить у VVA проверил ли он программу из поста №83 для добавления в комбанй BG?
Пока нет. В планах после праздников 9 мая.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 09.07.2012, 14:21
#92
YRat

Support - ACD, ASD, ACA, ACM, RAC, RST
 
Регистрация: 19.10.2004
Stuttgart-Петербург
Сообщений: 238


VVA, в 7 номере журнала autocad-magazin (немецкий журнал) за 2011 год статья на 3 страницы об этой подборке программ, тогда еще версия 2.10
__________________
без DWG мы никуда - и не туда, и не сюда...
Спасибо за то, что Вы есть, коллеги ;)
YRat вне форума  
 
Автор темы   Непрочитано 09.07.2012, 15:26
#93
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


YRat, Ага. Я только свою фамилию смог прочитать :-)
http://forum.dwg.ru/showpost.php?p=804475&postcount=115
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 09.07.2012, 18:05
#94
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Искренне поздравляю. Заслужено.
Вовочка вне форума  
 
Непрочитано 09.07.2012, 21:09
#95
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Если пройтись по ссылкам 93-поста и дойти до руды, выйдем на тему Подоснова http://forum.dwg.ru/showthread.php?t...F1%ED%EE%E2%E0
Может, есть созревшие поговорить на эту тему? Все хвалят лисп от VVA, но создается впечатление что используется он для частных нужд а не для комплексного приготовления подосновы, для чего этот лисп, и создавался. Или вы до сих пор требуете от своих архов выдавать вам в кажестве подосновы вместо официального чертежа некий полупустой план с закрытыми некоторыми слоями? А они почему-то тратят свое драг. время на неоплачиваемые вами хотелки и вынуждены работать по вашей подсказке, а не как им, возможно, удобней
Vova вне форума  
 
Непрочитано 10.07.2012, 14:48
#96
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Vova, кто же против? Вопросы создаются по мере углубления в программку и если она не справляется, то ее расширяют. У меня возникли некоторые предложения, я их высказывал - пообещали после майских проверить (см. мои посты). И еще есть там подпрограмма CFT. Она убивает все поля, что не всегда хорошо. В некоторых случаях нужен выбор а не все. Спасибо.
Вовочка вне форума  
 
Непрочитано 16.07.2012, 11:15
#97
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Новый вариант команды BGBLXCLIPEXP - взорвать подрезанный блок
Код:
[Выделить все]
 
; Обязательно загрузить bgtools 2.16.lsp (так как в команде используются функции из этого пакета)
; Вызов: BGBLXCLIPEXP
(defun c:BGBLXCLIPEXP( / ent)
  (vl-load-com)
  ((lambda(ent actdoc)
     (vla-startundomark actdoc)
     (if (and ent
              (not (vl-catch-all-error-p ent))
              )
       ((lambda(obj point)
          (if (bg:block-GetXclip (vlax-ename->vla-object obj))
            (bg:block-xclip-exp obj point)
            (prompt "\nУказанный блок не подрезанный")
            )
          )
         (car ent)
         (cadr ent)
         )
       )
     (vla-endundomark actdoc)
     )
    (vl-catch-all-apply 'entsel
                        (list "\nУкажите подрезанный блок: ")
                        )
    (vla-get-activedocument (vlax-get-acad-object))
    )
  (princ)
  ); end c:BGBLXCLIPEXP

(defun bg:block-xclip-exp(blk point / pline_obj)
  (if (vl-cmdf "_.xclip" blk "" "_P")
    ((lambda(pline_obj)
       (vl-cmdf "_.zoom" "_O" pline_obj "")
       ((lambda(lst_exp_obj lst_xclip eps)
          (if (and lst_exp_obj
                   lst_xclip
                   )
            ((lambda(is_int_point)
               ((lambda(nbr_xclip pline_trim)
                  (if (and nbr_xclip pline_trim)
                    (progn
                      (foreach item (mapcar 'vlax-vla-object->ename lst_exp_obj)
                        (if is_int_point
                          (if (not (ssmemb item nbr_xclip))
                            (entdel item)
                            )
                          (if (ssmemb item nbr_xclip)
                            (entdel item)
                            )
                          )
                        )
                      (apply 'vl-cmdf (append (list "_.trim" pline_obj "" "_F")
                                              ((lambda(ed_pline_trim)
                                                 (append (mapcar 'cdr (vl-remove-if-not (function (lambda(x) (= (car x) 10)))
                                                                                        ed_pline_trim
                                                                                        )
                                                                 )
                                                         (list (cdr (assoc 10 ed_pline_trim)))
                                                         )
                                                 )
                                                (entget pline_trim)
                                                )
                                              (list "" "")
                                              )
                             )
                      (entdel pline_trim)
                      )
                    )
                  (vl-cmdf "_.zoom" "_P")
                  )
                 (if is_int_point
                   (ssget "_CP" lst_xclip)
                   (ssget "_WP" lst_xclip)
                   )
                 ((lambda(reverse-point)
                    (if reverse-point
                      (if (vl-cmdf "_.offset" eps pline_obj (get-reverse-point point pline_obj 0.1) "")
                        (entlast)
                        )
                      )
                    )
                   (get-reverse-point point pline_obj 0.1)
                   )
                 )
               )
              ((lambda(point_obj / result)
                 (setq result (ssmemb point_obj (ssget "_CP" lst_xclip)))
                 (entdel point_obj)
                 result
                 )
                (entmakex (list '(0 . "POINT") (cons 10 point)))
                )
              )
            )
          )
         (bg:burst-list blk)
         (mapcar 'cdr (vl-remove-if-not (function (lambda(x) (= (car x) 10))) (entget pline_obj)))
         (min 0.1 (* (getvar 'viewsize) 0.01))
         )
       (entdel pline_obj)
       (vl-cmdf "_.zoom" "_P")
       )
      (entlast)
      )
    )
  ); end bg:block-xclip-exp

(defun get-reverse-point(pt obj e / )
  ((lambda(cl_pt)
     (if cl_pt
       ((lambda(param_cl_pt end_param)
          (if param_cl_pt
            ((lambda(p1 p2)
               (if (not p1) (setq p1 (vlax-curve-getPointAtParam obj e)))
               (if (not p2) (setq p2 (vlax-curve-getPointAtParam obj (- end_param e))))
               ((lambda(c_p)
                  (polar pt (angle pt c_p) (+ (distance pt c_p) e))
                  )
                 (polar p1 (angle p1 p2) (* (distance p1 p2) 0.5))
                 )
               )
              (vlax-curve-getPointAtParam obj (+ param_cl_pt e))
              (vlax-curve-getPointAtParam obj (- param_cl_pt e))
              )
            )
          )
         (vlax-curve-getParamAtPoint obj cl_pt)
         (vlax-curve-getEndParam obj)
         )
       )
     )
    (vlax-curve-getClosestPointTo obj pt)
    )
  ); end get-reverse-point
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 16.07.2012, 19:44
#98
gomer

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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
Обязательно загрузить bgtools 2.16.lsp
Не хочу показаться ханжой, но в обозначенном лиспе более 20 локальных определений функции *error*, по сути выполняющих одно и тоже, так почему бы не использовать хотя б одну из них, вместо громоздкой vl-catch-all-apply

Последний раз редактировалось gomer, 16.07.2012 в 19:49.
gomer вне форума  
 
Непрочитано 17.07.2012, 08:47
#99
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от gomer Посмотреть сообщение
Не хочу показаться ханжой, но в обозначенном лиспе более 20 локальных определений функции *error*, по сути выполняющих одно и тоже, так почему бы не использовать хотя б одну из них, вместо громоздкой vl-catch-all-apply
Честно говоря, я не изучал bgtools 2.16.lsp, ну а использовать для отлова ошибок vl-catch-all-apply - изначально так привык

P.S. Я тоже не хочу показаться ханжой. Специально посчитал в bgtools 2.16.lsp количество локальных определений функции *error* - их ровно 15
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 21.07.2012, 22:10
#100
gomer

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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
их ровно 15
ой,и вправду, я вот хотел менюшку выложить для сего лиспа, но руки не доходят...
gomer вне форума  
 
Автор темы   Непрочитано 23.07.2012, 09:57
1 | #101
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


gomer, Рассматривай это как набор программ, собранных вместе. Собирая bgtools я использую программы разных хороших людей, пишущих на лиспе. В основном код включается "как есть". Цели перелопачивать все для придания некой единообразности не ставилось. Если на входе и на выходе меня все устраивает, то, как говорится, "не мешай машине ездить" . BGBLXCLIPEXP в следующий релиз так же будет включена как есть, вместе с ее громоздкой vl-catch-all-apply
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.07.2012, 15:20
#102
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Хорошо-бы в командах BGBLCC, BGENCC, BGCATT, BGCBL2 после первого изменения цвета для последующх по умолчанию оставался выбранный цвет. Ведь перекраска осуществляется многократно и каждый раз заново подставлять тот-же цвет стремно
Vova вне форума  
 
Автор темы   Непрочитано 30.07.2012, 16:11
#103
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Vova Посмотреть сообщение
Хорошо-бы в командах BGBLCC, BGENCC, BGCATT, BGCBL2 после первого изменения цвета для последующх по умолчанию оставался выбранный цвет.
Цитата:
Сообщение от VVA Посмотреть сообщение
BGBLXCLIPEXP в следующий релиз так же будет включена как есть
Обновил до версии 2.18
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.07.2012, 20:31
#104
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Повторюсь. Можно ли добавить в следующий релиз CFT для выбранного?
Вовочка вне форума  
 
Непрочитано 19.08.2012, 19:41
#105
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


у меня последние команды АНКНОУ
после =========================
не работают
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 20.08.2012, 09:27
#106
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


dextron3, изъясняешься как Эзоп. Перезагрузил код
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.08.2012, 18:59
#107
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, заработало, а можно макрос (типа красной кнопки или for blondy) что бы все по порядку запрашивало, а ты только успевай да - нет- отмена, а то при такой работе MS DOS напоминает
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 20.08.2012, 19:56
#108
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


dextron3, Я опять ничего не понял. Что ты хочешь чтобы по порядку запрашивало?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.08.2012, 06:13
#109
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, Тоесть:

1. Лисп запускался одной командой и все функции (а именно команды) которые выделены жирным работали по порядку автоматически одна за другой чтобы не вникать в суть процесса что там происходит но в итоге было все что надо, а именно готовая подоснова
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 21.08.2012, 18:20
#110
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


К имени команды добавь C: и возьми в скобки
Код:
[Выделить все]
(defun C:ONECOMMAND ()
(C:BGLAYDEL)
(C:BG1BLEXP)
и так далее
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.08.2012, 14:00
#111
zerg_od


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


Добрый день!
Можно ли добавить изменение цвета выборочно по слоям. По типу команды BGCOLOR - Задает выбранный цвет всем объектам. Бывает что многострочный текст под некоторым слоем имеет цвет другой в отличии от установленного цвета в слое
zerg_od вне форума  
 
Автор темы   Непрочитано 23.08.2012, 23:01
#112
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от zerg_od Посмотреть сообщение
Бывает что многострочный текст под некоторым слоем имеет цвет другой в отличии от установленного цвета в слое
Здесь есть команды для снятия форматирования текста. Тогда он будет вести себя как положено
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.08.2012, 16:22
#113
zerg_od


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Здесь есть команды для снятия форматирования текста. Тогда он будет вести себя как положено
Спасибо! Помогло
zerg_od вне форума  
 
Непрочитано 24.08.2012, 16:30
#114
zerg_od


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


ещё вопрос - при использовании команды BGBLFIX - Нормализация блоков хотелось бы, чтобы в собственных блоках заблокированные определённые слои (заблаговременно) не конвертировались в слой 0 и по типу byblock
zerg_od вне форума  
 
Непрочитано 30.08.2012, 10:23
#115
zerg_od


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


Можно сделать так, чтобы в блоке заблокированные слои не менялись на слой "0" и по типу "byblock" при использовании команды BGBLFIX
zerg_od вне форума  
 
Автор темы   Непрочитано 31.08.2012, 15:44
1 | #116
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


zerg_od, Добавил Опцию "Игнорировать заблокированные слои"
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.08.2012, 16:53
#117
zerg_od


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


Цитата:
Сообщение от VVA Посмотреть сообщение
zerg_od, Добавил Опцию "Игнорировать заблокированные слои"
спасибо
zerg_od вне форума  
 
Непрочитано 02.09.2012, 15:50
#118
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA,
1. добавьте команду чтобы все линии одной толщины делала по типу выбора цвета
2. мультилинии переводились в линии
3. мультитексты переводились в тексты и при этом не съезжали (был такой лисп)
4. Размеры в слой размеры, линии в слой линии, тексты в слой тексты, штриховка в слой штриховка
5. Также добавьте команду поиск нулевых текстов (есть такой лисп)
6. добавьте команду FLAT (обнуление Z) выделялось автоматически, ну и двойного вида
7. ну и в конце ПУРДЖЕ
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 02.09.2012, 19:49
1 | #119
Кулик Алексей aka kpblc
Moderator

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


Offtop: $5000 за каждую хотелку - и вуаля!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.09.2012, 20:39
#120
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Offtop: не для себя для народа
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 02.09.2012, 21:56
#121
Кулик Алексей aka kpblc
Moderator

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


dextron3, ни в жизнь не поверю. Часть функционала уже реализована в AutoCAD 2013, часть - другими лиспами. Остальное надо далеко не всем и далеко не всегда.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.09.2012, 10:13
#122
gomer

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


Offtop:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
$5000 за каждую хотелку
не многовато ли?

Цитата:
Сообщение от dextron3 Посмотреть сообщение
добавьте
а макросы использовать слабо? ведь по сути bgtools - программа для работы с блоками
gomer вне форума  
 
Непрочитано 22.09.2012, 16:03
#123
zerg_od


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


в версии 2.19 при использовании команды BGBLFIX не конвертирует текст в блоке с атрибутами. Проверил на версии 2.18 всё работает.
zerg_od вне форума  
 
Непрочитано 22.09.2012, 21:49
#124
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от gomer Посмотреть сообщение
ведь по сути bgtools - программа для работы с блоками
Если говорить о сути то что означают по твоему буквы BG?
Vova вне форума  
 
Непрочитано 22.09.2012, 22:02
#125
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


Цитата:
Сообщение от Vova Посмотреть сообщение
BG
Бодготовка годосновы.
Nike вне форума  
 
Непрочитано 22.09.2012, 22:32
#126
Кулик Алексей aka kpblc
Moderator

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


BackGround - знакомое буквосочетание?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.09.2012, 07:15
#127
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Да, этот лисп сделан для приготовления подосновы (background) из архитектурного чертежа и руками смежника. Предполагается что архи делают как умеют, никто на них не давит и не заставляет делать чтобы удобнее было не автору чертежа, а смежнику: закрыл "ненужные" слои, перекрасил и все. Поскольку встречается засилие блоков, да еще вложенных, с атрибутами, сделанных не в нуле и не послою-поблоку и с другими прибабахами в программе большое внимание уделено блокам. Насколько я знаю у вас по-другому. Даже заставляете архов передавать вам готовые подосновы. У нас это нонсенс. Мы получаем от архов их произведение и никому не приходит в голову заставлять их менять манеру черчения. А попробовали-бы-нас бысто поставили бы на место. Потому что архитекторы-главные. Это они дают нам, смежникам работу а не мы им.
Vova вне форума  
 
Автор темы   Непрочитано 23.09.2012, 15:48
#128
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


zerg_od, выложи пример
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 24.09.2012, 19:31
#129
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от zerg_od Посмотреть сообщение
в версии 2.19 при использовании команды BGBLFIX не конвертирует текст в блоке с атрибутами. Проверил на версии 2.18 всё работает.
Был глюк. Обновил до 2.20 Тестируй
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.09.2012, 20:39
#130
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


В моем 102 содержалась просьба оставлять цвет по умолчанию в соответствии с последним выбранным. Это сделано, стало удобней. А еще удобней стало бы если вместо ОК, подтверждающего цвет можно было нажать клавишу ПРОБЕЛ. У нас так сделано по другим лиспам, где подтверждение последнего выбора осуществляется таким образом. Особенно это актуально при работе с двумя экранами поскольку диалоговое окно норовит ускакать на другой экран
Vova вне форума  
 
Непрочитано 25.09.2012, 19:11
#131
zerg_od


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Был глюк. Обновил до 2.20 Тестируй
всё работает, СПАСИБО!
zerg_od вне форума  
 
Непрочитано 25.09.2012, 23:11
#132
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


1. Уточнаю свой 130. Клавиша ПРОБЕЛ должна не заменять, а дублировать ОК.
2. BGBLFIX. Обращаем внимание на тип линии, который можно сделать Byblock. Это означает что блок можно по желанию сделать, например, пунктирным. Но если блок небольшой по размерам (а таковыми являются многие символы) то пунктира не получится. Надо в редакторе блоков свойствами поменять его элементам масштаб типа линии, сделав его меньше единицы. А насколько-путем экспериментов. Предлагаю в диалоговое окно добавить выбор масштаба типов линии, например 0.8, 0.6, 0.4, 0.2, 0.1. Если этого недостаточно остальное придется подбирать вручную
Vova вне форума  
 
Непрочитано 28.09.2012, 22:13
#133
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Ну и опять по команде BGBLFIX. Будет-ли полезно добавить в диал. окно еще два баксика с птичками по-умолчанию? Scale uniformly и Allow exploding. Все-таки большинство блоков это должны позволять. А кому не надо-просто уберут птички
Vova вне форума  
 
Автор темы   Непрочитано 28.09.2012, 22:35
#134
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Vova, Спасибо. #132 и #133 возьму на заметку. Пока собираюсь в Москву на Autodesk University. По приезду постараюсь сделать. По поводу п.1 из #130 к сожалению ничего не получится, т.к. цвет в диалоге запрашивается функцией лиспа
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.10.2012, 18:28
#135
Anelya


 
Регистрация: 01.12.2009
Сообщений: 22
<phrase 1=


мерсишки за такие полезные команды ) в частности за "Удаление выключенных и замороженных слоев с примитивами"
) утащила,с благодарностями,себе )
Anelya вне форума  
 
Непрочитано 16.10.2012, 17:25
#136
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


При применении "U2BM - преобразовать UNNAMED в блок множественный выбор", эти блоки меняют свое положение.
Как-то исправимо, чтобы оставались на месте?
Файл с подобными блоками прикладываю.
Вложения
Тип файла: dwg
DWG 2004
блоки_фонари.dwg (168.9 Кб, 5098 просмотров)
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 16.10.2012, 19:21
1 | #137
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Vova Посмотреть сообщение
Ну и опять по команде BGBLFIX. Будет-ли полезно добавить в диал. окно еще два баксика с птичками по-умолчанию? Scale uniformly и Allow exploding. Все-таки большинство блоков это должны позволять. А кому не надо-просто уберут птички
Обновил до версии 2.22
По поводу Scale uniformly: Если блок встречается в описании другого блока и опция включена, то для него устанавливается масштаб по X,Y,Z = 1 Может опцию назвать Scale Uniformly=1?
>АлексЮстасу
В твоих блоках 210 поле (Normal) отличное от 0,0,1
Цитата:
Выберите объект: ((-1 . <Имя объекта: 7ef05060>) (0 . "INSERT") (330 . <Имя
объекта: 7ef01cf8>) (5 . "4E4") (100 . "AcDbEntity") (67 . 0) (410 . "Model")
(8 . "Drugie") (100 . "AcDbBlockReference") (2 . "*U15") (10 -332.358 705.158
-213.732) (41 . 1.00004) (42 . 1.00004) (43 . 1.00004) (50 . 3.02495) (70 . 0)
(71 . 0) (44 . 0.0) (45 . 0.0) (210 -0.497366 -0.131769 0.857476))
Пробуй
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.10.2012, 19:49
#138
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от VVA Посмотреть сообщение
Обновил до версии 2.22
По поводу Scale uniformly: Если блок встречается в описании другого блока и опция включена, то для него устанавливается масштаб по X,Y,Z = 1 Может опцию назвать Scale Uniformly=1?
>АлексЮстасу
В твоих блоках 210 поле (Normal) отличное от 0,0,1
Пробуй

Теперь остаются на местах! Это совсем не "мои" блоки - помощники изо всех сил стараются...
От них еще приходят одинаковые именованные блоки, но с припиской в названии "_1", "_2"...

Вопрос о подобных блоках: можно ли находить все блоки с разными именами, но с одинаковым внутренним описанием, и давать одно имя? Чтобы выделять все по одному имени, что-то делать с такими пачкой. Иначе разбираться с каждым отдельно тяжко. Например, нужно содержимое всех подобных блоков заменить на 3Д тела.

Последний раз редактировалось АлексЮстасу, 16.10.2012 в 20:13.
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 17.10.2012, 10:14
#139
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
т них еще приходят одинаковые именованные блоки, но с припиской в названии "_1", "_2"..
Можно поискать блоки по маске и последовательно применить _blockreplace из ET
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 09.11.2012, 16:05
#140
Vombat

HVAC (ОВК)
 
Регистрация: 08.10.2005
Ukraine, L'viv
Сообщений: 822


Здравствуйте
Цитата:
Сообщение от VVA Посмотреть сообщение
Обновил до версии 2.22
не получилось применить опцию Разрешить расчленение как в динамическом так и в статическом блоке
Может я что то не так делаю?
Файл прилагается
Спасибо
Миниатюры
Нажмите на изображение для увеличения
Название: bgtools_BGBLFIX.jpg
Просмотров: 121
Размер:	115.3 Кб
ID:	90119  
Вложения
Тип файла: dwg
DWG 2004
bgtools 2.2b_test.dwg (59.1 Кб, 4737 просмотров)
Vombat вне форума  
 
Непрочитано 13.11.2012, 11:19
#141
zvyagaaa


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


Добрый день. Можете ли добавить функцию типа BGCOLOR - только что-то вроде BGLNEWEITH - чтобы менялись толщины на подоснове на заданные. Например, я делаю в подоснове толщины линий, равные 0. А в совокупности с BGCOLOR=8 вообще получается отлично!
zvyagaaa вне форума  
 
Автор темы   Непрочитано 14.11.2012, 15:49
#142
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


zvyagaaa, Уже есть штатная команда _setbylayer. Выставь в настройках вес "послою", а слоям задай нужный тебе
>Vombat
Цитата:
не получилось применить опцию Разрешить расчленение как в динамическом так и в статическом блоке
спасибо за дефектацию. Проверю чуть позже. Пока занят
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.11.2012, 11:06
#143
bibleo


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


здраствуйте. В описании написано:
Код:
[Выделить все]
BGBLCC - Изменяет цвет выбранных блоков
однако, то что я выбираю до вызова команды никак не участвует. для того, чтобы изменить цвет в нескольких блоках мне нужно для каждого блока заново запускать команду. это так и должно быть?
С командной строки никак нельзя управлять параметрами команды?
Поясню. Мне нужно на кнопку поставить команду, чтобы она меняла цвет всего текста в блоке, что имеет цвет "по слою" на "по блоку" и вторую кнопку, которая делает обратно. Если в рамках данного набора команд не реализовать, то подскажите, пожалуйста, как это можно сделать.
bibleo вне форума  
 
Непрочитано 28.11.2012, 19:10
#144
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


Можно ли в команду "BGBLDYN2S" добавить функцию именования вновь созданного блока по имени свойства видимости динамического?
Вовочка вне форума  
 
Непрочитано 05.12.2012, 16:49
#145
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Здравствуйте! Возможно ли добавление к команде BGCOLOR для изменения цвета только выбранных объектов, не только блоков?
roaa вне форума  
 
Непрочитано 10.12.2012, 16:38
#146
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


VVA, Здравствуй.
Обнаружил корявость команды
BGCFT - Конвертирует все поля в обычный текст
Если на чертеже присутствует таблица, то при конвертации всех полей в обычный текст в таблицах меняется шрифт (особенно если таблица выполнена в стиле СТАНДАРТ). Есть предложение конвертировать не все поля на чертеже, а методом выделения.
Аналогично команде
BGBLEXP - Взрывает блок и все блоки, входящие в него, превращая видимые атрибуты в текст
Eddicordo вне форума  
 
Непрочитано 18.12.2012, 06:35
#147
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


Eddicordo, Из этого набора данной командой не пользовался. Есть отдельно написанная прога, вроде автор тоже VVA. Там все нормально конвертит, и есть возможность выбора: либо конвертить все (CFT) либо по выбору (CFTSEL).
Вложения
Тип файла: lsp Field2text.lsp (5.7 Кб, 118 просмотров)
Astartes вне форума  
 
Непрочитано 04.01.2013, 18:26
#148
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


Astartes, Возможно Вы и правы, что данное вложение работает корректно. Идея не в этом. Идея первоначальная см. первый пост "LISP. Подготовка подосновы".
Тоесть все изменения Господин VVA вносит в один лисп.
Но спасибо за смышленость )
Eddicordo вне форума  
 
Непрочитано 01.02.2013, 15:30 BGBLXCLIPEXP
#149
makeme


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


VVA, доброго времени суток!

Выражаю искреннюю благодарность за бескорыстную работу, подборка очень помогает!

Очень хотелось бы развития команды BGBLXCLIPEXP.

На данный момент команда работает корректно, но только в том случае если взрываемый блок не лежит "над" или "под" другими объектами,
если говорить точно, то всё что попадает на линию контура обрезки блока тоже обрезается.

Попробуйте взорвать командой BGBLXCLIPEXP блок
в приложенном файле и посмотрите что станет с полилинией пересекающей блок.

Короче, на данный момент команда на практике полезна только если отодвигать подрезанные блоки "в сторонку" там взрывать и возвращать результат обратно.
Иначе, блоки режут всё что попадает на их контур и получается неправда.

Можно ли это как-то исправить?
Вложения
Тип файла: dwg
DWG 2010
BGBLXCLIPEXP_Test01.dwg (263.1 Кб, 5186 просмотров)
makeme вне форума  
 
Непрочитано 08.04.2013, 16:20
#150
Диммм

Инженер
 
Регистрация: 13.03.2013
Сообщений: 28


Помогите,не работают команды BGRB и BGCB, пишет не верный тип аргумента
Диммм вне форума  
 
Непрочитано 08.04.2013, 16:54
#151
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


Цитата:
Сообщение от Диммм Посмотреть сообщение
не работают команды BGRB и BGCB, пишет не верный тип аргумента
А у меня:
Цитата:
Команда: BGCB
** Error: слишком много аргументов **
Команда:
Команда: BGRB
** Error: слишком много аргументов **
Nike вне форума  
 
Автор темы   Непрочитано 08.04.2013, 23:22
#152
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Проверю, но уже завтра
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 10.04.2013, 19:01
#153
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Диммм Посмотреть сообщение
Помогите,не работают команды BGRB и BGCB, пишет не верный тип аргумента
Цитата:
Сообщение от makeme Посмотреть сообщение
Короче, на данный момент команда на практике полезна только если отодвигать подрезанные блоки "в сторонку" там взрывать и возвращать результат обратно.
Иначе, блоки режут всё что попадает на их контур и получается неправда.

Можно ли это как-то исправить?
Тестируйте. Выложил версию 2.23
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 11.04.2013, 17:00 Help>
#154
glyuck1


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


Странный день.... Проблема с блоком (или блоками). Ради интереса скачивал файлы с форума (пробовал "взрывать" чужие) и все получалось. Значит дело все таки в кривом подходе с моей стороны.... Подскажите пожалуйста, направления... Попробуйте взорвать. Исходник мне этот не обязателен. Просто у меня куча проектов в таком формате.
Вложения
Тип файла: dwg
DWG 2010
Nuzna_pomosh.dwg (202.4 Кб, 4739 просмотров)
glyuck1 вне форума  
 
Непрочитано 12.04.2013, 10:23 безымянный блок
#155
-MonaX-


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


Уважаемые, доброго времени суток!
Помогите плиз с очередным файлом, у меня команды не работают.
Lisp подгружается нормально, а потом выдает такую ошибку:

"no function definition: VLAX-GET-ACAD-OBJECT; error: An error has occurred
inside the *error* functionno function definition: VLA-ENDUNDOMARK"

не очень понимаю, что он от меня хочет.

если не сложно, разбейте пожалуйста файлик.

Заранее благодарен.
Вложения
Тип файла: dwg
DWG 2007
Help.dwg (733.3 Кб, 4690 просмотров)
-MonaX- вне форума  
 
Непрочитано 26.04.2013, 12:04
#156
AntonFox

КИП, проектировщик
 
Регистрация: 02.04.2012
Самара
Сообщений: 53


Доброго времени суток, уважаемый ALL!
Лисп не знаю, сам иногда пишу на ВБА мелкие проги. Уж не знаю поможет или нет мое сообщение, может кого на мысль наведет интересную или еще что.
Работаю и с генпланом и с монтажными чертежами (я КИПовец). Народ у нас по большей части "дикий" и про слои не знает, посему не редкость примитив красного цвета на слое "БЕЛОЕ" и т.п. Генплан вообще имеет порой десятки слоев и цвет примитивов может быть задан и по слою, и по блоку, и напрямую указан.
Как правило мне надо всю подложку засунуть в один слой, покрасить в цвет 252 (254) и дальше уже чертить свое. Стиль печати у нас цветозависимый (зеленый - толстый, красный - средний, белый/черный и синий - тонкие, 252 и 254 - бледная подложка)
Я написал программку на ВБА:
- для всех примитивов, если цвет красный, белый, зеленый, синий, серый - на соответствующие слои.
- цвет "по блоку" для примитивов вне блоков считать как белый
- в каждом блоке провести подобную перестановку не разбивая блок, цвет выставить "по блоку" или "по слою" (по умолчанию - "по блоку" стоит)
- все что не попало под эти правила - желтым и на отдельный слой.

В итоге чаще всего получаю серую подложку с несколькими желтыми не проработанными примитивами - можно работать )))
Иногда до запуска программы выделяю все и делаю вручную серым, удаляю размеры и лишние линии (выноски и т.п.)
AntonFox вне форума  
 
Автор темы   Непрочитано 26.04.2013, 22:56
#157
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


glyuck1, Посмотри внимательно на имена блоков. Перед первым вызовом он имее имя *U47, после второго *U46, после 3 *U45. То есть похоже твой блок 47 раз сделали анонимным. Надеюсь направление куда копать понял?

*Добавлено* Я помнил, что "где-то я эту булочку видел". Нашел. Почитай посты #137 и #138 и еще здесь. Там есть пример вызова UX 50 раз подряд

-MonaX-,

Хочет он этого
Я еще раз проверил код версии 2.23 (vl-load-com) там есть. Не поленись, пожалуйста, скачать последнюю версию.
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 10.06.2013 в 22:55.
VVA вне форума  
 
Непрочитано 27.04.2013, 14:53
#158
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Небольшой вопрос. Хочется, чтобы в диалоговом окне команды BGBLFIX поо умолчанию была снята галочка "Неименованные" и так же по умолчанию были включены галочки "Игнорировать заблокированные слои", "Установить одинаковые масштабы" и "Разрешить расчленение". Какие строчки кода нужно подправить?
crosandr вне форума  
 
Автор темы   Непрочитано 29.04.2013, 16:10
1 | #159
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


crosandr,
найди в коде строчку
Код:
[Выделить все]
(setq what nil opt 3657)
замени число 3657 на 30281
Код:
[Выделить все]
(setq what nil opt 30281)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 30.04.2013, 20:35
#160
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Обновил до версии 2.24 Учел в UX "хитрости" типа многократно вложенного анонимного блока. Пример смотреть в #154 и по ссылкам в #157. В #154 есть еще одна хитрость. В него добавлена маскировка по габаритам всего блока. Долго искал ошибку в UX, пока не додумался включить контуры wipeout'a. Добавил в UX изменение порядка прорисовка для wipeout'ов "на задний план" после расчленения блока
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.05.2013, 17:25
#161
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


В приложенном файле при попытке изменить цвет примитивов, входящих в блок, команда BGBLCC выдает ошибку.
Команда BGCBL2 вообще ничего не делает. Пытался присвоить цвет 8. Использую автокад 2013 (файл в формате 2010), СПДС 8.
Что не так?
Вложения
Тип файла: dwg
DWG 2010
на форум.dwg (405.2 Кб, 5150 просмотров)
crosandr вне форума  
 
Автор темы   Непрочитано 02.05.2013, 21:26
#162
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Проблема в этом
Цитата:
((-1 . <Имя объекта: 7ffffb26c30>) (0 . "ACAD_PROXY_ENTITY") (5 . "9EB3") (102 . "{ACAD_REACTORS") (330 . <Имя объекта: 7ffffb26c80>
Примени EXPLODEALLPROXY и REMOVEALLPROXY
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.05.2013, 20:30
#163
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


А можно сделать, чтобы программа игнорировала все прокси объекты, а не вываливалась с ошибкой? Дело в том, что внутри блока много спдс-объектов и плющить их не хотелось бы. Понятно, что прокси-объекты не получат устанавливаемый цвет, но такой результат вполне бы устроил в некоторых случаях. Ну и выдавать сообщение, что не все объекты были обработаны, для получения полного результата используй EXPLODEALLPROXY и REMOVEALLPROXY.
crosandr вне форума  
 
Автор темы   Непрочитано 04.05.2013, 10:39
#164
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


crosandr, можно, но чуть позже
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 18.06.2013, 22:57
1 | #165
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Astartes Посмотреть сообщение
Eddicordo, Из этого набора данной командой не пользовался. Есть отдельно написанная прога, вроде автор тоже VVA. Там все нормально конвертит, и есть возможность выбора: либо конвертить все (CFT) либо по выбору (CFTSEL).
Цитата:
Сообщение от Eddicordo Посмотреть сообщение
Astartes, Возможно Вы и правы, что данное вложение работает корректно. Идея не в этом. Идея первоначальная см. первый пост "LISP. Подготовка подосновы".
То есть все изменения Господин VVA вносит в один лисп.
Цитата:
Сообщение от crosandr Посмотреть сообщение
А можно сделать, чтобы программа игнорировала все прокси объекты, а не вываливалась с ошибкой?
Обновил до версии 2.25 Добавил обработку прокси и BGCFTSEL
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.06.2013, 21:32
#166
adu

инженер систем безопасности
 
Регистрация: 07.10.2011
Сообщений: 33
<phrase 1=


Уважаемый VVA, недавно набрел на Вашу программу, оказалось именно то, что я давно искал. Вот только есть одна загвоздка. Возможно ли сделать так, чтобы при расчленении динамических блоков программа игнорировала включенный в блоке "запрет на расчленение" и всё равно его взрывала?
adu вне форума  
 
Автор темы   Непрочитано 27.06.2013, 00:34
#167
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от adu Посмотреть сообщение
Возможно ли сделать так, чтобы при расчленении динамических блоков программа игнорировала включенный в блоке "запрет на расчленение" и всё равно его взрывала?
Запрет для того и создавался, чтобы показывать, в том числе и программе, что можно взрывать, а что нет. Если есть такие блоки и их нужно взорвать, есть масса программ для снятия этой "галочки"
1. Из этого сборника - BGBLFIX - там есть опция "разрешить расчленение"
2. здесь http://forum.dwg.ru/showthread.php?p=548610#post548610
3. http://forums.autodesk.com/t5/Visual...e/td-p/2107647
4. http://www.theswamp.org/index.php?topic=41980.0
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.06.2013, 09:46
#168
adu

инженер систем безопасности
 
Регистрация: 07.10.2011
Сообщений: 33
<phrase 1=


Цитата:
Сообщение от VVA Посмотреть сообщение
Цитата:





Сообщение от adu


Возможно ли сделать так, чтобы при расчленении динамических блоков программа игнорировала включенный в блоке "запрет на расчленение" и всё равно его взрывала?




Запрет для того и создавался, чтобы показывать, в том числе и программе, что можно взрывать, а что нет. Если есть такие блоки и их нужно взорвать, есть масса программ для снятия этой "галочки"
1. Из этого сборника - BGBLFIX - там есть опция "разрешить расчленение"
Простите, но в моих чертежах данная опция не сработала (acad 2014 x86). Остальные операции с блоками она выполняет (перевод на нулевой слой, корректировку свойств), но вот разрешение расчленения не включает. Пробовал как на динамических блоках, так и на статических. В чём может быть проблема по-вашему?
adu вне форума  
 
Автор темы   Непрочитано 27.06.2013, 11:29
#169
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от adu Посмотреть сообщение
В чём может быть проблема по-вашему?
Например, в косяке с моей стороны. Проверить смогу через 2 недели. Пока можешь воспользоваться работающими версиями из других ссылок
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.06.2013, 11:32
#170
adu

инженер систем безопасности
 
Регистрация: 07.10.2011
Сообщений: 33
<phrase 1=


Спасибо. Очень буду ждать обновленной версии программы.
adu вне форума  
 
Автор темы   Непрочитано 17.07.2013, 19:12
#171
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от adu Посмотреть сообщение
Спасибо. Очень буду ждать обновленной версии программы.
Обновил до 2.25.1 Была описка при записи dcl файла.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.07.2013, 10:00
#172
adu

инженер систем безопасности
 
Регистрация: 07.10.2011
Сообщений: 33
<phrase 1=


Благодарю! всё прекрасно работает
adu вне форума  
 
Непрочитано 19.07.2013, 13:40
#173
L-vir

РукоВводитель
 
Регистрация: 17.09.2009
Набережные Челны
Сообщений: 173


Подскажите пожалуйста макрос для автоматического удаления "точек" и "маскировки", либо любых других примитивов. При импорте из ArchiCAD в AutoCAD много ненужного "мусора"
L-vir вне форума  
 
Непрочитано 19.07.2013, 14:27
#174
Кулик Алексей aka kpblc
Moderator

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


_.qselect и вперед
http://community.autodesk.ru/resources/autocad-kak-vypolnit-udalenie-primitivov-opredelennogo-tipa-iz-vsego-faila
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.07.2013, 15:36
#175
L-vir

РукоВводитель
 
Регистрация: 17.09.2009
Набережные Челны
Сообщений: 173


"Прилетит вдруг волшебник в Голубом вертолёте и бесплатно..." не получилось . Ну что же, и на том спасибо

ОЙ!! Не увидел сразу ссылки! Огромное спасибо теперь!
L-vir вне форума  
 
Непрочитано 19.07.2013, 15:37
1 | #176
Кулик Алексей aka kpblc
Moderator

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


L-vir, а "+" раскрывался?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.07.2013, 12:10
#177
rvv


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


Спасибо, искал средство решения конкретной задачи, нашёл в этом комплекте.
rvv вне форума  
 
Автор темы   Непрочитано 07.08.2013, 20:02
#178
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Обновил до версии 2.26 Команда BGCFT - добавлена обработка формата текста в таблице. Добавлены команды BGBLALLDYN2A и BGBLALLDYN2S.
Источник
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.09.2013, 18:11
#179
shartal


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


Добрый день. Возможно ли в эту замечательную программу, в нормализацию блоков, добавить Стиль печати? Это крайне важно при использовании именованных стилей печати.
shartal вне форума  
 
Непрочитано 18.10.2013, 10:30
#180
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Добрый день. Возможно в команду BGBLFIX (Нормализация блоков) добавить возможность смены единиц блока? Интересует в первую очередь смены единиц в безразмерные
crosandr вне форума  
 
Непрочитано 05.11.2013, 20:59 Подскажите программу
#181
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Здравствуйте! Решил написать в этой теме, дабы не засорять форум. Вопросов два:

1). Мне нужна програмка, что бы из множества слоёв можно было сделать один текущим а все остальные замороженными, выбирая конкретный объект.
У меня сейчас есть вот такая наработка:
Код:
[Выделить все]
 
;Замораживает слои по выделенным объектам
(defun c:fr ()
(command "-layer" "freeze" (cdr (assoc 8 (entget (car (entsel))))) "")
)
Но она делает ровно противоположное -)

2). Есть ли на форуме топик вида "ищу программу"? Часто нужно бывает надо найти конкретный фрагмент кода, программу. Знающие люди сразу могут подсказать, а сам искать будешь долго. Или может быть есть готовый рубрикатор? .. может быть я плохо искал -/
baaba вне форума  
 
Автор темы   Непрочитано 06.11.2013, 09:29
#182
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


baaba,
Код:
[Выделить все]
 
(defun C:FR ( / en lay)
  (and
    (setq en(car(entsel)))
    (setq lay(cdr(assoc 8(entget en))))
    (setvar "CLAYER" lay)
    (command "_.layer" "_freeze" "*" "")
    )
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.11.2013, 10:50
#183
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Спасибо большое! Работает!
baaba вне форума  
 
Непрочитано 06.11.2013, 12:47
#184
gomer

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


layiso
gomer вне форума  
 
Непрочитано 19.12.2013, 12:39
#185
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


Здравствуйте,
подскажите пожалуйста, может кто сталкивался:
1. как можно команду BGCOLORXREF модернизировать так, что бы цвет штриховок с типом SOLID оставался неизменным?
2. есть ли LISP, который "из обратного" мог бы в "покрашенной ссылке", указывая слой восстанавливать цвета примитивов по этому слою?
Заранее спасибо.
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/
Kostinok вне форума  
 
Непрочитано 19.12.2013, 17:07
#186
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от Kostinok Посмотреть сообщение
есть ли LISP, который "из обратного" мог бы в "покрашенной ссылке", указывая слой восстанавливать цвета примитивов по этому слою?
Заранее спасибо.
Если все в слое было до перекраски цветом Bylayer, то просто верни слою такой цвет
Vova вне форума  
 
Автор темы   Непрочитано 19.12.2013, 18:39
#187
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Kostinok Посмотреть сообщение
есть ли LISP, который "из обратного" мог бы в "покрашенной ссылке", указывая слой восстанавливать цвета примитивов по этому слою?
Я так понял, что штриховки в этом слое.
Здесь "прародители" команд BGCOLOR*.
В том числе ColorXREFL
Цитата:
ColorXREFL change color xref only on a current session. Objects on the locked and frozen layers are ignored
Заблокируй слой с солидами и крась ColorXREFL
PS. Наверное, нужно добавить подобные команды и к BG*?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.12.2013, 10:30
#188
Kostinok

Инженер-электрик
 
Регистрация: 13.10.2007
Калининград
Сообщений: 151


Vova, до перекраски были примитивы со сложными цветами. Нужно восстановить цвет этих примитивов.

VVA, программа bgtools отличная, такой прорыв при работе с внешними ссылками. Спасибо Вам большое за Ваш труд.
При работе с ГенПланами, естественно, что съемка является внешней ссылкой.
Я разрабатываю проект электроснабжения, и конечно к уже существующим сетям, я добавляю свои. При печати чертежей (monochrome.ctb) есть трудности их восприятия - в большом количестве серо-черных линий нельзя ничего разобрать!

Для четкости восприятия решил красить ссылку цветом 253, а в стиле monochrome присвоить этому цвету - цвет из объекта.
Если просто выполнить BGCOLORXREF , то сольются тексты на зданиях, которые штрихуются SOLID'ом, и не будет видно ни тип строения, ни номер и т.д.
Поэтому я и хотел, что бы цвет штриховок с типом SOLID оставался неизменным.

Для этого я в функции ChangeXrefAllObjectsColor из пакета bgtools убрал изменение цвета слоя примитива и добавил условие, чтобы объект HATCH игнорировался. (довольно грубо...)
Потом в функции VVA COLORFL поменял часть кода:

Код:
[Выделить все]
 (defun C:COLORFL ( / adoc blocks color ent lays)
  ;;;Color From Layer
    (setq adoc  (vla-get-activedocument (vlax-get-acad-object))
          lays  (vla-get-layers adoc)
    )
    (setvar "errno" 0)
    (vla-startundomark adoc)
    (while (and (not (vl-catch-all-error-p
                                    (setq ent (vl-catch-all-apply
                                                  (function nentsel)
                                                  '("\nSelect entity <Exit>:")
                                              )
                                    )
                                )
                           )
                           (/= 52 (getvar "errno"))
                      )
                   (if ent
                       (progn (setq ent (vlax-ename->vla-object (car ent))
                                    lay (vla-item lays (vla-get-layer ent))
                                    Color (vla-get-Color lay)                                    
                                    TrueColor (vla-get-TrueColor lay)
                              )
                              (if (= (vla-get-lock lay) :vlax-true)
                                  (progn (setq layloc (cons lay layloc))
                                         (vla-put-lock lay :vlax-false)
                                  )
                              )
;;;                              (vl-catch-all-apply (function vla-put-color) (list ent color))
                         (mapcar '(lambda (x)
                                    (vla-put-ColorMethod TrueColor acColorMethodByRGB)
                                    (vla-put-TrueColor x TrueColor))
                           (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_X" (list (cons 8 (vla-get-name lay))))))))
                           )
                              (vla-regen adoc acallviewports)
                       )
                       (princ "\nNothing selection! Try again.")
                   )
               )
               (foreach i layloc (vla-put-lock i :vlax-true))
               (vla-endundomark adoc)
    (princ)
Теперь, можно зайти в контекстное редактирование ссылки, вызвать функцию COLORFL и указывая на существующие сети, "указывая слой восстанавливать цвета примитивов по этому слою". Т.е. восстановить цвета, существующих сетей.
Теперь на чертеже все НЕ нужное - серое, цветом 253, а все нужное цветное! Чертеж стал заметно лучше читаться!

Это я все к тому, что может многие с этим сталкиваются, а так можно сделать чертеж читабельнее, и если Вы решите, что в этом есть смысл, то можно это добавить к BG*...VVA,
__________________
Можно сопротивляться вторжению армий, вторжению идей сопротивляться невозможно. /В. Гюго/
Kostinok вне форума  
 
Непрочитано 20.12.2013, 15:47
#189
Click-Clack

Молодой
 
Регистрация: 24.01.2012
Краснодар
Сообщений: 52


Подскажите пожалуйста, кто-нибудь, почему на этих блоках не работают команды UX и U2B из известного сборника BGTOOLS
Вложения
Тип файла: dwg
DWG 2000
Анонимные блоки.dwg (692.0 Кб, 3631 просмотров)
Click-Clack вне форума  
 
Автор темы   Непрочитано 20.12.2013, 16:26
1 | #190
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Click-Clack Посмотреть сообщение
Подскажите пожалуйста, кто-нибудь, почему на этих блоках не работают команды UX и U2B из известного сборника BGTOOLS
Потому что там блоки с именами *Exxx. Добавил их обработку. Обновил до версии 2.27
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.12.2013, 16:38
#191
Click-Clack

Молодой
 
Регистрация: 24.01.2012
Краснодар
Сообщений: 52


Спасибо большое
Вопрос вдогонку, как в файле выделить все анонимные блоки?
Click-Clack вне форума  
 
Непрочитано 20.12.2013, 16:58
#192
progettista


 
Регистрация: 22.05.2009
Москва
Сообщений: 210


VVA, в команнде BGResetXRef -Сброс настроек слоев выбранных внешних ссылок на установленные в исходном файле, есть несколько параметров - Выберите XRef для сброса настроек или [Несколько/Все/выбор по Имени/Настройки] <Выход> . Две буквы Н для выбора. И у меня не получилось Настройки посмотреть. Xref не сбросил параметров слоев.
progettista вне форума  
 
Непрочитано 25.12.2013, 04:47
#193
AEugen


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


VVA, возможно ли взорвать все блоки на чертеже (в том числе и в пространстве листоВ) командой BGBLEXP ?
AEugen вне форума  
 
Автор темы   Непрочитано 26.12.2013, 23:01
#194
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Нет. Только в рамках текущего пространства (модель, лист)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.02.2014, 16:46
#195
angel-fear

инженер-электрик
 
Регистрация: 21.10.2010
Краснодар
Сообщений: 134


А можно добавить команду для пакетной синхронизации блоков чертежа? Чтобы не тыкать attsync`ом в каждый?
angel-fear вне форума  
 
Непрочитано 01.02.2014, 16:57
#196
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от angel-fear Посмотреть сообщение
А можно добавить команду для пакетной синхронизации блоков чертежа? Чтобы не тыкать attsync`ом в каждый?
Только не это!
Слишком опасно
Vova вне форума  
 
Непрочитано 25.03.2014, 11:16
#197
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Модифицирую динамические блоки в статические командой BGBLDYN2S. При вставке нового статического блока в таблицу до края ячейки остается расстояние при нулевых отступах. При чем такое происходит только с квадратным блоком (см. вложение). Что тут не так?
Вложения
Тип файла: dwg
DWG 2004
new block.dwg (60.5 Кб, 2934 просмотров)
crosandr вне форума  
 
Автор темы   Непрочитано 26.03.2014, 18:36
1 | #198
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


crosandr,Если в динамическом блоке есть несколько видимостей, и Автокад создает из динамического блока статический, то в "видимой" остается текущая видимость, а остальные остаются в блоке, только свойство видимости у них отключено
Загрузи лисп в Автокад, зайди в редактор блока и выполни команду ShowEM
Код:
[Выделить все]
;;;Published MP 
;;; http://www.theswamp.org/index.php?topic=5007.15
(defun c:HideEm	(/ hideit ss i)
  (defun hideit	(ename)
    (vl-catch-all-apply
      ;;  honor locked layer status
      '
       (lambda ()
	 (vla-put-visible
	   (vlax-ename->vla-object ename)
	   :vlax-false
	 )
       )
    )
  )
  (if (setq ss (ssget))
    (repeat (setq i (sslength ss))
      (hideit
	(ssname	ss
		(setq i (1- i))
	)
      )
    )
  )
  (princ)
)
(defun c:ShowEm	(/ showit ss i)
  (defun showit	(ename)
    (vl-catch-all-apply
      ;;;  honor locked layer status
      '(lambda (/ object)
	 (vla-put-visible
	   (setq object
		  (vlax-ename->vla-object ename)
	   )
	   :vlax-true
	 )
	 (vla-update object)
       )
    )
  )
  (if (setq ss (ssget "_x" '((60 . 1))))
    (repeat (setq i (sslength ss))
      (showit
	(ssname	ss
		(setq i (1- i))
	)
      )
    )
  )
  (princ)
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.09.2014, 00:38
#199
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 805
<phrase 1= Отправить сообщение для perpetule с помощью Skype™


Как можно изменить цвет текста мультивыноски чохом для многих, если он был задан внутри редактора многострочного текста при редактировании/создании текста мультивыноски? Форум проискал нет такого лиспа. Подоснову готовят на белом, я же его органически не переношу - глаза выжигает.
__________________
tc71
perpetule вне форума  
 
Непрочитано 05.09.2014, 02:51
#200
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


perpetule, думаю, что StripMtext отсюда - самое оно.
skkkk вне форума  
 
Непрочитано 22.09.2014, 12:04
#201
_Voltron_


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


Здравствуйте!
Буквально только что познакомился с утилитами.
Отличная вещь, сильно выручает.
Полистав форум, попадались посты с обсуждением функции задания толщины линий для ссылки только в текущем чертеже по образу и подобию BGCOLORXREF.
Существует ли сейчас такая функция? Может есть отдельный лисп?
Объекты подгружаемого чертежа имеют толщины линий, отличные от "По Слою"
_Voltron_ вне форума  
 
Непрочитано 22.09.2014, 12:23
#202
VoVoRoNaLe

Конструктор
 
Регистрация: 29.10.2007
Сообщений: 157


_setbylayer

То?
VoVoRoNaLe вне форума  
 
Непрочитано 22.09.2014, 13:59
#203
_Voltron_


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


Цитата:
Сообщение от VoVoRoNaLe Посмотреть сообщение
_setbylayer

То?
Не совсем. Данная команда требует изменения исходного (подгружаемого) чертежа путем задания всем объектам свойств "По Слою".
А команда BGCOLORXREF из набора утилит не затрагивает исходный чертеж.
Или команда _setbylayer работает только в текущем сеансе?
_Voltron_ вне форума  
 
Непрочитано 22.09.2014, 16:49
#204
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


Ув. VVA!
Пожалуйста, что изменить в функции bg:block-color (BGBLCC - Изменяет цвет выбранных блоков), чтобы игнорировать, например, атрибуты и тесты (перекрашиваем всё внутри блока, кроме текстов и атрибутов)?
Nike вне форума  
 
Автор темы   Непрочитано 22.09.2014, 17:50
1 | #205
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Для атрибутов просто закоментарить кусок
Код:
[Выделить все]
;;;Íà îñíîâå Alaspher blcc encc http://forum.dwg.ru/showthread.php?t=1036
(defun bg:block-color (/ adoc blocks color ins lays ss e2)
    (setq adoc   (vla-get-activedocument (vlax-get-acad-object))
          blocks (vla-get-blocks adoc)
          lays   (vla-get-layers adoc)
          color  (cond
                   ((and (listp *BG-COLOR*)(assoc 430 *BG-COLOR*))
                    (acad_truecolordlg (assoc 430 *BG-COLOR*))
                    )
                   ((and (listp *BG-COLOR*)(assoc 420 *BG-COLOR*))
                    (acad_truecolordlg (assoc 420 *BG-COLOR*))
                    )
                   ((and (listp *BG-COLOR*)(assoc 62 *BG-COLOR*))
                    (acad_truecolordlg (assoc 62 *BG-COLOR*))
                    )
                   (t (acad_truecolordlg 256))  ;_(acad_truecolordlg (assoc 420 color))
                   )
          *BG-COLOR* color
    )
    (if color
        (progn (setvar "errno" 0)
               (vla-startundomark adoc)
               (while (and (not (vl-catch-all-error-p
                                    (setq ins (vl-catch-all-apply
                                                  (function entsel)
                                                    (list (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
                                                            "\nÂûáåðèòå áëîê <Âûõîä>:"
                                                            "\nSelect block <Exit>:")
                                                          )
                                              )
                                    )
                                )
                           )
                           (/= 52 (getvar "errno"))
                      )
                   (if ins
                       (progn
                         (setq ss (vlax-ename->vla-object (car ins)))
                              (if  (= (vla-get-objectname ss) "AcDbBlockReference")
                                  (if (vlax-property-available-p ss 'path)
                                      (princ "\nThis is external reference! Try pick other.")
                                      (progn
					(bg:layer-status-save)
					(_pl:block-color blocks ss color lays)
;;;					(if (setq ss nil
;;;                                                  ss (ssget "_X"
;;;                                                            (list
;;;                                                              (cons 2
;;;                                                                (strcat
;;;                                                                  (if (wcmatch(cdr(assoc 2 (entget(car ins)))) "`**")
;;;                                                                    "`"
;;;                                                                    ""
;;;                                                                    )
;;;                                                                  (cdr(assoc 2 (entget(car ins))))
;;;                                                                  )
;;;                                                                )
;;;                                                              (cons 66 1)
;;;                                                              (cons 410 (getvar "CTAB"))
;;;                                                              )
;;;                                                            )
;;;                                                  )
;;;					  (progn
;;;					    (foreach blk (mapcar (function vlax-ename->vla-object) (vl-remove-if (function listp)
;;;							  (mapcar (function cadr) (ssnamex ss))))
;;;					      (foreach at (vlax-invoke blk 'Getattributes)
;;;                                                (vl-catch-all-apply
;;;                                                  (function
;;;                                                    (lambda()
;;;                                                      (entmod
;;;                                                        (append
;;;                                                          (vl-remove-if '(lambda(x)(member(car x) '(62 420 430)))
;;;                                                            (entget(vlax-vla-object->ename at))
;;;                                                            )
;;;                                                          color
;;;                                                          )
;;;                                                        )
;;;                                                      )
;;;                                                    )
;;;                                                  )
;;;                                                )
;;;                                              )
;;;                                            )
;;;                                          )
                                        (bg:layer-status-restore)
                                        (vla-regen adoc acallviewports)
                                        )
                                    )
                                  (princ "\nThis isn't block! Try pick other.")
                                )
                         )
                       (princ "\nNothing selection! Try again.")
                   )
               )
               (vla-endundomark adoc)
        )
    )
    (princ)
)

Чтобы исключить тексты нужно вносить изменения в ф-цию _pl:block-color
Пока у меня большая загрузка на работе, времени нет

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от _Voltron_ Посмотреть сообщение
Существует ли сейчас такая функция? Может есть отдельный лисп?
Отдельной функции в этом сборнике не существует.
Как вариант - ссылкам задать уникальный цвет, например 151, а при печати в ctb файле этому цвету задать нужный вес линии
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.09.2014, 10:21
#206
_Voltron_


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


Спасибо. Попробую разобраться. Честно так еще не пробовал
Цитата:
Сообщение от VVA Посмотреть сообщение
Как вариант - ссылкам задать уникальный цвет, например 151, а при печати в ctb файле этому цвету задать нужный вес линии
_Voltron_ вне форума  
 
Автор темы   Непрочитано 08.10.2014, 16:59
#207
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от crosandr Посмотреть сообщение
Модифицирую динамические блоки в статические командой BGBLDYN2S. При вставке нового статического блока в таблицу до края ячейки остается расстояние при нулевых отступах. При чем такое происходит только с квадратным блоком (см. вложение). Что тут не так?
Цитата:
Сообщение от VVA Посмотреть сообщение
crosandr,Если в динамическом блоке есть несколько видимостей, и Автокад создает из динамического блока статический, то в "видимой" остается текущая видимость, а остальные остаются в блоке, только свойство видимости у них отключено
В версии 2.28 исправлен мелкий баг в команде BGCFT и добавил в функцию bg:DynToStatic удаление объектов с отключенной видимостью
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось Кулик Алексей aka kpblc, 08.10.2014 в 17:14.
VVA вне форума  
 
Непрочитано 21.10.2014, 15:31
#208
roxit85

Инженер
 
Регистрация: 29.07.2013
Москва
Сообщений: 5


Команда - BGBLCC - отличная. вот только хотелось бы еще одну что-то на подобие для следующей ситуации. Есть блок, в нем еще один блок, и название допустим у этого единого блока - СУПЕР БЛОК. Если я делаю копию блока СУПЕР БЛОК, то естественно их получается два. НО вот когда указывю командой - BGBLCC - один из блоков и меня цвет блока, второй дубликат тоже меняет цвет. А как сделать так что бы у дубликата не менялся цвет. просто на чертеже много всталвенно блоков однотипных с одним и тем же именем, а программа разом меняет их все. Как сделать так - что бы именно для выбранного меняла цвет
roxit85 вне форума  
 
Непрочитано 30.10.2014, 14:45
#209
shartal


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


После применения bgcft текст в ячейках таблицы принимает вид, заложенный в стиле ячеек. Т.е слетают изменения (высота текста, поворот текста) примененные индивидуально к ячейкам.
shartal вне форума  
 
Автор темы   Непрочитано 30.10.2014, 18:24
#210
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Обновил до версии 2.29
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.10.2014, 10:59
#211
shartal


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


И снова я. После применения bgcft, в таблице, символы метр кубический превращается в метр квадратный. Шрифт mipgost, коды символов не менялись. Меняется независимо вставлен метр куб. одним символом или двумя. За пределами таблицы, в тексте все хорошо.
shartal вне форума  
 
Автор темы   Непрочитано 31.10.2014, 12:34
#212
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


shartal, Выложи пример. BGCFT форматирование текста не трогает. По поводу #209 настройки высоты текста и поворота хранились в свойствах ячейки. Я сначала читал текст, записывал в ячейку пустую строку, потом снова записывал прочтенный текст. При записи в ячейку пустой строки и слетали изменения, примененные индивидуально к ячейкам. Я эту строчку просто закомментировал.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.10.2014, 13:51
#213
shartal


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


В файле две таблицы. В левой меняется метр. куб только в третьей снизу ячейке. В правой таблице я для пробы поместил куб. метр созданный двумя способами, тогда меняется во всех ячейках столбца Изм.
Вложения
Тип файла: dwg
DWG 2010
табл.dwg (298.9 Кб, 2518 просмотров)
shartal вне форума  
 
Автор темы   Непрочитано 06.11.2014, 17:34
1 | #214
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Обновил до версии 2.30 Проблема связана с этим vla-get-te​xtString \U+ symbols
Как решить 100% для таблиц не нашел. Пока исключил обновление ячеек, если в них не содержится полей.
Попасть на проблему можно в случае, если
1. В одной ячейке содержится и поле и текст с юникодом (\U+ ... )
2. Если значение поля совпадают
То есть если в таблице есть 2 ячейки с полями, возвращающими одинаковые значения и в этих ячейках содержится текст с юникодом (\U+ ... )
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 06.11.2014 в 22:11.
VVA вне форума  
 
Непрочитано 11.11.2014, 16:01
#215
zmejsan


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


Уважаемые авторы программы Можно преобразовать атрибуты в текст в размерах в таблицах без разрушения элемента (например как в вопросе http://forum.dwg.ru/showthread.php?p...#post1335098)? Было удобно иметь такую команду в арсенале. Спасибо!
zmejsan вне форума  
 
Автор темы   Непрочитано 13.11.2014, 17:58
1 | #216
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


zmejsan, Обновил до версии 2.31
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.11.2014, 19:32
#217
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Показалось мне, что сделать меню никто не решился. Поэтому предлагаю свой вариант:
Код:
[Выделить все]
//
//      AutoCAD menu file - bgtools.mnu
//
***MENUGROUP=bgtools
***POP1
[Подоснова]
 [->Операции с блоками]
   [Взорвать блоки, состоящие из одного примитива (возможно другого блока)]^C^C^P(if (not C:BG1BLEXP) (load "bgtools")) BG1BLEXP
   [Взорвать блок и все блоки, входящие в него, превращая видимые атрибуты в текст]^C^C^P(if (not C:BGBLEXP) (load "bgtools")) BGBLEXP
   [Взорвать блоки 1-го уровня, превращая видимые атрибуты в текст]^C^C^P(if (not C:BGBLEXP1) (load "bgtools")) BGBLEXP1
   [Взорвать динамические блоки 1-го уровня, превращая видимые атрибуты в текст]^C^C^P(if (not C:BGBLDYNEXP1) (load "bgtools")) BGBLDYNEXP1
   [Взорвать блоки 1-го уровня, у которых нет видимых атрибутов]^C^C^P(if (not C:BGBLEXP1NOATT) (load "bgtools")) BGBLEXP1NOATT
   [Показать подрезанные блоки]^C^C^P(if (not C:BGBLXCLIP) (load "bgtools")) BGBLXCLIP
   [Преобразовать динамические блоки в анонимные]^C^C^P(if (not C:BGBLDYN2A) (load "bgtools")) BGBLDYN2A
   [Преобразовать динамические блоки в статические]^C^C^P(if (not C:BGBLDYN2S) (load "bgtools")) BGBLDYN2S
   [Преобразовать ВСЕ динамические блоки в анонимные]^C^C^P(if (not C:BGBLALLDYN2A) (load "bgtools")) BGBLALLDYN2A
   [Преобразовать ВСЕ динамические блоки в статические]^C^C^P(if (not C:BGBLALLDYN2S) (load "bgtools")) BGBLALLDYN2S
   [Взорвать подрезанный блок]^C^C^P(if (not C:BGBLXCLIPEXP) (load "bgtools")) BGBLXCLIPEXP
   [Копировать одно из вхождений блока в блок с новым именем]^C^C^P(if (not C:BGCB) (load "bgtools")) BGCB
   [Переименовать одно из вхождений блока в блок с новым именем]^C^C^P(if (not C:BGRB) (load "bgtools")) BGRB
   [Преобразовать МВСТАВКУ в анонимный блок]^C^C^P(if (not C:M2U) (load "bgtools")) M2U
   [Преобразовать МВСТАВКУ в блок]^C^C^P(if (not C:M2B) (load "bgtools")) M2B
   [Преобразовать анонимный блок в блок]^C^C^P(if (not C:U2B) (load "bgtools")) U2B
   [Преобразовать анонимный блок в блок множественный выбор]^C^C^P(if (not C:U2BM) (load "bgtools")) U2BM
   [<-Взорвать анонимный блок]^C^C^P(if (not C:UX) (load "bgtools")) UX
   [--]
[->Операции с цветами]
   [Изменить цвет с RGB на ACI]^C^C^P(if (not C:BGRGB2ACI) (load "bgtools")) BGRGB2ACI
   [Изменить ACI цвет в его RGB эквивалент]^C^C^P(if (not C:BGAll2RGB) (load "bgtools")) BGAll2RGB
   [Задать выбранный цвет всем объектам]^C^C^P(if (not C:BGCOLOR) (load "bgtools")) BGCOLOR
   [Изменить цвет выбранных внешних сылок (только в текушем сеансе)]^C^C^P(if (not C:BGCOLOR) (load "bgtools")) BGCOLOR
   [Изменить цвет выбранных блоков]^C^C^P(if (not C:BGBLCC) (load "bgtools")) BGBLCC
   [Изменить цвет выбранного элемента блока]^C^C^P(if (not C:BGENCC) (load "bgtools")) BGENCC
   [Изменить цвет атрибутов выбранных блоков]^C^C^P(if (not C:BGCATT) (load "bgtools")) BGCATT
   [Изменить цвет в блоках 2 и более уровня (вложенных блоках)]^C^C^P(if (not C:BGCBL2) (load "bgtools")) BGCBL2
   [<-Нормализация блоков]^C^C^P(if (not C:BGBLFIX) (load "bgtools")) BGBLFIX
   [--]
[->Операции с слоями]
   [Удаление выключенных и замороженных слоев с примитивами]^C^C^P(if (not C:BGLAYDEL) (load "bgtools")) BGLAYDEL
   [<-Сброс настроек слоев выбранных внешних ссылок на установленные в исходном файле]^C^C^P(if (not C:BGResetXRef) (load "bgtools")) BGResetXRef
   [--]
[->Операции с полями]
   [Конвертировать все поля в обычный текст]^C^C^P(if (not C:BGCFT) (load "bgtools")) BGCFT
   [<-Конвертировать поля в обычный текст в выбранных примитивах]^C^C^P(if (not C:BGCFTSEL) (load "bgtools")) BGCFTSEL
   [--]
[Удалить штриховку]^C^C^P(if (not C:BGHATCHDEL) (load "bgtools")) BGHATCHDEL


***TOOLBARS
Ну, и содержимое файла bgtools.mnl
Код:
[Выделить все]
;;;     bgtools.MNL
(menucmd "p22=+bgtools.pop1")
(princ)

Последний раз редактировалось Profan, 13.11.2014 в 19:37. Причина: Добавление
Profan вне форума  
 
Непрочитано 13.11.2014, 22:09
#218
gomer

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


Цитата:
Сообщение от Profan Посмотреть сообщение
оказалось мне, что сделать меню никто не решился. Поэтому предлагаю свой вариант
показалось, мне просто лень было архивировать
Вложения
Тип файла: zip bgmenu.zip (3.4 Кб, 123 просмотров)
gomer вне форума  
 
Непрочитано 13.11.2014, 22:12
#219
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Давай я заархивирую.

А-а, ты уже заархивировал. А куда две трети пропало?

Последний раз редактировалось Profan, 13.11.2014 в 22:18.
Profan вне форума  
 
Непрочитано 13.11.2014, 22:23
#220
gomer

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


Цитата:
Сообщение от Profan Посмотреть сообщение
А куда две трети пропало?
Так архив битый
gomer вне форума  
 
Непрочитано 13.11.2014, 22:29
#221
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Offtop: А говорят, что за битого двух небитых дают.
Profan вне форума  
 
Непрочитано 13.11.2014, 22:41
#222
gomer

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


ну так прояви полет фантазии, то, что ты выложил конечно очень полезно, но у темных людей это не заработает или очень со скрипом
gomer вне форума  
 
Непрочитано 14.11.2014, 13:13
#223
zmejsan


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



БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ МЕРСИ!!!
zmejsan вне форума  
 
Непрочитано 27.11.2014, 10:54
#224
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Вопрос к VVA:
Программа BGHATCHDEL (удаление штриховки) удаляет любую штриховку из блоков. Как бы сделать так, чтобы штриховка удалялась по выбору.
Например, мне надо удалить только штриховку SOLID из блоков, другие типы штриховок не трогать.
Profan вне форума  
 
Автор темы   Непрочитано 28.11.2014, 08:24
1 | #225
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Profan Посмотреть сообщение
Программа BGHATCHDEL (удаление штриховки) удаляет любую штриховку из блоков. Как бы сделать так, чтобы штриховка удалялась по выбору.
Пока не придумал как сделать список всех штриховок в чертеже, кроме перебора. Пока 3 варианта в порядке моих предпочтение:
1. Написать вариант удаления штриховок SOLID
2. Перебрать все штриховки и составить список имен для выбора
3. Считать имена штриховок из *.pat файлов
В моей практике пока что так же требовалось удалять SOLID штриховки
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.12.2014, 15:41
#226
adu

инженер систем безопасности
 
Регистрация: 07.10.2011
Сообщений: 33
<phrase 1=


Уважаемый VVA!
Можно ли добавить в bgtools команду для расчленения всех таблиц на чертеже, либо поправить bgballdyn2a и bgballdyn2s так, чтоб они видели блоки вставленные в ячейку таблицы?
Все свободные дин. блоки на чертеже преобразовываются в статические либо анонимные, а те, что вставлены в ячейку таблицы игнорируются (((
Пример прилагаю.
Вложения
Тип файла: dwg
DWG 2007
Чертеж1.dwg (135.1 Кб, 2608 просмотров)

Последний раз редактировалось adu, 10.12.2014 в 15:57.
adu вне форума  
 
Непрочитано 10.12.2014, 16:49
#227
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


А чем обычное расчленение (_explode) не устраивает?
crosandr вне форума  
 
Непрочитано 10.12.2014, 16:52
#228
adu

инженер систем безопасности
 
Регистрация: 07.10.2011
Сообщений: 33
<phrase 1=


Данное действие необходимо в составе множества других. Для одного чертежа конечно можно вручную исполнить, но когда их большое количество это очень затратно по времени.
Мне необходимо задать все эти действия (в том числе и расчленение таблиц) на одну кнопку.
adu вне форума  
 
Непрочитано 12.12.2014, 20:16
#229
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Интересный случай в http://forum.dwg.ru/showthread.php?p...16#post1348616.
Анонимные блоки отметок высот (синего цвета) содержат вложенные тоже анонимные блоки. И, похоже, в каждом из них точка привязки с координатами с огромными значениями. Т.е. при разбивании или при преобразовании в именованные блоки все они отлетают на величину, равную этим значениям координат. Причем, возможно, у каждого из этих блоков отметок свои координаты точек привязки. Т.е., если все такие блоки преобразовать или все разбить, а потом сдвинуть, то они могут на свои места не сесть.

Может быть предусмотреть еще одну команду - замены координат точки привязки на 0,0?

В принципе, готов снять это предложение - анонимные блоки из той темы почему-то нормально разбиваются обычным _explode и без отлетания.
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 12.12.2014 в 20:49.
АлексЮстасу вне форума  
 
Непрочитано 25.02.2015, 17:52
#230
shartal


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


Странная вещь происходит. В чертеже есть аннотативный блок, который имеет в себе больше одного аннотативного масштаба. В блоке есть односточный и многострочный атрибуты. К чертежу применяется BGBLALLDYN2S или BGBLALLDYN2A. Блок правильно преобразовывается и отображается. После сохранения, закрытия и открытия, многострочный атрибут отображается в том масштабе в котором блок вставлялся в чертеж. Т.е. текущий масштаб на момент вставки был 1:100, блоку был добавлен масштаб 1:200, видовой экран имеет маштаб 1;200 и до закрытия все выглядит отлично. После открытия многосторочный атрибут имеет высоту под масштаб 1:100.
shartal вне форума  
 
Автор темы   Непрочитано 25.02.2015, 18:09
#231
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


shartal, Выложи пример, посмотрю, хотя идей никаких. В вышеназванных командах используются стандартные методы динамических блоков
Цитата:
Команда: (vlax-dump-Object(setq obj(vlax-ename->vla-object(car(entsel)))) t)
Выберите объект: ; IAcadBlockReference: Интерфейс AutoCAD для работы с
вхождениями блоков.
; Значения свойств:
; Application (RO) = #<VLA-OBJECT IAcadApplication 0000000140d28e28>
; EffectiveName (RO) = "MIP_LTB_AIR_DYN"
; InsertionPoint = (1683.11 1261.97 0.0)
; InsUnits (RO) = "Безразмерный"
; IsDynamicBlock (RO) = -1
; Layer = "0"
; ObjectName (RO) = "AcDbBlockReference"
….
; Поддерживаемые методы:
; ArrayPolar (3)
; ArrayRectangular (6)
; ConvertToAnonymousBlock ()
; ConvertToStaticBlock (1)
; Copy ()
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.02.2015, 10:13
#232
shartal


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


фыв орининал
фыв_ после обработки
От динамики здесь только точка вставки, но этого достаточно.
Вложения
Тип файла: dwg
DWG 2010
фыв.dwg (221.6 Кб, 1953 просмотров)
Тип файла: dwg
DWG 2007
фыв_.dwg (196.2 Кб, 1948 просмотров)

Последний раз редактировалось shartal, 26.02.2015 в 10:19.
shartal вне форума  
 
Непрочитано 05.03.2015, 10:48
#233
PsixVK


 
Регистрация: 19.10.2012
Киев
Сообщений: 748


здравствуйте!
хотел спросить возможно ли в диалоговое окно "BGBLFIX" добавить просмотр миниатюр блоков? хотя по моему это выглядит как сверхнаглость
простите если такое уже спрашивали, бегло просмотрел тему не увидел похожего вопроса
PsixVK вне форума  
 
Автор темы   Непрочитано 05.03.2015, 12:39
#234
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от PsixVK Посмотреть сообщение
хотел спросить возможно ли в диалоговое окно "BGBLFIX" добавить просмотр миниатюр блоков?
К сожалению в DCL этого нельзя. По крайней мере я не знаю как это можно сделать
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.03.2015, 15:20
#235
shartal


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


Команда BGCFT убивает текст в мультивыносках с полями. Содержимое полностью стирается.
А команда CFTAll отсюда http://forum.dwg.ru/showthread.php?t=20190&page=2 символы в вопросы превращает.
Что делать..
Вложения
Тип файла: dwg
DWG 2010
Чертеж9.dwg (194.5 Кб, 1595 просмотров)
Тип файла: dwg
DWG 2010
10.dwg (194.1 Кб, 1595 просмотров)

Последний раз редактировалось shartal, 27.03.2015 в 15:29.
shartal вне форума  
 
Автор темы   Непрочитано 27.03.2015, 23:06
#236
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Обновил до версии 2.32
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.03.2015, 10:13
#237
PsixVK


 
Регистрация: 19.10.2012
Киев
Сообщений: 748


Цитата:
Сообщение от VVA Посмотреть сообщение
Обновил до версии 2.32
а в "историю изменений" дописать?
PsixVK вне форума  
 
Непрочитано 30.03.2015, 11:00
#238
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от VVA Посмотреть сообщение
PFL - Properties From Layer
Почему-то не даёт никаких результатов...
RNB вне форума  
 
Автор темы   Непрочитано 30.03.2015, 11:35
#239
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от PsixVK Посмотреть сообщение
а в "историю изменений" дописать?
В файле есть. Добавил в #1
Цитата:
Сообщение от RNB Посмотреть сообщение
Почему-то не даёт никаких результатов

без файла помочь ничем не смогу
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.03.2015, 11:41
#240
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от VVA Посмотреть сообщение
без файла помочь ничем не смогу
Просто открываю пустой файл, рисую несколько примитивов, руками меняю свойства. Вызываю программу, ничего не меняется. Может я неправильно понял назначение лиспа? (я так понял, что меняет все свойства объектов на "по слою").
Акад 2016демо. Вин7х64
RNB вне форума  
 
Автор темы   Непрочитано 30.03.2015, 15:41
#241
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


RNB, Нет. Она явно задает примитивам свойства слоя Отрезок с цветом "послою" на слое "0" красного цвета после PFL будет красного цвета.
Цитата:
Сообщение от RNB Посмотреть сообщение
меняет все свойства объектов на "по слою"
Это делает или
Цитата:
BGCOLOR - Задает выбранный цвет всем объектам
или стандартная команда _setbylayer
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.03.2015, 06:10
#242
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от VVA Посмотреть сообщение
RNB, Нет. Она явно задает примитивам свойства слоя Отрезок с цветом "послою" на слое "0" красного цвета после PFL будет красного цвета.
Извиняюсь, затупил. Да, свой функционал она выполняет на ура.
RNB вне форума  
 
Непрочитано 02.04.2015, 11:43
#243
shartal


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


Могут ли команды BGBLALLDYN2A и BGBLALLDYN2S сохранять аннотативность блоков? Иначе это свойство теряет смысл, все блоки видны во всех разномасштабных видовых экранах.
shartal вне форума  
 
Непрочитано 12.05.2015, 11:37
#244
Walkmax


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


иногда получается так:
Код:
[Выделить все]
Команда: BGCFT

Converting Field in неверный тип аргумента: lentityp nilОшибка Automation. Неверный слой
В чём может быть причина?
Walkmax вне форума  
 
Автор темы   Непрочитано 12.05.2015, 19:30
#245
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Walkmax Посмотреть сообщение
В чём может быть причина?
Выложи файлик, в котом появляется я ошибка. А так же укажи версию и разрядность Автокада (и опрерационной системы на всякий случай)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.05.2015, 12:32
#246
kifa


 
Регистрация: 03.12.2009
Сообщений: 1,847


Цитата:
Сообщение от shartal Посмотреть сообщение
Добрый день. Возможно ли в эту замечательную программу, в нормализацию блоков, добавить Стиль печати? Это крайне важно при использовании именованных стилей печати.
а на этот вопрос до сих пор ответа нет?
kifa вне форума  
 
Автор темы   Непрочитано 13.05.2015, 18:37
#247
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от kifa Посмотреть сообщение
а на этот вопрос до сих пор ответа нет?
Скажу честно, что этот вопрос пропустил. Нужно немного подумать
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.05.2015, 19:37
#248
kifa


 
Регистрация: 03.12.2009
Сообщений: 1,847


Цитата:
Сообщение от VVA Посмотреть сообщение
Скажу честно, что этот вопрос пропустил. Нужно немного подумать
Спасибо а то сегодня возникла проблема тоже когда начал человека к цветоименованным слоям приучать )
kifa вне форума  
 
Непрочитано 14.05.2015, 11:00
#249
Walkmax


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Выложи файлик
Решение ещё не нашлось?
Walkmax вне форума  
 
Непрочитано 23.05.2015, 09:52
#250
Walkmax


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


Цитата:
Сообщение от Walkmax Посмотреть сообщение
иногда получается так:
Код:
[Выделить все]
Команда: BGCFT

Converting Field in неверный тип аргумента: lentityp nilОшибка Automation. Неверный слой
В чём может быть причина?
Так каков результат рассмотрения опытного файла, в котором команда BGCFT не работает?
Walkmax вне форума  
 
Автор темы   Непрочитано 23.05.2015, 11:46
#251
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Walkmax Посмотреть сообщение
Так каков результат рассмотрения опытного файла, в котором команда BGCFT не работает?
Так опытного файла я до сих пор и не видел?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.05.2015, 14:10
#252
Walkmax


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Так опытного файла я до сих пор и не видел?
Я в личку скинул ссылку на облако, посмотри пожалуйста
Walkmax вне форума  
 
Автор темы   Непрочитано 25.05.2015, 13:00
#253
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Walkmax Посмотреть сообщение
Я в личку скинул ссылку на облако, посмотри пожалуйста
Обновил до 2.33
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.05.2015, 17:41
#254
Walkmax


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Обновил до 2.33
Walkmax вне форума  
 
Автор темы   Непрочитано 05.06.2015, 12:40
#255
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от kifa Посмотреть сообщение
Цитата:
Сообщение от shartal
Добрый день. Возможно ли в эту замечательную программу, в нормализацию блоков, добавить Стиль печати? Это крайне важно при использовании именованных стилей печати.
а на этот вопрос до сих пор ответа нет?
Теперь ответ есть. Обновил до версии 2.34
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.06.2015, 12:45
#256
kifa


 
Регистрация: 03.12.2009
Сообщений: 1,847


Цитата:
Сообщение от VVA Посмотреть сообщение
Теперь ответ есть. Обновил до версии 2.34
Спасибо, буду тестить
kifa вне форума  
 
Непрочитано 05.06.2015, 13:27
#257
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Версии 2.32-2.34 периодически выдают подобные штуки. 2.27 работает как часы, но там неполноценный BGCFT

Команда: BGBLEXP
_.UNDO Текущие настройки: Авто = Вкл, Управление = Все, Объединить = Есть, Слой = Есть
Количество отменяемых операций или [Авто/Управление/Начало/Конец/Метка/Обратно] <1>: _Mark
Команда: _draworder
Выберите объекты: найдено: 4
Выберите объекты:
Задайте параметр перестановки [Перед объектами/За объектами/пЕредний план/зАдний план] <зАдний>: _f
Выносная линия откреплена.
Размер откреплен.
Выносная линия откреплена.
Команда: неверный тип аргумента: stringp nilВыполняется регенерация модели.



Уточнение: так происходит после выделения через Ctrl+A и последующего применения команды.

UPD. Также нашел одиночный блок, который не бьется версией 2.34, версией 2.27 - на ура. Отправил в скайп, ибо так и не понял, как к личному письму добавить вложение

Последний раз редактировалось RNB, 05.06.2015 в 13:39.
RNB вне форума  
 
Непрочитано 16.06.2015, 10:38 VVA
#258
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 805
<phrase 1= Отправить сообщение для perpetule с помощью Skype™


Возможно ли создать вариант BGBLEXP с возможностью взрывать блоки с атрибутами ( с превращением в текст), работающий в том числе с блоками с запретом расчленения, хотя включать такую функцию в готовый пакет видимо не стоит ...
Либо как вариант - новая функция делающая указанный блок взрываемым, без вызова редактора блоков.

P.S Функция делающая все блоки чертежа взрываемыми - есть, нужно именно с возможностью выбора

explodable-true.lsp
(IF (NULL C:explodable-true)(LOAD "explodable-true.lsp"))


Вопрос снимается, есть готовое решение - успешно рушит блоки и атрибуты до текста причем у блоков с запретом взрываемости.
http://www.lee-mac.com/upgradedburst.html
Миниатюры
Нажмите на изображение для увеличения
Название: Image001.png
Просмотров: 56
Размер:	3.5 Кб
ID:	151711  
Вложения
Тип файла: zip Burst_Upgraded_(Burst_without_Invisible_Attributes)_lee-mac_v1dot2_001_.zip (283.7 Кб, 55 просмотров)
__________________
tc71

Последний раз редактировалось perpetule, 16.06.2015 в 12:11.
perpetule вне форума  
 
Автор темы   Непрочитано 16.06.2015, 18:18
#259
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от perpetule Посмотреть сообщение
Либо как вариант - новая функция делающая указанный блок взрываемым, без вызова редактора блоков.

P.S Функция делающая все блоки чертежа взрываемыми - есть, нужно именно с возможностью выбора
Цитата:
BGBLFIX - Нормализация блоков
Ответы обведены рамкой
Миниатюры
Нажмите на изображение для увеличения
Название: bgblfix.png
Просмотров: 393
Размер:	110.3 Кб
ID:	151736  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.06.2015, 18:21
#260
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
U2BM - Преобразовать UNNAMED в блок множественный выбор
Подскажите пожалуйста, делаю U2BM. Всё нравится, но получается:
был один блок *U2
стало U2B-U2, U2B-U2-1, U2B-U2-2 и т д. А мне нужно что бы был один блок, U2 например. Можно как то этого достичь?
Вложения
Тип файла: dwg
DWG 2007
anonymous_blocks.dwg (85.8 Кб, 1287 просмотров)
Тип файла: dwg
DWG 2007
anonymous_blocks_afterexplode.dwg (87.6 Кб, 1282 просмотров)
baaba вне форума  
 
Непрочитано 01.07.2015, 19:05
#261
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Цитата:
Сообщение от baaba Посмотреть сообщение
Можно как то этого достичь?
Попробовал сам сварганить. Заработало:

Код:
[Выделить все]
 (defun c:anyblk ()
 (vl-load-com)
 (setq a_app  (VLAX-GET-ACAD-OBJECT)
    a_doc  (vla-get-ActiveDocument a_app)
    a_blks (vla-get-blocks a_doc)
	blk    (vla-item a_blks (cdr (assoc 2 (entget (car (entsel))))))
)
(vla-put-name blk (getstring "\nEnter new block name: " ))
)
За основу взял вот этот код:
http://adndevblog.typepad.com/autoca...sp-or-vba.html
См. defun c:ren_blk
baaba вне форума  
 
Непрочитано 01.07.2015, 20:24
#262
Кулик Алексей aka kpblc
Moderator

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


На анонимных блоках не сработает. На динамических блоках (как мне кажется) не сработает.

----- добавлено через 43 сек. -----
http://adn-cis.org/rename-anonymous-...sp-or-vba.html
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.07.2015, 07:51
#263
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Предлагаю меню для использования функций из программы BGTOOLS.
Для удобства использования я сделал для меню панельку с кнопками и перераспределил эти функции в 4 группы:
Операции с БЛоками
Операции с ЦВетом
Операции с СЛоями
Операции с ПОлями
Последняя кнопка запускает программу удаления штриховок.
Меню несколько корявое (длинноваты кнопки с названиями программ), может, кто-нибудь оптимизирует его?
Миниатюры
Нажмите на изображение для увеличения
Название: Панелька Подоснова.jpg
Просмотров: 84
Размер:	6.4 Кб
ID:	153806  
Вложения
Тип файла: rar ПОДОСНОВА.RAR (360.3 Кб, 85 просмотров)
Profan вне форума  
 
Непрочитано 29.07.2015, 16:01
#264
TAPA3


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


Первый раз здесь что-то выкладываю, так что не судите строго. Вот мой вариант. В архиве ещё парочка лиспов для редактирования блоков.

Поправил!!!
Миниатюры
Нажмите на изображение для увеличения
Название: BGtools_Лента.png
Просмотров: 125
Размер:	36.8 Кб
ID:	154097  
Вложения
Тип файла: zip BGtools.zip (97.9 Кб, 120 просмотров)

Последний раз редактировалось TAPA3, 29.07.2015 в 16:59.
TAPA3 вне форума  
 
Непрочитано 29.07.2015, 16:10
#265
Кулик Алексей aka kpblc
Moderator

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


TAPA3, извини, конечно, но:
1. иконки прекрасно импортируются в cuix. Их отдельно предоставлять не нужно вообще.
2. зачем нужен документ "подготовка подосновы" я не очень понял.
3. mnr (и, на будущее - mnc) файл не требуется: его AutoCAD создает автоматически.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.07.2015, 16:46
#266
TAPA3


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


Кулик Алексей aka kpblc, понял, буду иметь ввиду. Я просто папку за архивировал со всеми файлами, надо было подчистить.
TAPA3 вне форума  
 
Непрочитано 28.08.2015, 12:42 Помощь с лиспом BG Tools
#267
kofein4ik


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


Здравствуйте! Подскажите пожалуйста как можно убрать в лиспе окно с подтверждение команд BGCFT и BGCFTSEL? Нужно чтобы при вводе в командную строку не появлялось окно с подтверждением команд а выполнялась сразу команда! Help me
kofein4ik вне форума  
 
Непрочитано 10.09.2015, 16:52
#268
shartal


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


Команда BGLAYDEL, замороженные слои во внешней ссылке отмораживает (выключенные слои остаются выключенными).
Надо бы, чтоб ссылки она не трогала.
shartal вне форума  
 
Автор темы   Непрочитано 11.09.2015, 12:12
#269
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


исправил. проверяй
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.09.2015, 10:49
#270
shartal


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


После применения команды BGBLEXP1NOATT , в строке состояния остается инфа о проделанной работе. Она отображается у всех открытых к данному моменту файлов и не пропадает даже если закрыть файл, где команда запущена была. Исчезает только после создания нового файла.
Миниатюры
Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 74
Размер:	2.0 Кб
ID:	157016  
shartal вне форума  
 
Непрочитано 28.10.2015, 13:56
#271
VaniaLSD


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


При выборе цвет всем объектам командой bgcolor, пишется: "Ошибка Automation. Отсутствует описание" и не меняется цвет.
При BGCBL2 - "Ошибка Automation. Ключ не найденОшибка Automation. Неверный слой"

Последний раз редактировалось VaniaLSD, 28.10.2015 в 14:26.
VaniaLSD вне форума  
 
Автор темы   Непрочитано 02.11.2015, 17:30
#272
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


VaniaLSD, Выложи пример dwg файла, в котором происходит ошибка
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.11.2015, 19:41
#273
vik74


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


Странно, у меня все работает, и меняет любой цвет, Win 7x64, Autocad 2012 и 2016
vik74 вне форума  
 
Автор темы   Непрочитано 02.11.2015, 22:44
#274
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от vik74 Посмотреть сообщение
Странно, у меня все работает, и меняет любой цвет, Win 7x64, Autocad 2012 и 2016
у меня так же все работает. поэтому и прошу выложить проблемный файл
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.11.2015, 12:04
#275
VaniaLSD


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


Приложил.
Вложения
Тип файла: dwg
DWG 2007
всЕ2.dwg (2.02 Мб, 781 просмотров)
VaniaLSD вне форума  
 
Автор темы   Непрочитано 03.11.2015, 16:35
#276
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


VaniaLSD, В файле полно ошибок. А так же если сделать _Zoom _all, то он улетает к солнцу
Цитата:
Команда: _audit
Исправить все обнаруженные ошибки? [Да/Нет] <Н>: Д
Проверка заголовка
Проверка таблиц
Проверка объектов, проход 1
Проход 1: проверено объектов: 1100 AcDbHatch(2F1968) не
удалось восстановить. Будет удален.
AcDbHatch(2F197D) не удалось восстановить. Будет удален.
AcDbHatch(2F1990) не удалось восстановить. Будет удален.
Проход 1: проверено объектов: 1300 AcDbHatch(2F6B96) не
удалось восстановить. Будет удален.
AcDbHatch(2F6B97) не удалось восстановить. Будет удален.
Проход 1: проверено объектов: 20300
Проверка объектов, проход 2
А так же непонятная мультивыноска
Цитата:
Команда: (entget e)
((-1 . <Имя объекта: 7ffff745930>) (0 . "MULTILEADER") (5 . "68B90B") (102 .
"{ACAD_XDICTIONARY") (360 . <Имя объекта: 7ffff756e90>) (102 . "}") (330 . <Имя
объекта: 7ffff703820>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"СК+++$0$О_ОСИ МАРКИ_-0") (62 . 5) (370 . 0) (100 . "AcDbMLeader") (270 . 2)
(300 . "CONTEXT_DATA{") (40 . 100.0) (10 -4.26491e+006 724343.0 -1.21417e+084)
(41 . 400.0) (140 . 400.0) (145 . 200.0) (174 . 5) (175 . 6) (176 . 0) (177 .
и
Цитата:
; IAcadMLeader2: Интерфейс мультивыносок AutoCAD
; Значения свойств:
; Application (RO) = #<VLA-OBJECT IAcadApplication 0000000140609e48>
; ArrowheadBlock = "СК+++$0$_None"
; ArrowheadSize = 4.0
; ArrowheadType = 20
; BlockConnectionType = 1
; BlockScale = 1.5
; ContentBlockName = "СК+++$0$_TagCircle"
; Layer = "СК+++$0$О_ОСИ МАРКИ_-0"
; TextBackgroundFill = Ошибка
; TextDirection = Ошибка
; TextJustify = Ошибка
; TextLineSpacingDistance = Ошибка
; TextLineSpacingFactor = Ошибка
; TextLineSpacingStyle = Ошибка
; TextRotation = Ошибка
; TextString = Ошибка
; TextStyleName = Ошибка
; TextTopAttachmentType = 0

Добавил отлов ошибок. Обновил #1
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.11.2015, 18:03
#277
vik74


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


Спасибо за такую прекрасную прогу!!!
vik74 вне форума  
 
Непрочитано 03.11.2015, 22:08
#278
VaniaLSD


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


VVA
Исправляется все _audit?
VaniaLSD вне форума  
 
Автор темы   Непрочитано 04.11.2015, 11:44
1 | #279
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от VaniaLSD Посмотреть сообщение
Исправляется все _audit?
Почти все. Я в #276 привел данные глючной мультивыноски, audit'ом она не лечилась, а жизнь портила. Поэтому отлов ошибок пришлось все равно добавлять
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.11.2015, 12:00
#280
VaniaLSD


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Почти все. Я в #276 привел данные глючной мультивыноски, audit'ом она не лечилась, а жизнь портила. Поэтому отлов ошибок пришлось все равно добавлять
Спасибо! Даже не знаю как это получилось.
VaniaLSD вне форума  
 
Непрочитано 07.11.2015, 15:03
#281
zvyagaaa


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


добрый день, в 2.39 в AutoCAD 2014 64x при работе процедуры BGCOLOR выскакивает ошибка no function definition: MIP-CONV-TO-STR в 2.32 такой ошибки нет, отрабатывает корректно. Можно что-то сделать?
zvyagaaa вне форума  
 
Автор темы   Непрочитано 07.11.2015, 18:06
#282
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


zvyagaaa, Можно, но только в понедельник. Можешь пока сам добавить в lsp файл эту функцию
Код:
[Выделить все]
(defun mip-conv-to-str (dat)
      (cond ((= (type dat) 'INT) (setq dat (itoa dat)))
            ((= (type dat) 'REAL) (setq dat (rtos dat 2 12)))
            ((null dat) (setq dat ""))
            (t (setq dat (vl-princ-to-string dat)))
      ) ;_ end of cond
    ) ;_ end of def
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 19.11.2015, 12:23
#283
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от zvyagaaa Посмотреть сообщение
при работе процедуры BGCOLOR выскакивает ошибка no function definition: MIP-CONV-TO-STR
Цитата:
Сообщение от VVA Посмотреть сообщение
Можно, но только в понедельник
Что-то понедельник у мня затянулся. Совсем забыл. Обновил #1
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.12.2015, 13:36
#284
baikkott


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


Можно ли доработать команду BGCOLORXREF - Меняет цвет выбранных внешних ссылок не только для текущего сеанса.
baikkott вне форума  
 
Автор темы   Непрочитано 07.12.2015, 15:19
#285
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от baikkott Посмотреть сообщение
Можно ли доработать команду BGCOLORXREF - Меняет цвет выбранных внешних ссылок не только для текущего сеанса.
А смысл? Нужно открыть ссылки и изменить в них цвет. Плюс если что системная переменная VISRETAIN
или Reset XRef Layers
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.12.2015, 05:47
#286
baikkott


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


Цитата:
Сообщение от VVA Посмотреть сообщение
А смысл? Нужно открыть ссылки и изменить в них цвет. Плюс если что системная переменная VISRETAIN
или Reset XRef Layers
Дело в том что во внешней ссылке есть блоки, цвет которых задан не по блоку а принудительно (например зеленый). Команда BGCOLORXREF изменяет цвет всей внешней ссылки, включая все блоки (независимо какой цвет был задан в редакторе блоков), но при повторном открытии эти блоки остаются опять неизменные, т.е. зеленые. Системная переменная VISRETAIN стоит на 1. Или решение проблемы можно только путем сброса цветов блоков во внешней ссылке?
baikkott вне форума  
 
Непрочитано 08.12.2015, 08:43
#287
Кулик Алексей aka kpblc
Moderator

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


Так и должно быть. Нормализуй блоки и выполняй чертежи по принятым правилам - и все будет хорошо.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 08.12.2015, 10:45
#288
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от baikkott Посмотреть сообщение
цвет которых задан не по блоку а принудительно (например зеленый)
Цитата:
Сообщение от baikkott Посмотреть сообщение
но при повторном открытии эти блоки остаются опять неизменные, т.е. зеленые.
Алексей в принципе ответил. Я немного дополню его ответ. Есть правила - управлять элементами внешних ссылок можно через соответствующие свойства слоев, но для этого нужно чтобы блоки были сделаны как положено.
Цитата:
Сообщение от baikkott Посмотреть сообщение
Команда BGCOLORXREF изменяет цвет всей внешней ссылки, включая все блоки (независимо какой цвет был задан в редакторе блоков)
Здесь используется то, что внешняя ссылка в текущем сеансе ничем не отличается от обычного блока, поэтому программно можно в текущем сеансе в таблице блоков поменять цвета, но при сохранении файла сохраняется только ссылка на файл, и в следующем сеансе он опять заново подгружается. Поэтому
Цитата:
Сообщение от baikkott Посмотреть сообщение
но при повторном открытии эти блоки остаются опять неизменные,
Решение
Цитата:
Сообщение от baikkott Посмотреть сообщение
можно только путем сброса цветов блоков во внешней ссылке?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.12.2015, 16:15
#289
Alex_GSP

Генплан
 
Регистрация: 16.03.2014
Сообщений: 33


Здравствуйте уважаемые форумчане!
Можно ли как то команду BGCFT (Конвертирует все поля в обычный текст) заточить так, чтобы не открывая чертежи, пачкой преобразовывать поля?
Мы просто юзаем подшивки, ссылаемся полями из разных чертежей на общие данные, и если внедрение ссылок решается формированием комплекта, то поля остаются. А значит снова открывать сто-пятьсот чертежей.
Alex_GSP вне форума  
 
Непрочитано 10.12.2015, 16:23
#290
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 805
<phrase 1= Отправить сообщение для perpetule с помощью Skype™


Присоединяюсь к просьбе Alex_GSP
__________________
tc71
perpetule вне форума  
 
Непрочитано 10.12.2015, 19:57
#291
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от Alex_GSP Посмотреть сообщение
Мы просто юзаем подшивки, ссылаемся полями из разных чертежей на общие данные, и если внедрение ссылок решается формированием комплекта, то поля остаются. А значит снова открывать сто-пятьсот чертежей.
А почему просто не отправить комплект вместе с файлом подшивки? На другом компьютере все подхватится, и поля будут работать. Или не хочется отправлять какие-то свои "ноу-хау"?
Заметил также, что если файла подшивки нет, то поля не превращаются в решетки, но и исправить их источник тоже нельзя. Может, просто отправлять да и шут с ними, этими полями? Хотя, может, я и не совсем понял, что имеется в виду под "ссылаемся полями на общие данные" - может, там и появляются решетки?

В реализации массового преобразования полей в куче файлов разом я вижу как минимум один препон: доступ к неактивному файлу из лиспа есть только через ActiveX, а с его помощью, насколько я знаю, нельзя получить код поля мультивыноски. Его, вроде бы, можно получить только через dxf, то есть - AutoLISP, а он не может работать с неактивным документом. Поэтому как минимум с мультивыносками - уже пролёт. Поправьте меня если я ошибаюсь.
skkkk вне форума  
 
Непрочитано 11.12.2015, 20:27
#292
Alex_GSP

Генплан
 
Регистрация: 16.03.2014
Сообщений: 33


Цитата:
Сообщение от skkkk Посмотреть сообщение
А почему просто не отправить комплект вместе с файлом подшивки? На другом компьютере все подхватится, и поля будут работать. Или не хочется отправлять какие-то свои "ноу-хау"?
Здравствуйте. Конечно можно, и не в ноу-хау дело. Проблема возникнет сразу же после получения Заказчиком архива с кучей непонятных для него файлов, кроме знакомого dwg. Тут своих то коллег на подшивку перетянуть, громоздкая задача. А по телефону Заказчику объяснять что да как - вообще беда.
У нас, думаю как и у большинства компаний, определенная процедура передачи комплекта Заказчику:
Первая папка с файлами dwg, doc/docx, jpeg/png и т.п. составляющие в целом комплект. Чтобы Заказчик дал комплект мальчику, мальчик открыл нужный файл, померял там что нужно, или копирнул. Поработал в общем. Файлы без подписей-картинок.
Вторая папка с единым или россыпью файлами pdf, типа подписанные (подписи-картинки). Чтобы опять же - Заказчик дал его мальчику, мальчик отправил тупо на печать, готов экземпляр куда там нужно.

Итого - только в одном комплекте может быть под сто и больше чертежей. По требованию Заказчика в одном файле может быть один лист, плюс в имени файла шифр листа. С введением подшивки конечно распечатать в pdf или кинуть нужный комплект на плоттер стало значительно проще. Введение системы внешних ссылок тоже дает ощутимые плюсы. Введение полей со ссылкой на свойства подшивки предполагали плюсы (изменение например названия объекта, фамилии ГИПа и т.д.), однако за время работы над объектом единственное что пока менял - дату)). Ну а при комплектовании чертежей в ревизию мы преобразовываем поля и внедряем ссылки, чтобы у Заказчика не возникло сложностей с чертежами. Команда eTransmit решает проблему массового внедрения внешних ссылок (конечно при условии отсутствия прокси-объектов)), как я уже писал.
Не скажу что такая система нравится, но что есть, с тем и работаем.
Alex_GSP вне форума  
 
Автор темы   Непрочитано 11.12.2015, 20:54
#293
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от skkkk Посмотреть сообщение
доступ к неактивному файлу из лиспа есть только через ActiveX, а с его помощью, насколько я знаю, нельзя получить код поля мультивыноски.
Получить можно для текста, мтекста, но не всегда корректно. Для мультивыноски нельзя
Цитата отсюда
Цитата:
И vla-get-TextString и vla-FIELDCODE неверно возвращают строку, если в ней есть unicod символы
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 11.12.2015 в 21:58.
VVA вне форума  
 
Непрочитано 11.12.2015, 21:33
#294
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Alex_GSP, и Вам не хворать, по-моему, можно не отправлять эти файлы *.dst - поля вроде как не "решётятся"

Цитата:
Сообщение от VVA Посмотреть сообщение
Получить можно
А как?
Пробую
Код:
[Выделить все]
(vla-fieldcode (vlax-ename->vla-object (car (entsel))))
с текстом - выдает результат, а с мультивыноской выдает
Цитата:
Выберите объект: ; ошибка: ActiveX Server возвратил ошибку: неизвестное имя:
FieldCode
Видимо, я о чем-то не в курсе. Как-то можно обратиться к подобъекту "мтекст" мультивыноски? Алексей как-то что-то такое упоминал. Но как сделать, для меня так и осталось загадкой. В итоге повелось, что я добываю поля из млидера через (entget).
skkkk вне форума  
 
Автор темы   Непрочитано 11.12.2015, 21:56
#295
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от skkkk Посмотреть сообщение
В итоге повелось, что я добываю поля из млидера через (entget).
Для мультивыноски нужно ковырять dxf. Отредактировал #293
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.01.2016, 17:45
#296
WilliamClassic


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


Здравствуйте! Пытаюсь командой BGCTFCEL преобразовать поля в размерных примитивах. В примитиве размерное значение находится над размерной линиией, а вставленное поле под ней. В текстовой строке размерного примитива прописан код
Код:
[Выделить все]
<>\X{\C1;*ВСТАЛЕННОЕ ПОЛЕ*}
После обработки примитива командой текстовая строка имеет вид
Код:
[Выделить все]
\A1;{\C1;*ПРЕОБРАЗОВАННОЕ ПОЛЕ*}
, т.е. удаляется значение размера и перенос под размерную линию. Возможно ли исправить работу команды, что бы преобразовывалось только вставленное поле? Спасибо.
WilliamClassic вне форума  
 
Автор темы   Непрочитано 04.01.2016, 14:58
#297
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


WilliamClassic, Обновил до версии 2.41

----- добавлено через ~3 ч. -----
ЗЫ Плохо скопировал код. Файл перезалил. Архив переименовал в bgtools 2.41a.zip
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 04.01.2016 в 17:34.
VVA вне форума  
 
Непрочитано 15.01.2016, 10:23
#298
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
<phrase 1=


Очень часто приходится работать с чертежами АР, выполненными в Архикаде.
Такие чертежи, экспортированные в dwg несут в себе множество слоев "ном_пера" что-то там. Пока отключишь на всех подложках все не нужные для работы слои - замучаешься.
Есть какая-то потребность оптимизировать этот процесс. Может быть можно перенести настройки видимости слоев с одной X-ref на другую аналогичную?
Konstruktiv54 вне форума  
 
Непрочитано 15.01.2016, 11:04
#299
Кулик Алексей aka kpblc
Moderator

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


Создаешь фильтр слоев, устанавливаешь видимость. VISRETAIN - в 1, например
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.01.2016, 11:23
#300
shartal


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


Это делается Диспетчером конфигурации слоев, который можно импортировать в файл. Есть одно не удобство, названия слоев ссылки начинаются с названия файла ссылки, чтобы конфигурация работала, надо ссылку переименовывать в соотв. с названием сохраненным в конфигурации. И можно это делать только если ссылка одна.
shartal вне форума  
 
Непрочитано 15.01.2016, 11:28
#301
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
<phrase 1=


Не очень доходчиво...давайте на пальцах )
у меня в рабочем файле 5 ссылок (в каждой по 70 слоев): план 1го этажа...план 5го этажа.
В принципе то названия у слоев одинаковые, но в рабочем файле им предварительно выставлен индекс, состоящий из названия файла ссылки.
Мне в данный момент для работы нужны например только 5 слоев из 70 в каждом X-ref. Тоесть мне надо отключить 325 слоев.
Из-за этого индекса, я не могу сделать это быстро при помощи фильтра или диспетчера конфигурации. Ну может быть могу, но не умею ))
Konstruktiv54 вне форума  
 
Непрочитано 15.01.2016, 11:36
#302
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
Из-за этого индекса, я не могу сделать это быстро при помощи фильтра или диспетчера конфигурации. Ну может быть могу, но не умею ))
Звездочки * в имени в помощь. И без разницы, что стоит в начале/конце линии.
Миниатюры
Нажмите на изображение для увеличения
Название: QIP Shot - Screen 009.png
Просмотров: 95
Размер:	79.8 Кб
ID:	163667  
RNB вне форума  
 
Непрочитано 15.01.2016, 11:54
#303
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
<phrase 1=


Ааа, понятно, попробовал. Спасибо.
Думаю, что этот вариант не даст экономии времени.
В идеале хотелось бы функцию типа _matchprop, которая бы копировала состояние настроек слоев с одного X-ref на другой...
Konstruktiv54 вне форума  
 
Непрочитано 15.01.2016, 12:02
#304
Кулик Алексей aka kpblc
Moderator

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


Пока видео делал, уже ответили...
Вложения
Тип файла: zip LayerFilter.zip (5.05 Мб, 58 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.01.2016, 12:33
#305
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
<phrase 1=


Спасибо за видео, а теперь вот моя картинка...Все слои одной X-ref не влезают в экран, а у меня таких 5. Красным цветом обведены слои, которые в данный момент хочу отключить, оставить только оси, колонны и несущие стены, и так 5 раз. Но это в данный момент времени, а может быть завтра мне понадобиться включить другие слои, и так тоже 5 раз. В общем геммор.

Я так понимаю, мне для решения задачи надо немного модифицировать BGResetXRef, только в качестве эталона надо принимать не исходный файл, а указанную ссылку.
Миниатюры
Нажмите на изображение для увеличения
Название: 2016-01-15 15-07-11 Layer.png
Просмотров: 72
Размер:	188.0 Кб
ID:	163676  
Konstruktiv54 вне форума  
 
Непрочитано 15.01.2016, 13:56
1 | #306
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от Konstruktiv54 Посмотреть сообщение
Спасибо за видео, а теперь вот моя картинка...Все слои одной X-ref не влезают в экран, а у меня таких 5. Красным цветом обведены слои, которые в данный момент хочу отключить, оставить только оси, колонны и несущие стены, и так 5 раз. Но это в данный момент времени, а может быть завтра мне понадобиться включить другие слои, и так тоже 5 раз. В общем геммор.
Так и не понял в чем проблема с фильтром. В данном конкретном случае добавить в фильтр строки *интерьер* *конструктивный* *оси* и радоваться жизни.
RNB вне форума  
 
Непрочитано 15.01.2016, 14:10
#307
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
<phrase 1=


Видимо голова уже не очень соображает в пятницу вечером )) не обязательно же выписывать все что надо отключить, можно же вписать только то что надо включить...спасибо )
Konstruktiv54 вне форума  
 
Непрочитано 08.02.2016, 20:59
#308
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39


Добрый вечер. Можно ли использовать команду U2B для динамических блоков?
Soldat_OV вне форума  
 
Непрочитано 08.02.2016, 21:32
#309
engngr

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


Попробовать не судьба?
engngr вне форума  
 
Непрочитано 08.02.2016, 21:38
#310
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39


Судьба. Просто уточняю, на обычных блоках у меня работает нормально, а на динамических внутри появляется вторая копия элементов. Может где-то было написано, что нельзя использовать для динамических
Soldat_OV вне форума  
 
Автор темы   Непрочитано 08.02.2016, 23:29
#311
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Soldat_OV Посмотреть сообщение
а на динамических внутри появляется вторая копия элементов. Может где-то было написано, что нельзя использовать для динамических
Написанного, что нельзя для динамических - нет. Но писалось для обычных. Для динамических попробуй
Цитата:
BGBLDYN2S - Преобразовывает динамические блоки в статические
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.02.2016, 23:34
#312
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39


Цитата:
Сообщение от VVA Посмотреть сообщение
Написанного, что нельзя для динамических - нет. Но писалось для обычных. Для динамических попробуй
Тогда он перестает быть динамическим....это, к сожалению, не подходит. А может есть какое-то решение для динамических блоков?
Soldat_OV вне форума  
 
Непрочитано 08.02.2016, 23:39
#313
Кулик Алексей aka kpblc
Moderator

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


Soldat_OV, ты чего в результате хочешь получить? Переименовать дин.блок?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.02.2016, 23:52
#314
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39




Хочу чтобы динамический блок стал "нормальным", чтобы с этим блоком можно было программно работать. Например, у меня динамический блок - рамка для чертежа и мне надо из его атрибутов брать размеры и передавать их как рамку на печать. Если у меня динамический блок - рамка с именем "*U*", то я не смогу точно знать из какого блока мне брать атрибуты, для дальнейшей обработки. И вообще если у меня на чертеже несколько одинаковых динамических блоков, но некоторые из них unnamed, я не могу их собрать в один набор для дальнейшей обработки.
Soldat_OV вне форума  
 
Непрочитано 09.02.2016, 06:13
#315
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Offtop: Трэш какой-то
RNB вне форума  
 
Непрочитано 09.02.2016, 10:43
#316
Кулик Алексей aka kpblc
Moderator

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


У динамического блока получить значения параметров (программно) - не проблема вообще ни разу. Получить имя дин.блока - тоже (см.свойство EffectiveName). Получить вхождения дин.блока - тоже можно (решения на форуме были).
Я вообще не понимаю сути твоей проблемы.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 09.02.2016, 10:55
#317
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Soldat_OV Посмотреть сообщение
и мне надо из его атрибутов брать размеры и передавать их как рамку на печать
Есть 2 варианта решения
1. Брать размеры из атрибутов Редактирование атрибутов блока (скрытых и постоянных)
2. Размеры брать прямо из параметров динамического блока. В таком случае атрибуты не нужны вовсе кто знает есть ли доступ к параметрам динамичесого блока из Lisp
Я бы рекомендовал 2-й вариант
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.02.2016, 22:34
#318
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
У динамического блока получить значения параметров (программно) - не проблема вообще ни разу. Получить имя дин.блока - тоже (см.свойство EffectiveName). Получить вхождения дин.блока - тоже можно (решения на форуме были).
Я вообще не понимаю сути твоей проблемы.
Да, видимо ночью голова работает хуже..





Спасибо, попробую 2-й вариант!
Soldat_OV вне форума  
 
Непрочитано 22.03.2016, 10:22
#319
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39


И снова я возвращаюсь к обработке динамических блоков. С рамкой для печати я разобралась, все получилось! Спасибо!

Но я решила переименовывать динамические блоки, вместо имени *U... я беру EffectiveName. И тут у меня начались танцы динамических блоков. При переименовывании у динамического блока меняется свойство Flip, если значение установлено как Flip. После переименовывания свойство меняется на противоположное и блок переворачивается! Небольшое уточнение, блок переворачивается в конце, перед следующим запросом. Что делать? Почему это происходит? Подскажите, пожалуйста!
Переименовываю таким способом:

Код:
[Выделить все]
 (defun C:GoodBl (/ Unnam BlName VlaUnnam EffNameUnn)
  (VL-LOAD-COM)
  (while
    (setq Unnam (car (entsel "Select block: ")))
     (if (wcmatch (setq BlName (cdr (assoc 2 (entget Unnam))))
		  "`*U*,`*X*,`*E* `*D*"
	 )
       (progn
	 (setq VlaUnnam (vlax-ename->vla-object Unnam))
	 (setq EffNameUnn (vla-get-EffectiveName VlaUnnam))
	 (if (/= BlName EffNameUnn)
	   (vla-put-name VlaUnnam EffNameUnn)
	 )
       )
     )
  )
)
Файл с динамическим блоком прикрепила.
Вложения
Тип файла: dwg
DWG 2010
DanceBlocks.dwg (82.4 Кб, 35 просмотров)

Последний раз редактировалось Кулик Алексей aka kpblc, 22.03.2016 в 10:31.
Soldat_OV вне форума  
 
Непрочитано 22.03.2016, 10:34
#320
Кулик Алексей aka kpblc
Moderator

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


Во-первых, очень странная маска для wcmatch. Во-вторых, насколько я помню (могу ошибаться), переименовать анонимный блок "в лоб" невозможно. И, наконец, в-третьих: ну вставлено, к примеру, 10 дин.блоков с одинаковым эффективным именем. И тут один из них подобным кодом "переименовывается". Что произойдет с остальными вхождениями этого блока?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.03.2016, 11:06
#321
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39


Кулик Алексей aka kpblc, Во-первых, маску для wcmatch я у кого-то подсмотрела
Во-вторых, имя у блока меняется, после запуска программы
В-третьих, это для наглядности я беру один блок, но планируется выбирать все анонимные блоки и всем менять имя на EffectiveName.
Soldat_OV вне форума  
 
Автор темы   Непрочитано 22.03.2016, 11:39
#322
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
И, наконец, в-третьих: ну вставлено, к примеру, 10 дин.блоков с одинаковым эффективным именем. И тут один из них подобным кодом "переименовывается". Что произойдет с остальными вхождениями этого блока?
А получится
Цитата:
Сообщение от Soldat_OV Посмотреть сообщение
вместо имени *U... я беру EffectiveName. И тут у меня начались танцы динамических блоков
Как нужно делать показано здесь LISP: Переименование одного из вхождений блока
Или в этой теме смотри команды
Цитата:
BGCB - копирует одно из вхождений блока в блок с новым именем
BGRB - переименовывает одно из вхождений блока в блок с новым именем
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.03.2016, 20:28
#323
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39


VVA, Спасибо огромное! Функции BGCB и BGRB, работают отлично! Но конечный результат - все блоки переименовать. Поэтому в этой теме http://forum.dwg.ru/showthread.php?p=577878#post577878 я почти нашла то, что мне нужно!
Но возник вопрос к Кулик Алексей aka kpblc. Программа в посте #3 из темы "LISP: Переименование одного из вхождений блока" меняет у всех динамических блоков EffectiveName? Или я может чего не так поняла?
Soldat_OV вне форума  
 
Непрочитано 22.03.2016, 23:16
#324
Кулик Алексей aka kpblc
Moderator

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


Дык ета... http://forum.dwg.ru/showpost.php?p=575019&postcount=5
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 23.03.2016, 07:59
#325
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Soldat_OV Посмотреть сообщение
Но конечный результат - все блоки переименовать
А для чего все это нужно?
Эти команды не подойдут?
Цитата:
BGBLDYN2A - Преобразовывает динамические блоки в анонимные
BGBLDYN2S - Преобразовывает динамические блоки в статические
BGBLALLDYN2A - Преобразовывает ВСЕ динамические блоки в анонимные
BGBLALLDYN2S - Преобразовывает ВСЕ динамические блоки в статические
Смотри в справке метод vla-ConvertToStaticBlock
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.03.2016, 20:26
#326
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39


VVA, Это все не просто
Цель в итоге такая: когда приходят чертежи от смежников (архитекторов), чертежи скажем так, не очень высокого качества, и для того, чтобы продолжить с ними работу, необходима первоначальная чистка, которая на один проект приходится 10-20 раз. Т.е. каждый раз, когда по одному проекту приходит измененный чертеж от смежников, приходиться чистить одно и тоже. Так вот написана программа, которая запоминает удаление объектов, записывает их, а потом при последующих чертежах с изменениями запускается. Что экономит время на чистку. Но для того, чтобы правильно происходила повторная чистка применительно к блокам, необходимо, чтобы у всех динамических блоков были одинаковые имена. Вот отсюда и необходимость привести все блоки в порядок.
Soldat_OV вне форума  
 
Автор темы   Непрочитано 23.03.2016, 22:48
#327
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Soldat_OV Посмотреть сообщение
Так вот написана программа, которая запоминает удаление объектов
Каким образом запоминает? Если речь идет про один и тот же чертеж, то метка примитива (dxf группа 5) будет уникальна в этом чертеже. Вполне достаточно. Чтобы отследить изменение геометрии, или других свойств (слой, цвет, вес) можно сравнивать (хранить) подсчитанную хеш-сумму строки entget примитива (можно набор только конкретных полей) Это обсуждалось в теме Lisp. Выделение нового в чертеже Там же есть и готовые примеры
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.03.2016, 22:54
#328
Soldat_OV


 
Регистрация: 13.02.2009
Воронеж
Сообщений: 39


VVA, к сожалению метка примитива (dxf группа 5) не подходит, так как чаще всего все чертежи от архитектора собираются в один чертеж, а при вставке чертежа как блок и последующей его разбивке, метка примитива меняется. Также рассматривали вариант копирования и вставки, но при этом handle тоже меняется. Т.е. каждый раз, когда приходят чертежи, они собираются в один и проходит чистка, т.е. удаление примитивов и разбивка блоков. Определенные признаки (в зависимости от типа примитива) записываются в текстовый файл, а при последующей чистке считываются строчки из файла и повторно удаляются.
За ссылку большое спасибо! Обязательно изучу ее
Soldat_OV вне форума  
 
Непрочитано 24.03.2016, 14:54
#329
marcis


 
Регистрация: 06.04.2012
Львов
Сообщений: 47


Какой командой можно взорвать динамический блок, чтобы видимые атрибуты преобразовались в текст. Дело в том, что один из атрибутов содержит поле. Команды BGBLEXP1 и BGBLDYNEXP1 при взрыве удаляют его. С остальными атрибутами все отлично.
marcis вне форума  
 
Непрочитано 24.03.2016, 15:41
#330
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 388


Цитата:
Сообщение от marcis Посмотреть сообщение
Какой командой можно взорвать динамический блок, чтобы видимые атрибуты преобразовались в текст. Дело в том, что один из атрибутов содержит поле. Команды BGBLEXP1 и BGBLDYNEXP1 при взрыве удаляют его. С остальными атрибутами все отлично.
Burst из express tools

Последний раз редактировалось Linkshunter, 24.03.2016 в 15:45. Причина: прочитал лицензию к ET
Linkshunter вне форума  
 
Непрочитано 24.03.2016, 16:04
#331
marcis


 
Регистрация: 06.04.2012
Львов
Сообщений: 47


Команда BURST из express tools после взрыва показывает и скрытые атрибуты. А мне нужны только те, которые видны в данный момент.

Последний раз редактировалось marcis, 24.03.2016 в 16:24.
marcis вне форума  
 
Автор темы   Непрочитано 24.03.2016, 16:14
1 | #332
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от marcis Посмотреть сообщение
Дело в том, что один из атрибутов содержит поле. Команды BGBLEXP1 и BGBLDYNEXP1 при взрыве удаляют его.
Сделал, чтобы не удаляли. См. #1
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.03.2016, 16:46
#333
marcis


 
Регистрация: 06.04.2012
Львов
Сообщений: 47


Оттуда и скачал. Прилагаю блок. Проблемный атрибут "ФАЙЛ"
Вложения
Тип файла: dwg
DWG 2007
vcFormat_КЖИ - Копия.dwg (122.7 Кб, 39 просмотров)

Последний раз редактировалось marcis, 24.03.2016 в 16:57.
marcis вне форума  
 
Непрочитано 24.03.2016, 18:20
#334
frostmourn


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


Ещё кое-что. Команды BGCFTSEL и BGCFT при применении к размерам, в тексте которых записан один пробел, дают ошибку "Параметр является
обязательным". При этом в текст записывается значение по умолчанию.
frostmourn вне форума  
 
Автор темы   Непрочитано 24.03.2016, 19:09
#335
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


frostmourn, marcis, Пробуйте версию bgtools 3.1a из #1
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.03.2016, 19:35
#336
marcis


 
Регистрация: 06.04.2012
Львов
Сообщений: 47


Все равно атрибут "ФАЙЛ" слетает.
marcis вне форума  
 
Автор темы   Непрочитано 24.03.2016, 20:06
#337
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


В определении атрибута "ФАЙЛ" (в редакторе блока) включен режим "постоянный" и "установленный".
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 24.03.2016 в 20:46.
VVA вне форума  
 
Непрочитано 25.03.2016, 10:14
#338
marcis


 
Регистрация: 06.04.2012
Львов
Сообщений: 47


Цитата:
Сообщение от VVA Посмотреть сообщение
В определении атрибута "ФАЙЛ" (в редакторе блока) включен режим "постоянный" и "установленный".
В описании написано, что команда "превращает видимые атрибуты в текст". Ограничения по режимам не указаны.
Отключение режима "установленный" ничего не меняет - атрибут слетает. А вот если отключить режим "постоянный", тогда, да, атрибут ФАЙЛ остается после взрыва. Но он становится бесполезным. В этом блоке он после регенерации отражал имя файла, в который был вставлен. А при отключенном режиме "постоянный" он показывает имя файла, в котором создан блок и не обновляется при регенерации.
Существуют ли команды, которые могут чисто разбить такой блок?
marcis вне форума  
 
Автор темы   Непрочитано 25.03.2016, 13:05
#339
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от marcis Посмотреть сообщение
В этом блоке он после регенерации отражал имя файла, в который был вставлен.
У меня отображает имя файла, в который вставлен
Вложения
Тип файла: dwg
DWG 2007
vcFormat_КЖИ - VVA.dwg (125.7 Кб, 36 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.03.2016, 15:29
#340
marcis


 
Регистрация: 06.04.2012
Львов
Сообщений: 47


Если просто открыть файл, скопировать и вставить блоком в чертеж - тогда имя файла чертежа отображает. Но если вставлять через команду Веткада (что намного быстрее), то отображается имя файла блока и не меняется при регенерации. Если втавить блок повторно Веткадом - только тогда отображается имя текущего чертежа. Получается, это баг Веткада.
А почему режим "Постоянный" так не "нравится" этим командам?
marcis вне форума  
 
Автор темы   Непрочитано 25.03.2016, 15:34
#341
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от marcis Посмотреть сообщение
А почему режим "Постоянный" так не "нравится" этим командам?
Установи этот режим, обнови блок и найди этот атрибут в окне свойств. Его там не будет, следовательно, его нет во вхождении блока, поэтому он не нравится командам.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.03.2016, 16:05
#342
marcis


 
Регистрация: 06.04.2012
Львов
Сообщений: 47


Да, в свойствах этого атрибута нет. Понимаю, что его нет во вхожении блока. Вот только непонятно, что видно в том самом месте, где в редакторе блоков стоит атрибут ФАЙЛ. И при этом отображает то, что забито полем в этом атрибуте?
Я не прикалываюсь, мне дейсвительно интересно
Миниатюры
Нажмите на изображение для увеличения
Название: _Атрибут.png
Просмотров: 112
Размер:	24.2 Кб
ID:	167539  
marcis вне форума  
 
Непрочитано 03.04.2016, 14:44
1 | #343
csi


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


VVA, не знаю насколько сложно в реализации...

LISP, который взрывает все блоки (1, 2, 3... уровней), входящие в состав целевого блока (0 уровня), не взрывая его.
В результате получаем блок с набором примитивов вместо каши с многоуровневыми вхождениями блоков.
В идеале — с мультивыбором блоков для данного типа обработки.

Если есть возможность реализации — буду рад. Наверняка пригодится кому-либо еще.

Возможно решите включить в состав bgtools (думаю оно того стоит).
csi вне форума  
 
Непрочитано 05.04.2016, 08:36
#344
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 388


Цитата:
Сообщение от csi Посмотреть сообщение
Наверняка пригодится кому-либо еще.
...да, неплохо было бы, часто возникает вышеописанная потребность.
Linkshunter вне форума  
 
Непрочитано 05.04.2016, 08:54
#345
Кулик Алексей aka kpblc
Moderator

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


Что делать, если блоку, который надо разбить, установлен признак "неразбиваемости"? Как обрабатывать заблокированные, замороженные и выключенные слои? Как обрабатывать атрибуты?
P.S. В принципе, можно попробовать использовать готовые исходники burst...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.04.2016, 22:55
#346
csi


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


Кулик Алексей aka kpblc,
неразбиваемость: не обрабатывать, игнорировать, на совести пользователя (BGBLFIX)
обработка слоев: не обрабатывать, игнорировать, на совести пользователя (вручную)
атрибуты блока: преобразовывать в текст средствами самой функции (или удалять)
csi вне форума  
 
Непрочитано 25.04.2016, 17:51
#347
kheylan


 
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86


VVA, а можно добавить команду, чтобы после нормализации блоков, задать цвет штриховки во всех блоках - 255, или как это сделать отдельным lispом.
kheylan вне форума  
 
Автор темы   Непрочитано 25.04.2016, 18:08
#348
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Образец штриховки любой или только SOLID?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.04.2016, 18:15
#349
kheylan


 
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86


VVA, только Solid.
kheylan вне форума  
 
Автор темы   Непрочитано 26.04.2016, 12:41
#350
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Для работы нужно, чтобы bgtools были загружены (либо скопировать оттуда функции bg:layer-status-save и bg:layer-status-restore)

Код:
[Выделить все]
(defun C:BGHSCOLOR ( / doc col)
  ;;BackGround Hatch Solid COLOR
  (vl-load-com)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  (bg:layer-status-save)
  (if (setq col (acad_colordlg 256))
    (progn
      (ChangeHatchObjectsColor doc col)
      )
    )
  (bg:layer-status-restore)
  (vla-regen doc acallviewports)
  (vla-endundomark doc)
  (princ)
  )
(defun ChangeHatchObjectsColor (Doc Color  / txtstr tmp txt count)
  (vlax-for Blk	(vla-get-Blocks Doc)
    (if (= (vla-get-IsXref Blk) :vlax-false)
      (progn
	(setq count 0 txt (strcat "Changed " (vla-get-name Blk)))
	(grtext -1 txt)
      (if (not (wcmatch (vla-get-name Blk) "`*T*,`*D*")) ;_exclude table  dimension
      (vlax-for	Obj Blk
	(setq count (1+ count))
	(if (zerop(rem count 10))(grtext -1 (strcat txt " : " (itoa count))))
	(if (and (vlax-write-enabled-p Obj)
		 (vlax-property-available-p Obj 'Color)
                 (= (vla-get-ObjectName obj) "AcDbHatch")
                 (= (strcase(vla-get-PatternName obj)) "SOLID")
	    ) ;_ end of and
	  (vla-put-Color Obj Color)
	) ;_ end of if
      ) ;_ end of vlax-for
        )
      )
    ) ;_ end of if
  ) ;_ end of vlax-for
 (vl-cmdf "_regenall")
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.04.2016, 13:02
#351
kheylan


 
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86


VVA, спасибо. То, что нужно.
Но в приложенном файле не везде штриховка поменяла цвет, опора ЛЭП 10кВ осталась черной
Вложения
Тип файла: dwg
DWG 2004
пример.dwg (464.0 Кб, 40 просмотров)
kheylan вне форума  
 
Непрочитано 26.04.2016, 17:44
#352
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


замечательный набор лиспов!!! еще бы BGBLFIX работал для вложенных блоков, было б еще лучше
Composter вне форума  
 
Автор темы   Непрочитано 26.04.2016, 18:29
#353
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от kheylan Посмотреть сообщение
ора ЛЭП 10кВ осталась черной
Цитата:
Сообщение от kheylan Посмотреть сообщение
VVA, только Solid.
Зайди в редактор блоков и посмотри имя образца штриховки. Оно не SOLID, а _SOLID
Поменяй на SOLID, и все отработает
Цитата:
Сообщение от Composter Посмотреть сообщение
еще бы BGBLFIX работал для вложенных блоков, было б еще лучше
BGBLFIX , обрабатывает указанные в списке для нормализации блоки в таблице описания блоков. Там без разницы, вложенный блок или нет.
Но у меня ощущения что я не понял сути вопроса
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.04.2016, 21:58
#354
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


использовав BGBLFIX можно вручную указать блоки просто выделяя их, но вложенные блоки комманда не определяет
Composter вне форума  
 
Непрочитано 27.04.2016, 11:42
#355
kheylan


 
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86


VVA, спасибо, понял свою ошибку.
А нельзя ли объединить с командой нормализация блоков, где можно выбрать определенные блоки, так как, в каких то блоках штриховку, надо сделать цветом 255, а в каких то цветом по блоку.
kheylan вне форума  
 
Автор темы   Непрочитано 27.04.2016, 12:59
#356
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от VVA Посмотреть сообщение
Для работы нужно, чтобы bgtools были загружены (
Цитата:
Сообщение от kheylan Посмотреть сообщение
А нельзя ли объединить с командой нормализация блоков, где можно выбрать определенные блоки, так как, в каких то блоках штриховку, надо сделать цветом 255, а в каких то цветом по блоку
Код:
[Выделить все]
(defun C:BGHSCOLOR1 (/ doc col lst)
  ;;BackGround Hatch Solid COLOR
  (vl-load-com)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  (bg:layer-status-save)
  (if (setq lst (bg:blfixdialog))
    (setq lst (mapcar 'strcase (cdr lst)))
  ) ;_ end of if
  (setq lst
         (apply 'append
         (mapcar '(lambda (bname)
                    (cons bname (LM:getanonymousreferences bname))
                  ) ;_ end of lambda
                 lst
         ) ;_ end of mapcar
                )
  ) ;_ end of setq
  (if (setq col (acad_colordlg 256))
    (progn
      (ChangeHatchObjectsColor1 doc col lst)
    ) ;_ end of progn
  ) ;_ end of if
  (bg:layer-status-restore)
  (vla-regen doc acallviewports)
  (vla-endundomark doc)
  (princ)
) ;_ end of defun
(defun block-get-name (blkobj)
  (cond
    ((and (vlax-property-available-p blkobj 'isdynamicblock)
          (= (vla-get-isdynamicblock blkobj) :vlax-true)
          (vlax-property-available-p blkobj 'effectivename)
     ) ;_ end of and
     (vla-get-effectivename blkobj)
    )
    (t (vla-get-name blkobj))
  ) ;_ end of cond
) ;_ end of defun

(defun ChangeHatchObjectsColor1 (Doc Color lst / txtstr tmp txt count)
  (vlax-for Blk (vla-get-blocks Doc)
    (if (= (vla-get-isxref Blk) :vlax-false)
      (progn
        (setq count 0
              txt   (strcat "Changed " (vla-get-name Blk))
        ) ;_ end of setq
        (grtext -1 txt)
        (if (and
              lst
              (not (wcmatch (vla-get-name Blk) "`*T*,`*D*")) ;_exclude table  dimension
              (member (strcase (block-get-name Blk)) lst)
            ) ;_ end of and
          (vlax-for Obj Blk
            (setq count (1+ count))
            (if (zerop (rem count 10))
              (grtext -1 (strcat txt " : " (itoa count)))
            ) ;_ end of if
            (if (and (vlax-write-enabled-p Obj)
                     (vlax-property-available-p Obj 'Color)
                     (= (vla-get-objectname obj) "AcDbHatch")
                     (= (strcase (vla-get-patternname obj)) "SOLID")
                ) ;_ end of and
              (vla-put-color Obj Color)
            ) ;_ end of if
          ) ;_ end of vlax-for
        ) ;_ end of if
      ) ;_ end of progn
    ) ;_ end of if
  ) ;_ end of vlax-for
  (vl-cmdf "_regenall")
) ;_ end of defun
(defun LM:getanonymousreferences (blk / ano def lst rec ref)
  ;; Get Anonymous References  -  Lee Mac
  ;; Returns the names of all anonymous references of a block.
  ;; blk - [str] Block name/wildcard pattern for which to return anon. references
  (setq blk (strcase blk))
  (while (setq def (tblnext "block" (null def)))
    (if
      (and (= 1 (logand 1 (cdr (assoc 70 def))))
           (setq rec
                  (entget
                    (cdr
                      (assoc 330
                             (entget
                               (tblobjname
                                 "block"
                                 (setq ano (cdr (assoc 2 def)))
                               ) ;_ end of tblobjname
                             ) ;_ end of entget
                      ) ;_ end of assoc
                    ) ;_ end of cdr
                  ) ;_ end of entget
           ) ;_ end of setq
      ) ;_ end of and
       (while
         (and
           (not (member ano lst))
           (setq ref (assoc 331 rec))
         ) ;_ end of and
          (if
            (and
              (entget (cdr ref))
              (wcmatch (strcase (LM:al-effectivename (cdr ref))) blk)
            ) ;_ end of and
             (setq lst (cons ano lst))
          ) ;_ end of if
          (setq rec (cdr (member (assoc 331 rec) rec)))
       ) ;_ end of while
    ) ;_ end of if
  ) ;_ end of while
  (reverse lst)
) ;_ end of defun
;; Effective Block Name  -  Lee Mac
;; ent - [ent] Block Reference entity

(defun LM:al-effectivename (ent / blk rep)
  (if (wcmatch (setq blk (cdr (assoc 2 (entget ent)))) "`**")
    (if
      (and
        (setq rep
               (cdadr
                 (assoc -3
                        (entget
                          (cdr
                            (assoc 330
                                   (entget
                                     (tblobjname "block" blk)
                                   ) ;_ end of entget
                            ) ;_ end of assoc
                          ) ;_ end of cdr
                          '("acdbblockrepbtag")
                        ) ;_ end of entget
                 ) ;_ end of assoc
               ) ;_ end of cdadr
        ) ;_ end of setq
        (setq rep (handent (cdr (assoc 1005 rep))))
      ) ;_ end of and
       (setq blk (cdr (assoc 2 (entget rep))))
    ) ;_ end of if
  ) ;_ end of if
  blk
) ;_ end of defun
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.04.2016, 14:43
#357
kheylan


 
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86


VVA, спасибо, вот, что получилось, что гораздо быстрее стандартных средств!
Чтобы выделить объект для проектирования или досъемку, приходиться выполнять такой алгоритм команд
1. BGCOLOR - Задает выбранный цвет всем объектам
2. BGHSCOLOR - Задает цвет 255 штриховкам всех блоков.
3. BGHSCOLOR1 - Задает цвет заданный BGCOLOR штриховкам выбранных блоков, так как их гораздо меньше, чем со штриховкой 255
4. BGENCC - Изменяет цвет выбранного элемента блока, где штриховка _SOLID
В итоге получается приложенный файл, сделанный из предыдущего.
Миниатюры
Нажмите на изображение для увеличения
Название: 160424С11.jpg
Просмотров: 71
Размер:	118.8 Кб
ID:	169547  
kheylan вне форума  
 
Непрочитано 27.04.2016, 23:59
#358
engngr

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


Offtop: kheylan, зря вы так обрабатываете инженерно-топографический план. Удобнее, имхо, внешними ссылками и правильными стилями печати.
engngr вне форума  
 
Непрочитано 28.04.2016, 07:53
#359
gomer

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


Цитата:
Сообщение от kheylan Посмотреть сообщение
Чтобы выделить объект для проектирования или досъемку, приходиться выполнять такой алгоритм команд
Так используйте макросы! Они для этого и предназначены.
gomer вне форума  
 
Непрочитано 02.06.2016, 18:21
#360
quazi


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


Необходимо взрывать динамические блоки с геометрическими зависимостями так, чтоб геометрия оставалась неизменной, а зависимости снимались.
Выполняю BGBLDYN2S затем explode - геометрия неизменна, но все свойства примитивов и атрибуты естественно теряются
После BGBLDYN2S + BGBLEXP геометрия разлетается.
Если после BGBLDYN2S в редакторе блоков снять все зависимости, сохранить его, и выполнить BGBLEXP -то получается то что нужно.
Может сможете дописать к BGBLDYN2S снятие всех зависимостей внутри блока?
Или отдельной командой, которая отфильтрует только статические блоки из выборки и снимет внутри них зависимости.
quazi вне форума  
 
Автор темы   Непрочитано 03.06.2016, 19:48
#361
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


quazi, выложи dwg с примером. Посмотрю. Зависимостям никогда не пользовался
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.08.2016, 10:15
#362
Walkmax


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


с недавних пор на любую команду из bgtools стала появляться такая строка
Код:
[Выделить все]
 no function definition: vlax-erased-pнет определения функции: vlax-erased-p
при этом далее ничего не происходит, т.е. команда не выполняется
Walkmax вне форума  
 
Автор темы   Непрочитано 16.08.2016, 22:06
#363
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


vlax-erased-p - функция лиспа. Даже не знаю что посоветовать. Может переустановить Автокад?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.08.2016, 23:43
#364
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


или попробовать сбросить настройки акада по умолчанию - может, поможет?
Сергей812 вне форума  
 
Непрочитано 24.08.2016, 19:31
#365
Walkmax


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


Ситуация оказалась совсем загадочной, установил не удаляя другой ACad, т.е. был 2015, установлен 2016.
В 2016 то-же самое сообщение в командной строке, может в системе что-то потерялось? Что в самом Windows отвечает за поддержку этих функций?
Walkmax вне форума  
 
Непрочитано 24.08.2016, 20:38
#366
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


попробуйте так:
1.Открыть пустой чертеж.
2. В комстроке "(vl-load-com)" - вставлять/вводить вместе со скобками. И ввод.
3. Наберите/вставьте в комстроке "(vlax-erased-p)" и ввод. Должно ругнуться - что слишком мало аргументов. Если так - то функция работает.
Сергей812 вне форума  
 
Непрочитано 24.08.2016, 20:54
#367
Walkmax


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


Результат
Код:
[Выделить все]
Команда: (vl-load-com)


Команда: (vlax-erased-p)
Настройка переменной AutoCAD отвергнута: "CMDECHO" nil
Walkmax вне форума  
 
Непрочитано 24.08.2016, 21:08
#368
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Интересно. С чего акад решил устанавливать переменную CMDECHO, причем неинициализированной переменной (значением nil). Но не ругнулось же на отсутствие определения vlax-erased-p. Теперь попробуйте перед первым вызовом любой команды из bgtools один раз в комстроке ввести "(vl-load-com)".
Сергей812 вне форума  
 
Непрочитано 24.08.2016, 21:17
#369
Walkmax


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


без изменений:
Код:
[Выделить все]
Команда: (vl-load-com)

Команда: BGBLALLDYN2S
no function definition: VLAX-ENAME->VLA-OBJECTнет определения функции: vlax-erased-p
Walkmax вне форума  
 
Непрочитано 24.08.2016, 21:25
#370
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


пробовали сбрасывать акад к первоначальным настройкам? (это в меню windows в папке приложения есть команда - "восстановить параметры по умолчанию")
Сергей812 вне форума  
 
Непрочитано 24.08.2016, 21:30
#371
Walkmax


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


я даже другой поставил, но увы
причина явно выше чем ACad
Walkmax вне форума  
 
Непрочитано 24.08.2016, 21:39
#372
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


2015 и 2016 вроде на одном и том же "движке" сделаны, возможно, пользуются одни и теми же библиотеками. А сервис паки и хотфиксы все поставлены?
Сергей812 вне форума  
 
Непрочитано 24.08.2016, 22:09
#373
Walkmax


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


Все
Walkmax вне форума  
 
Непрочитано 24.08.2016, 22:23
#374
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


тогда осталось переставить акад, наверно. Реакция акада в посте 367 удивляет, конечно - будто реактор стоит или еще что-то
Сергей812 вне форума  
 
Непрочитано 24.08.2016, 22:30
#375
Walkmax


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


переустановил сервиспак 2016 и ситуация исправилась
но есть одна странность с командой BGCFT
повесил макрос на кнопку
Код:
[Выделить все]
^C^C^P(load "bgtools.LSP");BGBLALLDYN2S;BGCFT;
выполнение прекращается показом диалогового окна BGCFT с мгновенным закрытием, т.е. BGCFT не выполнив действий отменяется
вызов BGCFT пробелом приносит нужный результат, сначала думал что дело в макросе, но почему иногда вызов BGCFT напрямую заканчивается так-же? есть ли способ вызова BGCFT без диалогового окна?
Walkmax вне форума  
 
Автор темы   Непрочитано 24.08.2016, 22:45
#376
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Я сейчас в отпуске и не смогу ничего посмотреть до 5 сентября. Вдруг если забуду, напомни после 5-го
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.08.2016, 22:46
#377
Walkmax


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


Ок
Walkmax вне форума  
 
Непрочитано 25.08.2016, 00:34
#378
gomer

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


Цитата:
Сообщение от Walkmax Посмотреть сообщение
Команда: (vlax-erased-p)
Настройка переменной AutoCAD отвергнута: "CMDECHO" nil
это говорит об ошибке в функции *error* Никогда не пользуйтесь низкосортным, аматорским программным обеспечением!
gomer вне форума  
 
Непрочитано 25.08.2016, 00:42
#379
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от gomer Посмотреть сообщение
аматорским
каким?
Сергей812 вне форума  
 
Непрочитано 25.08.2016, 05:41
#380
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 910


любительским, судя по всему
kacugu вне форума  
 
Непрочитано 25.08.2016, 09:14
#381
Walkmax


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


Цитата:
Сообщение от gomer Посмотреть сообщение
Никогда не пользуйтесь низкосортным, аматорским программным обеспечением!
Что конкретно имеется в виду?
Walkmax вне форума  
 
Непрочитано 06.09.2016, 16:46
#382
Walkmax


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Я сейчас в отпуске и не смогу ничего посмотреть до 5 сентября. Вдруг если забуду, напомни после 5-го
Напоминаю
Walkmax вне форума  
 
Автор темы   Непрочитано 13.09.2016, 13:26
#383
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Walkmax Посмотреть сообщение
Напоминаю
Проверил на 2016 Автокаде. Все работает. Версию bgtools специально скачивал с #1. WIndows 7x64 корпоративная, Автокад 2016 SP1 + hotfix
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.09.2016, 13:29
#384
Walkmax


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


Это по поводу какого вопроса?
Актуальным остался этот:«есть ли способ вызова BGCFT без диалогового окна?»
Walkmax вне форума  
 
Автор темы   Непрочитано 13.09.2016, 13:30
#385
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Walkmax Посмотреть сообщение
есть ли способ вызова BGCFT без диалогового окна?
В макросе вызвать
Код:
[Выделить все]
(ConvField->Text nil)
или добавить свою команду
Код:
[Выделить все]
(defun C:CFTAll ()(ConvField->Text nil))
----- добавлено через ~3 мин. -----
Кнопка
Код:
[Выделить все]
^C^C^P(load "bgtools.LSP");BGBLALLDYN2S;(ConvField->Text nil);
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.09.2016, 13:48
| 1 #386
Walkmax


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


Спасибо, испытаю
Walkmax вне форума  
 
Непрочитано 12.10.2016, 19:23
#387
quazi


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


Цитата:
Сообщение от VVA Посмотреть сообщение
quazi, выложи dwg с примером. Посмотрю. Зависимостям никогда не пользовался
Извиняюсь что прекратил диалог) Думал обойтись без этого процесса и решил не беспокоить.
Но к сожалению взрывания блоков мне не избежать, а они гады разлетаются.
В приложенном файле несколько вхождений блока. Блок содежит геометрические и 2 размерные зависимости.
Применив BGBLEXP ко всему чертежу получаю кашу.
BGBLEXP к первому блоку отрабатывает нормально, просто сохраняются зависимости которые можно снять вручную.
Если выполнить BGBLEXP, а за ней _DelConstraint к полученным примитивам, то таким образом по одному можно корректно обработать все блоки.
Вложения
Тип файла: dwg
DWG 2010
test.dwg (117.0 Кб, 36 просмотров)
quazi вне форума  
 
Непрочитано 13.10.2016, 03:22
#388
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Кстати, да. Если есть параметризация, то блоки с помощью BGBLEXP можно взрывать только по одному с удалением зависимостей после каждого "взрыва"
RNB вне форума  
 
Непрочитано 13.10.2016, 08:55
#389
Кулик Алексей aka kpblc
Moderator

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


Может, тогда попробовать сначала вообще все зависимости снести?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.10.2016, 09:54
2 | #390
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Может, тогда попробовать сначала вообще все зависимости снести?
В этой теме нашел код в 1 строку, сносящий все зависимости (просто сносит соответствующий словарь). Вот теперь думаю, будет ли это корректно применительно ко всему чертежу. Или применять _DelConstraint с каждой группе после расчленения. Применение командных методов может здорово замедлить выполнение лиспа для чертежей с большим количеством блоков. Или как вариант в команде проверить наличие словаря и выдать предупреждение, что все зависимости будут снесены.

Код:
[Выделить все]
(defun _stripconstraint ( / dic)
  (and (setq dic (dictsearch (namedobjdict) "acad_assocnetwork")) (entdel (cdr (assoc -1 dic))))
)
(_stripconstraint)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.10.2016, 14:10
#391
quazi


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


Цитата:
Сообщение от VVA Посмотреть сообщение
... нашел код в 1 строку, сносящий все зависимости (просто сносит соответствующий словарь).
Спасибо, мою проблему решает.
Как встроить в bgtools не подскажу, наверное лучше несколько вариантов на выбор и ждать отзывов)

Еще есть вопрос по порядку прорисовки.
Для маскировки использую в блоках ассоциативные штриховки размещенные за своим контуром:Нажмите на изображение для увеличения
Название: asda.jpg
Просмотров: 66
Размер:	12.2 Кб
ID:	177642
После BGBLEXP ассоциативность штриховки сохраняется, а draworder нет -она выскакивает перед контуром. Можно ли это победить?
quazi вне форума  
 
Автор темы   Непрочитано 13.10.2016, 14:44
#392
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от quazi Посмотреть сообщение
Еще есть вопрос по порядку прорисовки.
Send to back все заливки во всех блоках
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.10.2016, 16:47
#393
quazi


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Немного не то. В определении блока у меня порядок штриховки правильный, неправильным становится после BGBLEXP уже в виде примитивов.
Пример во вложении. Делаю (_stripconstraint), затем BGBLEXP - штриховки вылазят наверх.
Теперь можно для каждой полученной штриховки выполнить _hatchedit и выбрать Draw order: Send Behind Boundary - получается необходимый порядок, выглядит как до взрывания.
Вложения
Тип файла: dwg
DWG 2010
test.dwg (114.8 Кб, 42 просмотров)
quazi вне форума  
 
Автор темы   Непрочитано 14.10.2016, 08:26
#394
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Мыслей пока никаких. Даже штатная команда не восстанавливает порядок следования. fixDraworder так же не помог
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 09.12.2016, 11:59
#395
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


у меня предложение . было бы хорошо если бы BGBLALLDYN2S , не просто формировал из 1000 динамических блоков 1000 статических.а брал бы значения всех свойств и формировал новый блок тип анзвание_свойтсво1_значение_свойства1_ .... и т.д. чтобы в итоге получлось не 1000 новых блоков а 15-20 .
и еще можно добавить удаление всех wipeout, а то wipeout в количестве 1000-2000 inre очень тормозят чертеж
Composter вне форума  
 
Автор темы   Непрочитано 09.12.2016, 20:59
#396
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Composter Посмотреть сообщение
у меня предложение . было бы хорошо если бы BGBLALLDYN2S , не просто формировал из 1000 динамических блоков 1000 статических.а брал бы значения всех свойств и формировал новый блок тип анзвание_свойтсво1_значение_свойства1_ .... и т.д. чтобы в итоге получлось не 1000 новых блоков а 15-20 .
я уже думал над этим. пока останавливало возможное длинное название блока. Вспомнил про хэш функцию Если названия дин свойств и значений предствавить строкой и взять ее хэш функцию. Надо это дело немного покурить
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.01.2017, 18:31
#397
b00


 
Регистрация: 21.10.2008
Петербург
Сообщений: 19
<phrase 1=


Добрый день. При использовании BGCFT из состава bgtools 3.1a наблюдаю следующую проблему:
Имеется рамка со штампом - динамический блок, в котором номер текущего листа берётся из названия вкладки листа и указывается в штампе посредством вставки в атрибут этого дин. блока с помощью поля (Ctrl+F) такого DieselExpression:
Код:
[Выделить все]
$(getvar,"CTAB")
(иногда дополнительно обрезается до нужного формата использованием substr, но в рассматриваемом примере этого нет). При вызове BGCFT в штампе значения поля с номером листа на всех листах, кроме активного, конвертируются в текст (что ожидается), но сбрасываются на "Model" или заменяются номером активного (на момент вызова BGCFT) листа. Возможно это как-то победить, чтобы номера листов конвертировались правильно?
Вложения
Тип файла: dwg
DWG 2010
пример_bgcft.dwg (167.1 Кб, 39 просмотров)
b00 вне форума  
 
Автор темы   Непрочитано 26.01.2017, 14:09
#398
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Могу пока только предложить исключать из обработки поля со ссылкой на diesel выражение и переменную CTAB. Т.е. тексты и атрибуты, в содержании которых есть ссылка на поле "%<\\AcDiesel $(getvar,\"CTAB\")>%" будут исключаться из обработки. Делать?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.01.2017, 18:01
#399
frostmourn


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


b00, попробуйте перед вызовом BGCFT выполнить такой код
Код:
[Выделить все]
 
(vlax-for x
	  (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))
	  (if (/= (strcase (vla-get-name x)) "MODEL")
		(progn (setvar 'ctab (vla-get-name x)) (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport))
	  )
)
Авось поможет...
frostmourn вне форума  
 
Непрочитано 27.01.2017, 13:43
#400
b00


 
Регистрация: 21.10.2008
Петербург
Сообщений: 19
<phrase 1=


Цитата:
Сообщение от VVA Посмотреть сообщение
Могу пока только предложить... Делать?
Спасибо, не нужно, решение из #399 помогло.

Цитата:
Сообщение от frostmourn Посмотреть сообщение
b00, попробуйте перед вызовом BGCFT выполнить такой код
Благодарю, помогло! Это принудительная перезагрузка переменной ctab просто? (С последующим обновлением листа).
b00 вне форума  
 
Непрочитано 05.02.2017, 16:57
#401
frostmourn


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


Ну, что-то типа того. Для каждого листа.
frostmourn вне форума  
 
Непрочитано 18.07.2017, 17:16
#402
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


VVA, возможно добавить вариант команды BG1BLEXP но только когда блок вставлен 1 раз.
Поясню, приходят чертежи экспортированные из других программ, где часто все отрисовано блоками, и данный блок используется 1 раз.
Хотелось что-бы команда взрывала такие блоки, естественно с сохранением значений атрибутов.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 18.07.2017, 22:14
#403
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


zenon, В принципе не вижу проблем. Вопрос что считать вставкой блока:
1. вставка блока 1 раз в текущее пространство (например модель), при этом блок может быть вставлен в пространство листа
2. вообще во всем чертеже существует только одно вхождение блока
3. считать ли вставкой вхождение блока в состав другого блока?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.07.2017, 10:21
#404
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


1. вставка блока 1 раз в текущее пространство (например модель), при этом блок может быть вставлен в пространство листа - возможно сделать только для текущего пространства?
2. вообще во всем чертеже существует только одно вхождение блока - именно так.
3. считать ли вставкой вхождение блока в состав другого блока? - нет, только первый уровень.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 19.07.2017, 11:11
#405
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от zenon Посмотреть сообщение
1. вставка блока 1 раз в текущее пространство (например модель), при этом блок может быть вставлен в пространство листа - возможно сделать только для текущего пространства?
2. вообще во всем чертеже существует только одно вхождение блока - именно так.
Мне кажется, или эти пункты конфликтуют между собой?
RNB вне форума  
 
Непрочитано 19.07.2017, 11:56
#406
Кулик Алексей aka kpblc
Moderator

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


С чего бы им конфликтовать? Ты находишься в листе, а единственное вхождение блока - в модели.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 19.07.2017, 12:24
#407
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Переформулирую вопрос. Возможное вхождение с состав другого блока не анализируем. Анализ есть ли блок, имеющий одно вхождение в другом пространстве исключаем. Если он имеет одно входение в другом пространстве, то его нет в текущем. Нефиг тогда здесь вызывать команду
Остается такое определение
1. Блок вставлен 1 раз в текущее пространсво (например модель). При этом возможные вставки блока в другое пространство (например листа/листов) и возможное вхождение блока в состав другого блока не анализируются
Так?
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 19.07.2017 в 16:36.
VVA вне форума  
 
Непрочитано 19.07.2017, 12:45
#408
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Цитата:
Сообщение от VVA Посмотреть сообщение
1. Блок вставлен 1 раз в текущее пространсво (например модель). При этом возможные вставки блока в другое пространство (например листа/листов) и возможное вхождение блока в состав другого блока не анализируются
- именно
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 20.07.2017, 14:26
#409
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
С чего бы им конфликтовать? Ты находишься в листе, а единственное вхождение блока - в модели.
Как это в чем? Во первом пункте zenon просит сделать проверку только для текущего пространства, а во втором, чтобы во ВСЁМ чертеже был только один блок.

Последний раз редактировалось RNB, 20.07.2017 в 14:35.
RNB вне форума  
 
Непрочитано 20.07.2017, 14:37
#410
Кулик Алексей aka kpblc
Moderator

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


Эммм... Как бы тебе объяснить? А, во, придумал!
1. В квартире (может быть) есть паук
2. Его надо убить
3. Проверить только кухню.
4. Если паук на кухне не обнаружен, выйти из квартиры.
Так более наглядно?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.07.2017, 17:25
#411
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Эммм... Как бы тебе объяснить? А, во, придумал!
1. В квартире (может быть) есть паук
2. Его надо убить
3. Проверить только кухню.
4. Если паук на кухне не обнаружен, выйти из квартиры.
Так более наглядно?
Если в пауках удобнее, то в первом пункте zenon попросил описанное тобой.
А во втором просит проверить всю квартиру на наличие паука.
Цитата:
Сообщение от zenon Посмотреть сообщение
2. вообще во всем чертеже существует только одно вхождение блока - именно так.
Причем, оба условия, согласно тому посту, должны были выполниться одновременно.
Наглядно?

То о чём договорились дальше здесь в расчет не берется, ибо про конфликт я писал до этого.
RNB вне форума  
 
Автор темы   Непрочитано 20.07.2017, 18:19
#412
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Offtop: Для dwg.ru есть новая фишка - объясняться в пауках.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.09.2017, 17:32
#413
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
M2B - Преобразовать MINSERT (МН-БЛОК) в блок
У меня почему всё равно получается анонимный блок (unnamed block), вот такой например: *U232
У меня массив блоков, а нужно взорвать, что бы были единичные вхождения блока, но с тем же именем. Файл прилагаю.
Вложения
Тип файла: zip пример_minsert.zip (91.8 Кб, 36 просмотров)

Последний раз редактировалось baaba, 04.09.2017 в 17:35. Причина: дополнил, приложил пример
baaba вне форума  
 
Автор темы   Непрочитано 06.09.2017, 22:31
#414
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от baaba Посмотреть сообщение
У меня почему всё равно получается анонимный блок (unnamed block)
Код команд M2U и M2B одинаков. Наверное, когда-то невнимательно внес (или забыл внести) изменения. Внес исправления
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.11.2017, 13:04
#415
dadatamada


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


Добрый день, уважаемые спецы.
Возник вопрос с приложенным файлом. Заказчик выполняет чертёж в связке АвтоКАД+СПДС+Что-тоЕщё. Файл формата АвтоКАД2010.
На чертеже имеются блоки которые при взрыве исчезают. Опробованы различные варианты и с bgtools и ExplodeM. Если применить BGBLEXP - все найденные блоки исчезают. Другие различные варианты и комбинации также не дали результатов.

Требуется взорвать блоки, но так чтобы всё осталось на плане.
Прошу помощи уважаемые.
Вложения
Тип файла: dwg
DWG 2010
Склад2 (3).dwg (208.8 Кб, 31 просмотров)
dadatamada вне форума  
 
Непрочитано 10.11.2017, 13:05
#416
Кулик Алексей aka kpblc
Moderator

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


М.б., ExpodeAllProxy?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.11.2017, 13:19
#417
dadatamada


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
М.б., ExpodeAllProxy?
Благодарю от души. Помогло EXPLODEALLPROXY.
dadatamada вне форума  
 
Непрочитано 22.12.2017, 15:10
#418
ServantosS


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


Здравствуйте!
Благодарю автора(ов) за отличную программу!
Есть предложение(пожелание) по развитию этой программы. Было бы замечательно, если можно было бы делать статическими не только динамические блоки 1 уровня, но и вложенные, даже при многократном вложении.
Готовлю файлы для передачи смежникам и заказчику, не хочу, чтобы динамические блоки (свои наработки для быстрого редактирования) оставались в чертежах. Просто взрывать все блоки не подходит, т.к. использую в блоках маску для наложения поверх других элементов в модели. Когда такой блок (серия блоков), расположенные в строгой последовательности один над другим взрываются, маска уползает куда-то не туда и ненужные элементы вылазят на передний план. DXF не подходит, т.к. нужен редактируемый файл именно в ДВГ.
ServantosS вне форума  
 
Непрочитано 27.12.2017, 01:13
#419
quazi


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


Цитата:
Сообщение от ServantosS Посмотреть сообщение
не только динамические блоки 1 уровня, но и вложенные, даже при многократном вложении.
А что вы делаете с динамическим блоком внутри другого динамического блока? Им что можно управлять как-то?

----- добавлено через ~3 мин. -----
Такой вопрос: можно ли как-то подавить окно диалога подтверждения, который есть в некоторых командах, например в BGCFT?
Пока в код не лез, но там же по идее просто один блок удалить, или можно проще?
Пробую использовать команды в составе макросов.
quazi вне форума  
 
Непрочитано 27.12.2017, 08:36
#420
ServantosS


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


Цитата:
Сообщение от quazi Посмотреть сообщение
А что вы делаете с динамическим блоком внутри другого динамического блока?
Внутри динамических блоков другие динамические блоки могут оказываться случайно, когда делаешь какой-то блок для быстрой подгонки по месту. Но это, скорее, исключение. Мой вопрос о том, как динамические блоки, оказавшиеся внутри статических (а вот такое часто бывает) превратить в статические не заходя в блоки 1 уровня за одну команду. Еще случай, когда динамический блок оказывается внутри массива.

Цитата:
Сообщение от quazi Посмотреть сообщение
Им что можно управлять как-то?
мне такое не известно.

Последний раз редактировалось ServantosS, 27.12.2017 в 08:43.
ServantosS вне форума  
 
Автор темы   Непрочитано 27.12.2017, 21:13
#421
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от quazi Посмотреть сообщение
Пока в код не лез, но там же по идее просто один блок удалить, или можно проще?
Создай свою команду, например
Код:
[Выделить все]
(defun C:CFTAll ()(ConvField->Text nil))
или просто используй в макросах функцию
Код:
[Выделить все]
(ConvField->Text nil)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.01.2018, 14:08
#422
Doctor_Che


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


При использовании команды BGBLEXP1 возникла проблема.
Ситуация такая. В блок 1-го уровня входят блоки с атрибутами. При этом блок 1го уровня лежит на слое "Слой1", а блоки 2-го уровня на слое "Слой2".
После использования команды BGBLEXP1 блоки 2-го уровня оказываются на слое "Слой2", а их атрибуты на слое "Слой1".
Можно ли переделать команду так, что бы атрибуты блоков 2-го уровня оставались на слое своего блока?
Doctor_Che вне форума  
 
Автор темы   Непрочитано 22.01.2018, 14:17
#423
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Doctor_Che, Можно. Файлик с примером приложи
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.01.2018, 15:12
#424
Doctor_Che


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Doctor_Che, Можно. Файлик с примером приложи
Приложил
Вложения
Тип файла: dwg
DWG 2013
Чертеж1.dwg (57.0 Кб, 25 просмотров)

Последний раз редактировалось Doctor_Che, 05.02.2018 в 14:46.
Doctor_Che вне форума  
 
Непрочитано 27.03.2018, 19:49
#425
edemine


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


Цитата:
Сообщение от Walkmax Посмотреть сообщение
с недавних пор на любую команду из bgtools стала появляться такая строка
Код:
[Выделить все]
 no function definition: vlax-erased-pнет определения функции: vlax-erased-p
при этом далее ничего не происходит, т.е. команда не выполняется
А у меня, на AutoCAD 2018 (Win10, 64, ver. 1709), это же сообщение выскакивает не "с недваних пор", а сразу, при первой же попытке использования.
Попробовал загрузить на соседнем компе. Там 2014. Без проблем, все работает
edemine вне форума  
 
Непрочитано 28.03.2018, 08:17
#426
Кулик Алексей aka kpblc
Moderator

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


(vl-load-com) ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.03.2018, 15:14
#427
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
(vl-load-com) ?
Правильнее так (vl-load-com) ? и как вариант еще Что делать, если не работает ActiveX
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.04.2018, 16:34
#428
MFor

Инженер-проектировщик
 
Регистрация: 08.02.2007
С-Петербург
Сообщений: 127
<phrase 1=


Добрый день.
Не нашел поиском, рискну спросить.
Можно сделать так чтобы BGCOLOR не перекрашивала заблокированные слои?

----- добавлено через ~7 мин. -----
И забыл еще спросить. Есть ли подобная утилита для установки веса линии всем выбранным примитивам?
MFor вне форума  
 
Непрочитано 04.04.2018, 17:22
#429
PsixVK


 
Регистрация: 19.10.2012
Киев
Сообщений: 748


Цитата:
Сообщение от MFor Посмотреть сообщение
И забыл еще спросить. Есть ли подобная утилита для установки веса линии всем выбранным примитивам?
есть
выбираете примитивы и перекрашиваете в любом удобном месте (на картинке жолтым показал: где цвет, вес и тип линий менять)
[IMG]http://i.*******info/i9/fb5da91fe45df4826f0af97ec3bbfb15/1522851675/65564/1225344/tcnm.jpg[/IMG]
PsixVK вне форума  
 
Непрочитано 04.04.2018, 17:29
#430
engngr

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


Заморозить заблокированные слои?
engngr вне форума  
 
Непрочитано 04.04.2018, 17:56
#431
PsixVK


 
Регистрация: 19.10.2012
Киев
Сообщений: 748


"BGCOLOR - Задает выбранный цвет всем объектам"
често я не понимать зачем эта команда если есть "Секд+Ф" и свойства где можно выбрать нужный цвет.
PsixVK вне форума  
 
Непрочитано 04.04.2018, 18:11
#432
MFor

Инженер-проектировщик
 
Регистрация: 08.02.2007
С-Петербург
Сообщений: 127
<phrase 1=


Товарищи, я может не так выразился, но выделить все и задать цвет, вес и т.п. без чужой помощи за 15 лет научился как-то сам

BGCOLOR задает цвет всем объектам (ну или почти всем), включая блоки, блоки в блоках и т.д.
Есть ли подобная утилита, которая задаст вес всем линиям на чертеже, включая примитивы в блоках?

BGCOLOR перекрашивает все объекты на всех слоях, будь они выключены, заморожены, заблокированы, в отличии от BGHATCHDEL, которая спрашивает удалять с заблокированных и замороженных или нет.
MFor вне форума  
 
Непрочитано 04.04.2018, 18:34
#433
PsixVK


 
Регистрация: 19.10.2012
Киев
Сообщений: 748


Цитата:
Сообщение от MFor Посмотреть сообщение
Товарищи, я может не так выразился, но выделить все и задать цвет, вес и т.п. без чужой помощи за 15 лет научился как-то сам

BGCOLOR задает цвет всем объектам (ну или почти всем), включая блоки, блоки в блоках и т.д.
Есть ли подобная утилита, которая задаст вес всем линиям на чертеже, включая примитивы в блоках?

BGCOLOR перекрашивает все объекты на всех слоях, будь они выключены, заморожены, заблокированы, в отличии от BGHATCHDEL, которая спрашивает удалять с заблокированных и замороженных или нет.
"BGBLFIX - Нормализация блоков (цвет, слой, взрываемость и т.п.)"
нормализируете блоки а дальше любые извр BGCOLOR
PsixVK вне форума  
 
Автор темы   Непрочитано 04.04.2018, 23:13
#434
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от MFor Посмотреть сообщение
Можно сделать так чтобы BGCOLOR не перекрашивала заблокированные слои?
Можно. Нужно посмотреть код. Давно писал, не помню. Гляну завтра на работе
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.04.2018, 16:46
#435
KohovecM


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


Добрый день, спасибо большое за хорошее LISP-приложение! Можно ли ещё внести в него 2 изменения по BGBLEXP:
1. - Выделить отдельную команду для взрыва блока без сохранениия полей в атрибутах?
2. - И при взрыве блоков, чтоб сохранялись постоянные атрибуты?
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок1.PNG
Просмотров: 49
Размер:	54.4 Кб
ID:	201238  Нажмите на изображение для увеличения
Название: Снимок2.PNG
Просмотров: 46
Размер:	41.4 Кб
ID:	201239  
Вложения
Тип файла: dwg
DWG 2007
MK_rod_beam.dwg (86.8 Кб, 23 просмотров)
KohovecM вне форума  
 
Автор темы   Непрочитано 13.04.2018, 08:30
#436
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от KohovecM Посмотреть сообщение
Выделить отдельную команду для взрыва блока без сохранения полей в атрибутах?
Добавил версию 3.4. Различия описал в 1 посте. В многострочных артибутах поля, особенно с символами \U+???? корректно выделить невозможно.
Поэтому поля остаются в версии 3.3. Для меня важнее скорость при обработке большого количества блоков, сохранение многострочных атрибутов как мтекста с маскировкой
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.04.2018, 08:58
#437
KohovecM


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


Спасибо большое!Атрибуты с постоянным режимом всё равно не сохраняются при разбиении, можно ли это сделать?
KohovecM вне форума  
 
Автор темы   Непрочитано 13.04.2018, 11:25
1 | #438
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Обновил до версии 3.5
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.04.2018, 12:14
#439
KohovecM


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


Спасибо огромное!
KohovecM вне форума  
 
Непрочитано 15.04.2018, 11:21
#440
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


VVA, заметил одну особенность команды BGCFT (снос полей). Она обрабатывает помимо блоков еще и внешние ссылки. Не знаю, задумано ли это так или просто получилось само собой, но это на мой взгляд не совсем правильно. Во-первых, подоснова, как правило, разрабатывается другими людьми, а менять их чертежи - дурной тон. А во-вторых, на чертежах с большим количеством (10+) увесистых внешних ссылок Автокад уходит в задумчивое состояние, из которого не возвращается (в обозримом будущем - пробовал ждать около часа).
Можно было бы воспользоваться BGCFTSEL, но она не преобразует поля, которые сидят в текстах внутри блока, преобразует только поля в атрибутах.
skkkk вне форума  
 
Автор темы   Непрочитано 15.04.2018, 15:09
2 | #441
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


skkkk, Была ошибка в логике. Вроде пофиксил. Тестируй. Теперь автокад не должен уходить в задумчивое состояние при наличии ссылок
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.04.2018, 11:40
#442
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


VVA, в задумчивое состояние он уходить перестал (всего-то на секунды три задумался), но также и перестал убирать поля в блоках. В предыдущей версии (у меня была 3.1а) в строке Modemacro (в левом нижнем углу) начиналась переборка всех блоков чертежа и, как я понимаю - заодно и внешних ссылок, на которых Автокад вис. В новой версии этой "переборки" не наблюдается. И поля в блоках - как в текстах, так и в атрибутах - остаются.
skkkk вне форума  
 
Автор темы   Непрочитано 17.04.2018, 19:24
1 | #443
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от skkkk Посмотреть сообщение
И поля в блоках - как в текстах, так и в атрибутах - остаются.
поправил
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.04.2018, 14:01 M2B работает не как ожидал
#444
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
M2B - Преобразовать MINSERT в блок
U2B - Преобразовать UNNAMED в блок
Здравствуйте!
При помощи M2B minserted блоки взрываются, но становятся анонимными, в то время как судя по описанию я ожидаю что это будет тот блок, который и был вставлен через minsert (дело в том что с помошью minsert лично удобно оперировать с массивами, например стоянки, но их некорректно воспринимают некоторые программы, 3Dmax, Revit). А при U2B после "выбери блок" вообще ничего не происходит?
Скажите, я неправильно трактую описание действия этих подпрограмм?
PS. Использую версию 3.5.1
Вложения
Тип файла: dwg
DWG 2010
minsert.dwg (81.6 Кб, 26 просмотров)
baaba вне форума  
 
Автор темы   Непрочитано 26.04.2018, 17:43
#445
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


baaba, Проверил на своей версии и специально скачал текущую с #1 - взрывает до блоков, который и был вставлен через minsert
Попробуй скачать еще раз и при загрузке убедить, что грузится эта версия
Цитата:
Команда:
Команда: (LOAD "D:/bgtools 3.5.1a/bgtools 3.5.1.lsp")
Background tools v.3.5.1 Наберите в командной строке: ...
Миниатюры
Нажмите на изображение для увеличения
Название: minsert vva.png
Просмотров: 87
Размер:	66.7 Кб
ID:	201658  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.06.2018, 09:53
#446
kirillwu


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


Приветствую, а есть возможность сделать работу функции "BGRB" так, чтобы она могла переименовать динамический блок в значение атрибута блока?
kirillwu вне форума  
 
Автор темы   Непрочитано 10.06.2018, 11:21
#447
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от kirillwu Посмотреть сообщение
Приветствую, а есть возможность сделать работу функции "BGRB" так, чтобы она могла переименовать динамический блок в значение атрибута блока?
Отвелил здесь LISP. Помогите с лиспом по переименованию нескольких вхождений динамического блока в значение его атрибута.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.06.2018, 14:50
#448
KohovecM


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


Здравствуйте, спасибо большое за вашу работу!
Пользуюсь функцией BGBLEXP для извлечения блоков, есть такая просьба: можно ли при извлечении сразу же удалять геометрические зависимости ( так как при одновременном выборе нескольких блоков и запуска BGBLEXP образуется хаос). В файле пример блока
Вложения
Тип файла: dwg
DWG 2007
Чертеж1.dwg (587.9 Кб, 26 просмотров)
KohovecM вне форума  
 
Автор темы   Непрочитано 23.06.2018, 19:45
#449
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


KohovecM, Этот вопрос уже поднимался (см. #387-#391)
Добавил в BGBLEXP запрос на удаление геометрических зависимосчтей
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.06.2018, 10:40
#450
KohovecM


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


VVA, BGBLEXP в версии 3.6 у меня отказывается вовсе работать, выдаёт:
??????? ???? ??????????Выполняется регенерация модели.
Миниатюры
Нажмите на изображение для увеличения
Название: 111.jpg
Просмотров: 50
Размер:	148.2 Кб
ID:	204010  
KohovecM вне форума  
 
Автор темы   Непрочитано 30.06.2018, 15:33
#451
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


KohovecM, Странно. Там только запрос добавился. На моем автокаде 2013 работает. Озвучь версию Автокада, Windows.
Проверял на файле из #448
Миниатюры
Нажмите на изображение для увеличения
Название: bgblexp.png
Просмотров: 42
Размер:	59.2 Кб
ID:	204042  
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 30.06.2018 в 15:53.
VVA вне форума  
 
Непрочитано 06.07.2018, 15:18
#452
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
baaba, Проверил на своей версии и специально скачал текущую с #1 - взрывает до блоков, который и был вставлен через minsert
Попробуй скачать еще раз и при загрузке убедить, что грузится эта версия
Заметил 2 вещи: 1. Нужно быть в WCS, нужно быть внимательнее. Но это не проблема. 2. Переносит объекты в текущий слой со свойствами "послою", вместо того что бы оставить как есть. Это сильно затрудняет. Если можно - хотелось бы обсудить.
baaba вне форума  
 
Автор темы   Непрочитано 06.07.2018, 19:26
#453
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


baaba, Обсудить можно. Выложи пример. Но отвечу только через неделю, т.к. буду в командировке
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.07.2018, 09:52
#454
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
baaba, Обсудить можно. Выложи пример. Но отвечу только через неделю, т.к. буду в командировке
Вот уже более месяца гоняю BricsCAD. По ощущениям меня всё устраивает кроме отсутствия работы с динамическими блоками и отсутствие собственно редактора блоков. Есть много плюсов в самой программе, в поддержке, в клиентоориентированности, в т. ч. на российский сегмент (взаимодействую с российской коммандой). Что особенно важно - есть поддержка Autolisp, а я как раз только его и применяю и активно допиливаю под себя, если необходимо. Недавно возник вопрос по работе bgtools. Вот что ответила поддержка:

Цитата:
Действительно, функция (vla-ObjectIdToObject32) недоступна (Acad / ARX отменил эту функцию с версией > = 2015);
В нашей системе эта функция все еще отображается в COM интерфейсе, но функция Lisp для нее отсутствует.

Теперь это реализовано.
Надеюсь, что это исправление будет включено в последнее обновление V18 (планируется в следующий раз), но не гарантировано; в крайнем случае будет доступно с V19.

В качестве обходного решения на данный момент я добавил модифицированную версию файла Lisp -
он будет работать с BricsCAD V17 + V18, также с AutoCAD> = 2015.
Возможно я не в курсе и в последних версиях bgtools это уже решено.

PS Я серьёзно задумался над возможностью переползти полностью на BricsCAD
baaba вне форума  
 
Автор темы   Непрочитано 18.07.2018, 13:25
#455
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от baaba Посмотреть сообщение
Возможно я не в курсе и в последних версиях bgtools это уже решено.
Спасибо за информацию, но на эти грабли я уже натыкался
А что с вопросами в #452? Командировка уже закончилась. Выложи пример - посмотрю что не так
Миниатюры
Нажмите на изображение для увеличения
Название: id32.png
Просмотров: 34
Размер:	15.8 Кб
ID:	204595  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.07.2018, 14:33
#456
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
Спасибо за информацию, но на эти грабли я уже натыкался
А что с вопросами в #452? Командировка уже закончилась. Выложи пример - посмотрю что не так
Вложил пример. Дело в том что я часто пользуюсь minsert (заметил мало кто им пользуется, мне нужен постоянно). Там два массива, в разных слоях. После применения M2B то что было раньше массивом приобретает свойства текущего слоя а ожидается что они останутся в своих слоях. Попробуй пожалуйста.

Кстати minsert плохо от слова совсем отображается в Revit, 3DS Max, потому это для меня так важно.

То что надо помнить про WCS это не столь критично, но нужно держать в голове. У меня вылетает. Было бы хорошо что бы разбивка происходила в любой UCS с сохранением конфигурации. Это второе пожелание
Вложения
Тип файла: dwg
DWG 2010
minsert.dwg (461.7 Кб, 25 просмотров)
baaba вне форума  
 
Непрочитано 18.07.2018, 15:19
#457
baaba

архитектор
 
Регистрация: 07.07.2007
Москва
Сообщений: 664
<phrase 1= Отправить сообщение для baaba с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
Спасибо за информацию, но на эти грабли я уже натыкался
А что с вопросами в #452? Командировка уже закончилась. Выложи пример - посмотрю что не так
Поддержка BricsCAD модифицировала ваш код, прилагаю
Вложения
Тип файла: zip 83201-83201-bgtools_3_6.zip (49.0 Кб, 38 просмотров)
baaba вне форума  
 
Непрочитано 28.07.2018, 11:25
#458
sychp84


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


Добрый день! А в accoreconsole bgtools работает?
sychp84 вне форума  
 
Непрочитано 29.07.2018, 18:17
#459
Кулик Алексей aka kpblc
Moderator

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


Если в коде используется ActiveX, то вряд ли. В конце концов, кто мешает проверить?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.07.2018, 19:43
#460
sychp84


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


В bat:
d:
cd d:\222
FOR %%f IN (*.dwg) DO "C:\Program Files\Autodesk\AutoCAD 2013\accoreconsole.exe" /i "%%f" /s "D:\222\qw3.scr"
В scr:
(LOAD "D:\\222\\bgtools 3.1a.lsp")
BGCFT
QSAVE
Находит, загружает, после команды ВGCFT пишет:bad argument:VLA-OBJECT nilbad argument type: VLA-OBJECT nil.
Просто я с LISP мягко говоря на вы и не понимаю чего он хочет. Вот и думаю дальше рыть, либо действительно никак.
Да, при обычном перетаскивании скрипта в окно редактора,все работает.

Последний раз редактировалось sychp84, 29.07.2018 в 19:46. Причина: Уточнение
sychp84 вне форума  
 
Непрочитано 29.07.2018, 21:11
#461
Кулик Алексей aka kpblc
Moderator

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


Я код уже не помню, а просматривать его лениво. Вот что нашел в собственных архивах: http://autolisp.ru/2014/03/04/accoreconsole-lisp-debug/
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.08.2018, 11:09
#462
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от sychp84 Посмотреть сообщение
А в accoreconsole bgtools работает?
Цитата отсюда
Цитата:
I am under the impression that Core Console doesn't work with vla -functions. Those are built on ActiveX, which is Windows-specific functionality.
----- добавлено через ~5 ч. -----
Цитата:
Сообщение от baaba Посмотреть сообщение
После применения M2B то что было раньше массивом приобретает свойства текущего слоя а ожидается что они останутся в своих слоях. Попробуй пожалуйста.
.... Было бы хорошо что бы разбивка происходила в любой UCS с сохранением конфигурации. Это второе пожелание
Сделал Тестируй
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.08.2018, 09:15
#463
sychp84


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


Offtop: Спасибо!буду пробовать на net.
sychp84 вне форума  
 
Непрочитано 14.09.2018, 12:20
#464
ArchPavel

кончающий инженер-гидротехник
 
Регистрация: 17.12.2012
Сообщений: 67


Вчера решил попробовать применить команду BGCFT на своих файлах с обилием полей в таблицах.
Часть файлов откаталась просто на загляденье, а часть не хочет - сразу после вызова команды и нажатия ОК в предупреждающем окне "мы все умрем" (спасибо разработчику за заботу, реально полезно) Акад пишет в строке:
"Converting Field in Automation Error. Description was not provided.Automation Error. Invalid layer" и возвращается в исходное "Command:"
Попробовал версии скрипта 3,3 и 3,7 - одинаково.
Автокад "обычный", 2014х64 со всеми сервиспаками. Файлы сохранены всегда в версии 2010.

Заблокированных слоев в файле нет, замороженных тоже. Есть блоки с запретом на взрыв, но они есть и в тех файлах, что нормально подвеглись насилию.
Подскажите, в чем может быть подвох?

----- добавлено через ~5 ч. -----
Добавлю, еще потыркался - после противного английского сообщения и возврата к строке "Command:" нажимаю правую кнопку мыши (повтор последней команды) и высвечивается EXECUTETOOL. Автокад чего-то ждет, еще одно нажатие правой кнопкой мыши повторяет BGCFT
ArchPavel вне форума  
 
Автор темы   Непрочитано 14.09.2018, 22:12
#465
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


ArchPavel,файлик с примером приложи. Я уже с сегодняшнего дня в отпуске, поэтому смогу попытаться посмотреть в чем дело или в субботу 15 сентября, или уже после 29.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.09.2018, 10:16
#466
ArchPavel

кончающий инженер-гидротехник
 
Регистрация: 17.12.2012
Сообщений: 67


Дико извиняюсь за задержку.
Попытался вычленить часть чертежа для "показать", и на нем скрипт выдал совсем новое:
Command: BGCFT
Converting Field in bad argument type: (or stringp symbolp): nilAutomation
Error. Invalid layer
Файл с этой "ошибкой" во вложении

----- добавлено через ~1 ч. -----

Однако, удаление этих двух полей из чертежа не снимает проблемы, приведенной в файле 123_spb_2.dwg - автокад после предупреждения "мы все умрем" успевает обработать существенную часть полей на чертежах, но затем, выдав ошибку, перестает обрабатывать. Необработанными остаются поля как раз с того плана, что я выложил ранее.

Данная ошибка не поддается устранению и файл выходит частично переработанный, частично нет, то есть совсем не айс.
Вложения
Тип файла: dwg
DWG 2010
123_spb_2.dwg (321.5 Кб, 27 просмотров)

Последний раз редактировалось ArchPavel, 21.09.2018 в 14:03. Причина: Проблема сохранилась
ArchPavel вне форума  
 
Непрочитано 16.09.2018, 11:31
#467
ArchPavel

кончающий инженер-гидротехник
 
Регистрация: 17.12.2012
Сообщений: 67


Людоед пойман, в том смысле, что купированы поля, дающие Converting Field in Automation Error. Description was not provided.Automation Error. Invalid layer.
Они изначально не привязаны к полилиниям (суть этих полей в чертеже - брать площадь полилинии), т.е. решетку отображают изначально (использовались как шаблон). Однако на другие решетки в чертежах скрипт везде реагировал благосколонно, перерабатывая такое поле в решетку в виде текста, а вот на эти два - что то ему мешает.
Надеюсь поможет.
Вложения
Тип файла: dwg
DWG 2010
123_spb_1.dwg (422.1 Кб, 29 просмотров)
ArchPavel вне форума  
 
Непрочитано 01.10.2018, 14:06
#468
allar8


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


Давно пользуюсь этим лиспом. Разработчику респект, но только в качестве разбивки многоуровневых блоков с атрибутами.
Щаз возникла необходимость разбить много разных блоков в которых запрет на разбивку стоит.
UХ вроде частично справился с этой задачей, правда не очень корректно (почему то некоторые блоки перевернул) да и к сожалению каждый блок нужно выбирать отдельно, что по сути равносильно тому что зайти в блок и включить разбивку. Может подскажете как быстро разбить разом кучу разных неразбиваемых блоков?
allar8 вне форума  
 
Непрочитано 09.10.2018, 12:46
#469
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


allar8, U2BM ? А потом эти блоки расчленить командой AutoCAD
Хмурый вне форума  
 
Автор темы   Непрочитано 13.10.2018, 10:35
#470
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от allar8 Посмотреть сообщение
Щаз возникла необходимость разбить много разных блоков в которых запрет на разбивку стоит.
Попробуй командой BGBLFIX снять запрет на блокировку, а дальше любым способом
ArchPavel, Пропустил твой пост. Посмотрю в ближайшее время
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.10.2018, 06:06
#471
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Тоже вычленил людоеда. Команда BGCFT в этом файле выдает ошибку.
Цитата:
Converting Field in Automation Error. Description was not provided.Automation Error. Invalid layer
Причем в файле нет полей, проблема только в одном динамическом блоке. Т.е. в файле с множеством полей и этим блоком, команда прерывается, не доделав работу. Что с ним не так?
Вложения
Тип файла: dwg
DWG 2013
Ошибка_BGCFT.dwg (37.0 Кб, 34 просмотров)
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 24.10.2018, 11:08
#472
frostmourn


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


Некорректные Мтексты в блоке. Через CtrlA выбираются.
frostmourn вне форума  
 
Непрочитано 30.10.2018, 17:07
#473
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 910


bgblfix 3.7
Меняет тип линии, цвет и вес некоторых объектов, несмотря на установленные галочки "не менять". Пример до и после во вложении.
Autocad 2015 SP 2
Миниатюры
Нажмите на изображение для увеличения
Название: bgblfix.PNG
Просмотров: 65
Размер:	17.0 Кб
ID:	207547  
Вложения
Тип файла: dwg
DWG 2013
тест bgblfix.dwg (77.1 Кб, 27 просмотров)
kacugu вне форума  
 
Непрочитано 15.11.2018, 12:36
#474
Stik


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


При расчленении блока появляется куча надписей,которые можно удалить только вручную. Может есть другие способы?
Вложения
Тип файла: dwg
DWG 2007
АР-11. Разрез 1-1.dwg (760.8 Кб, 29 просмотров)
Stik вне форума  
 
Автор темы   Непрочитано 17.11.2018, 14:12
3 | #475
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от ArchPavel Посмотреть сообщение
Людоед пойман,
Цитата:
Сообщение от VVA Посмотреть сообщение
ArchPavel, Пропустил твой пост. Посмотрю в ближайшее время
Цитата:
Сообщение от Krieger Посмотреть сообщение
Тоже вычленил людоеда. Команда BGCFT в этом файле выдает ошибку.
Извиняюсь за задержку, был занят. Вроде пофиксил. Пробуйте версию 3.8

kacugu, #473 - убери галку с чек-бокса "Слой на 0"
Stik, #474 Блок создан скорее всего программно с большим количеством атрибутов с пустым значением, который затем преобразован в МН-Блок с количеством столбцов и строк = 1
Выполни команды
M2B - преобразование МН блок в неименованный блок
U2B - преобразовать в именованный
BGBLEXP - расчленить блок
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.11.2018, 16:39
#476
Stik


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


Цитата:
Сообщение от VVA Посмотреть сообщение
M2B - преобразование МН блок в неименованный блок
U2B - преобразовать в именованный
BGBLEXP - расчленить блок
Отлично! Все получилось
Stik вне форума  
 
Непрочитано 17.11.2018, 20:19
#477
ArchPavel

кончающий инженер-гидротехник
 
Регистрация: 17.12.2012
Сообщений: 67


Спасибо за поиск решения проблемы.
К сожалению, проблема "незавершенного конвертирования" (из 123_spb_2.dwg) сохранилась. В моем файле часть полей преобразовывается, затем Command: BGCFT >
Converting Field in bad argument type: (or stringp symbolp): nilAutomation Error. Invalid layer и стоп. Остальная часть остается не конвертирована.
Проблема двух полей (желтое и красное из 123_spb_1.dwg) решена, скрипт съедает их теперь без заминки. Но я считал их лишь препятствием на пути к решению основной проблемы в 123_spb_2.dwg...
Проверено на AutoCAD 2014x64 и AutoCAD 2018x64

----- добавлено через ~2 мин. -----
Может ли быть такое ,что мешает какой-либо предзагруженный скрипт? Например LayerDIrector или DimLay...
ArchPavel вне форума  
 
Автор темы   Непрочитано 17.11.2018, 21:58
1 | #478
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


ArchPavel, Недосмотрел, обновил до 3.8.1. Тестируй
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.11.2018, 22:27
#479
ArchPavel

кончающий инженер-гидротехник
 
Регистрация: 17.12.2012
Сообщений: 67


Вроде бы еще не Новый год...но волшебство свершилось!!! Спасибо огромное! У меня закончились проблемные файлы ))
ArchPavel вне форума  
 
Непрочитано 19.11.2018, 16:23
#480
posetitel


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


есть команда BGBLXCLIPEXP, которая взрывает подрезанный блок, а можно добавить команду, которая взрывает все подрезанные блоки?
(чтобы каждый раз не выделять их и не запускать BGBLXCLIPEXP)
posetitel вне форума  
 
Автор темы   Непрочитано 19.11.2018, 17:42
1 | #481
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


posetitel, Нельзя. При указании блока точка выбора используется для определения оставляемой области подрезки. Плюс там много операций, использующих команды Автокада, при вызове которых необходимо, чтобы объекты были на экране. Для показа блоков с подрезкой есть команда BGBLXCLIP
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.11.2018, 11:26
#482
posetitel


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


скажите, а как в одном лиспе уместить несколько команд, которые будут автоматически выполняться одна за другой?
например, сначала выполняю BGLAYDEL, потом BG1BLEXP и т.д.,
конкретную комбинация включает команды не только работы с подосновой, пока хотел бы понять принцип
posetitel вне форума  
 
Непрочитано 26.11.2018, 12:55
1 | #483
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


posetitel, именно с этими командами у меня сработало следующим образом:
Код:
[Выделить все]
(defun C:ONELISP ( / )
	(C:BGLAYDEL)
	(C:BG1BLEXP)
)
Это общий принцип. Но, полагаю, теоретически, возможны конфликты разных команд. Надо пробовать.
skkkk вне форума  
 
Непрочитано 26.11.2018, 13:01
#484
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


а разве с префиксом команды надо вызывать?
Сергей812 вне форума  
 
Непрочитано 26.11.2018, 13:04
1 | #485
Кулик Алексей aka kpblc
Moderator

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


Определенные в лиспе - да. Ну или через command / command-s / vl-cmdf
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.11.2018, 13:17
#486
posetitel


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


а есть команда или лисп, которые внедряют в чертеж все чертежи из внешних ссылок?
вроде как соответствует теме работы с подосновой, надо все выданные чертежи внедрить в один и на нем уже работать.

Последний раз редактировалось posetitel, 26.11.2018 в 13:30.
posetitel вне форума  
 
Непрочитано 26.11.2018, 13:21
#487
Кулик Алексей aka kpblc
Moderator

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


posetitel, во-первых, действия администрации не обсуждаются - читай правила.
Во-вторых, один и тот же вопрос в тысяче мест, мягко говоря, вызывает недоумение - неужели понятие кросспостинга и что за этим следует, неизвестно?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.11.2018, 13:37
#488
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


а в третьих - есть поиск: тема с примером готового кода находится за несколько минут. Что мешает забить те же самые слова "Внедрение всех внешних ссылок" вместо поста в поисковую строку форума?
Сергей812 вне форума  
 
Непрочитано 26.11.2018, 14:21
#489
posetitel


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


в теме внедрение всех внешних ссылок командой и последующее EXPLODE указан код
Цитата:
(vl-load-com)
(vlax-for i (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object)))
(if (equal (vla-get-isxref i) :vlax-true)
(vla-bind i :vlax-false)
)
)
этот код не запускается, как будто он не до конца дописан
posetitel вне форума  
 
Непрочитано 26.11.2018, 14:30
#490
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Просто надо этот код вставить внутри команды:
Код:
[Выделить все]
 (с:%Имя вашей команды%( / i )
...
) 
Сергей812 вне форума  
 
Непрочитано 26.11.2018, 16:04
#491
posetitel


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


удалил предыдущую запись.
вроде все заработало
код прикладываю
Цитата:
(c:vnedr ( / i )
(vl-load-com)
(vlax-for i (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object)))
(if (equal (vla-get-isxref i) :vlax-true)
(vla-bind i :vlax-false)
)
))
идея была в том числе и включить этот код в базовые команды лиспа работы с подосновой.
ну а стоит это делать или нет, решайте

Последний раз редактировалось posetitel, 26.11.2018 в 16:51.
posetitel вне форума  
 
Непрочитано 26.11.2018, 20:25
#492
posetitel


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


Сегодня обратил внимание, что в 14 автокаде команда BGLAYDEL ломает объекты СПДС-extension
файлы до запуска команды и после запуска прилагаю
Вложения
Тип файла: dwg
DWG 2013
Чертеж-до очистки.dwg (35.5 Кб, 24 просмотров)
Тип файла: dwg
DWG 2013
Чертеж-после очистки.dwg (34.0 Кб, 21 просмотров)
posetitel вне форума  
 
Непрочитано 28.11.2018, 11:32
#493
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


Пользовался раньше для преобразования полей в текст вот командой cftall/(sel)
Отсюда http://forum.dwg.ru/showpost.php?p=395488&postcount=26
Но заметил что если использовать команду cftall, то значок диаметра в размере заменялся значком вопроса.
В посте указано что дальнейшее развитие в этой теме.
Попробовал команду BGCFT.
Но команда BGCFT у меня не работает.
___________
Команда: BGCFT
Converting Field in неверный тип аргумента: stringp nilОшибка Automation. Неверный слой
_____________

У меня поля внутри динамических блоков.
Но команда BGCFTSEL работает нормально.
Меня устраивала старая cftall, если бы не глюк со значком диаметра в размерах.

Можно конечно воспользоваться командой BGCFTSEL и выделить все рамкой, как альтернатива BGCFT.

Автокад 2016.

ЗЫ: Создал в пустом файле два мтекста. Во втором тексте сделал поле ссылающиеся на первый текст. Команда BGCFT сработала нормально.
Проделал такой же эксперимент с обычным блоком и атрибутом с полем. Тоже нормально отработала команда.
Похоже дело именно в динамических блоках.
Во вложение пример дин. блока.
Вложения
Тип файла: dwg
DWG 2010
111.dwg (130.8 Кб, 28 просмотров)
__________________
AutoCad 2011 -> AutoCad 2013 -> AutoCad 2016 -> AutoCad 2011 -> AutoCad 2022
Astartes вне форума  
 
Автор темы   Непрочитано 28.11.2018, 12:00
#494
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Astartes, Поправил. Обновил до версии 3.8.2
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.11.2018, 12:17
#495
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


VVA, Спасибо работает.
А какие строчки надо удалить, чтобы не выскакивало предупреждение о преобразовании полей?
Нашел в коде, удалил. Но чтото видать не то удалил или не до конца.

(bg:msg-yes-no "Внимание"
"Все поля будут преобразованы в текст !!!\nПродолжить?"
)
(bg:msg-yes-no "Attension"
"All fields will be transformed to the text!!!\nto Continue?"
)
__________________
AutoCad 2011 -> AutoCad 2013 -> AutoCad 2016 -> AutoCad 2011 -> AutoCad 2022
Astartes вне форума  
 
Автор темы   Непрочитано 28.11.2018, 12:44
#496
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Вместо
Код:
[Выделить все]
(defun C:BGCFT ()(ConvField->Text t)(princ))
поменяй на
Код:
[Выделить все]
(defun C:BGCFT ()(ConvField->Text nil)(princ))
А лучше создай свою команду
Код:
[Выделить все]
(defun C:BGCFTNOTASK ()(ConvField->Text nil)(princ))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.02.2019, 14:30
#497
neb0skreb


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


Добрый день.
После запуска LISPa вываливается ошибка.
(Команда: BGBLFIX
; ошибка: Ошибка Automation. Ключ не найден)
Воспроизводится только на одном файле.
В чем может быть проблема?
Файл прикрепляю: https://yadi.sk/d/ri9FaIduOvUOTg
neb0skreb вне форума  
 
Непрочитано 27.02.2019, 00:10
#498
engngr

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


Offtop:
Цитата:
Сообщение от neb0skreb Посмотреть сообщение
Файл прикрепляю
Не самый размазанный по z чертеж.
engngr вне форума  
 
Непрочитано 01.03.2019, 11:15
#499
Des501(К)


 
Регистрация: 01.03.2019
Одесса
Сообщений: 2
Отправить сообщение для Des501(К) с помощью Skype™


Добрый день.
Я столкнулся с тем что на одном "удачном" файле версия 3.3 работает изумительно, а версия 3.8.2 уходит в глубокую задумчивость и вызывает в конце концов какую-то внутреннюю ошибку

Спасибо Кулик Алексей aka kpblc за замечание, сейчас поправлю пост

и еще хотел спросить:
- есть прекрасная функция "BGCOLOR - Задает выбранный цвет всем объектам" - при запуске она открывает окно выбора цвета. Есть ли возможность вызвать ее с параметром, номером цвета, что бы она просто отработала без вывода этого окна.
Миниатюры
Нажмите на изображение для увеличения
Название: image_2019_03_01T07_35_27_221Z.png
Просмотров: 30
Размер:	29.1 Кб
ID:	211503  
Вложения
Тип файла: dwg
DWG 2018
chertezh-31-31.dwg (199.9 Кб, 20 просмотров)

Последний раз редактировалось Des501(К), 02.03.2019 в 08:15.
Des501(К) вне форума  
 
Непрочитано 01.03.2019, 12:37
#500
Кулик Алексей aka kpblc
Moderator

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


Des501(К), а тебе в пост что, файл не приложить?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 03.03.2019, 16:17
#501
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Des501(К) Посмотреть сообщение
есть прекрасная функция "BGCOLOR - Задает выбранный цвет всем объектам" - при запуске она открывает окно выбора цвета. Есть ли возможность вызвать ее с параметром, номером цвета, что бы она просто отработала без вывода этого окна.
Есть частично, без обработки цвета в стиле мультилиний.
Код:
[Выделить все]
(ChangeAllObjectsColor (vla-get-activedocument(vlax-get-acad-object))  1)
где 1 - номер цвета

Цитата:
Сообщение от Des501(К) Посмотреть сообщение
а версия 3.8.2 уходит в глубокую задумчивость и вызывает в конце концов какую-то внутреннюю ошибку
Буду тестить, но не плохо бы еще сообщить версию Автокада, его разрядность и до кучи операционную систему
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.03.2019, 14:03
#502
Virt Norton

инженер-проектировщик
 
Регистрация: 30.06.2010
Москва
Сообщений: 26


Всем привет!
Хочу выразить благодарность создателям этих полезных утилит!

У меня вопрос вот какой, BGBLEXP сколько блоков может осилить за раз, есть ли ограничение в их количестве?

Решил воспользоваться данными лиспами для очистки тяжелого файла, ТРЦ типа леруа плюс еще всякого там полно.
Запустил сначала BGLAYDEL, файл с 12Мб стал 7Мб, далее BGBLFIX, чтобы можно было расчленять, далее BGBLEXP, после этого файл начал расти в итоге его размер превысил 23Мб и вообще перестал двигаться.
Может быть такое, что из взорванных блоков первого уровня высыпались десятки тысяч других блоков, что и явилось причиной увеличения размера файла?
Подсчитать количество блоков на чертеже после BGBLEXP через свойства нельзя, говорит типа ничего не выбрано, хотя выбрано на самом деле.
Чередовал BGBLEXP с BGBLFIX раза три, в итоге через F2 посмотрел количество выбранных блоков 199953 items, не чертеж, а какая то бешенная матрешка.
Я скорее всего неправильно пользуюсь программой.
Подскажите в каких действиях ошибка.

Винда 10/64, акад 17 инглиш.

Спасибо!

Установил bgtools3.8.2
Virt Norton вне форума  
 
Автор темы   Непрочитано 06.03.2019, 15:18
#503
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Virt Norton Посмотреть сообщение
Может быть такое, что из взорванных блоков первого уровня высыпались десятки тысяч других блоков, что и явилось причиной увеличения размера файла?
Может. Мне такие чертежи попадались

Цитата:
Сообщение от Virt Norton Посмотреть сообщение
Подсчитать количество блоков на чертеже после BGBLEXP через свойства нельзя, говорит типа ничего не выбрано, хотя выбрано на самом деле.
Без файла - гадание на кофейной гуще

Цитата:
Сообщение от Virt Norton Посмотреть сообщение
Я скорее всего неправильно пользуюсь программой.
Криминала не замечено. Вроде все правильно делаешь

В итоге: Без файла - гадание на кофейной гуще
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.03.2019, 10:29
#504
Virt Norton

инженер-проектировщик
 
Регистрация: 30.06.2010
Москва
Сообщений: 26


А, что значит "достигнут внутренний предел стека"?
Сообщение появляется в ком строке как сообщение об ошибке
Virt Norton вне форума  
 
Непрочитано 03.04.2019, 11:01
#505
shartal


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


Добрый день. Команда BGBLEXP1NOATT изменяет порядок прорисовки объектов после расчленения блоков. Для сравнения, после расчленения блоков штатной командой, порядок не меняется. Можно с этим что- то сделать?
shartal вне форума  
 
Автор темы   Непрочитано 03.04.2019, 17:39
#506
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


shartal, Попробуй версию 3.3 из шапки. Там при расчленении использовался ExpressTools
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.04.2019, 09:43
#507
valerik88


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


Не понимаю, эта программа должна в паре ещё с какой-то работать? При выполнении команды BGCOLBL выбивает ошибку:
no function definition: _DWGRU-LAYER-CREATEОшибка Automation. Неверный слой.
Нашёл где-то на форуме эту функцию _DWGRU-LAYER-CREATE загрузил её, вылезла новая ошибка
no function definition: _KPBLC-LINETYPE-LOADОшибка Automation. Неверный слой

Где всю библиотеку нужных функций взять, что бы команда BGCOLBL работала?
valerik88 вне форума  
 
Автор темы   Непрочитано 15.04.2019, 14:08
#508
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


valerik88, Там в коде описка. Поиском найди и замени _DWGRU-LAYER-CREATE на bg:layer-create. Я чуть позже обновлю архив
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 17.04.2019, 18:09
2 | #509
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Обновил архив
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.04.2019, 08:55
#510
Эдуард Артурович


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


Помогите, пожалуйста отключить уведомление, обрабатываю пакет файлов и на каждом приходится нажимать "ок"

Код:
[Выделить все]
 (bg:layer-status-save)(vla-startundomark Doc)
 (if (or (not Ask )
	 (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
	   (bg:msg-yes-no "Внимание"
	     "Все поля будут преобразованы в текст !!!\nПродолжить?"
	     )
	   (bg:msg-yes-no "Attension"
	     "All fields will be transformed to the text!!!\nto Continue?"
	     )
	   )
	 )
Эдуард Артурович вне форума  
 
Автор темы   Непрочитано 19.04.2019, 09:41
#511
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Эдуард Артурович, Я вам давал ответ в этой теме
Каким образом обрабатываете пакет файлов?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.04.2019, 11:15
#512
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,808


Offtop: (bg:msg-yes-no "Attenstion"
koMon вне форума  
 
Непрочитано 28.05.2019, 12:12
#513
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


При обработке файла, приложенного к сообщению, командой BGLAYDEL акад виснет намертво. Чертеж dwg заархивировал, большой слишком. Использую версию 3.8.2.1. Акад 2013, Win 7x64
VVA, посмотрите, пожалуйста
Вложения
Тип файла: zip П22.zip (9.85 Мб, 23 просмотров)

Последний раз редактировалось crosandr, 28.05.2019 в 12:39.
crosandr вне форума  
 
Автор темы   Непрочитано 30.05.2019, 17:11
#514
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


crosandr, Обновил версию до 3.9 Но минуты полторы-две подождать придется
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.05.2019, 08:56
#515
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Цитата:
Сообщение от VVA Посмотреть сообщение
минуты полторы-две подождать придется
Это лучше, чем 20-30. Я потом этот файл оставил ждать до упора. В итоге слои удалились, но ооочень уж долго, потому и возникло ощущение зависания.
Все работает. Генплан весом около 38М обработался примерно за минуту.
Спасибо!

Есть еще вопрос из разряда фантазий. Имеется файл с кучей слоев и только одним сформированным листом с одним видовым экраном. Есть желание максимально облегчить файл. Слои, которые выключены или заморожены в модели, удаляются командой BGLAYDEL. Можно ли еще удалять слои, которые отключены в единственном видовом экране?
В идеале листов может быть несколько, соответственно и видовых экранов больше одного. То есть слои, не используемые ни в одном видовом экране, подлежат также удалению.
Сильно сложно сделать дополнительную команду или опцию?

Последний раз редактировалось crosandr, 31.05.2019 в 09:52.
crosandr вне форума  
 
Непрочитано 31.05.2019, 10:22
#516
Диммм

Инженер
 
Регистрация: 13.03.2013
Сообщений: 28


Цитата:
Сообщение от crosandr Посмотреть сообщение
Имеется файл с кучей слоев и только одним сформированным листом с одним видовым экраном. Есть желание максимально облегчить файл. Слои, которые выключены или заморожены в модели, удаляются
Открываешь лист, нажимаешь правой кнопкой мыши на вкладке, и нажимаешь "Экспорт вкладки листа во вкладку модели". Как один из вариантов
Диммм вне форума  
 
Непрочитано 10.06.2019, 14:20
#517
quazi


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


В dwg файле куча блоков *A... Скорее всего это экспорт из tekla.
U2B их не берет. В чем хитрость? Как преобразовать в обычный блок?
Добавил шаблон и заработало
Код:
[Выделить все]
 (wcmatch bname "`*A*,`*U*,`*E*")

Последний раз редактировалось quazi, 10.06.2019 в 14:46.
quazi вне форума  
 
Автор темы   Непрочитано 10.06.2019, 14:33
#518
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


quazi, Попробуй этот вариант (bgtools должны быть загружены)
Код:
[Выделить все]
(defun C:U2B (/        adoc     blks     u1       n        obj
              objlist  uname    bname    *error*  bnameNew tmp_blk
             )
  ;;; Unnamed to Block
  (defun *error* (msg)
    (princ msg)
    (bg:layer-status-restore)
    (vla-endundomark adoc)
    (princ)
  ) ;_ end of defun
  (vl-load-com)
  (bg:layer-status-save)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object))
        blks (vla-get-blocks adoc)
  ) ;_ end of setq
  (vla-startundomark adoc)
  (if
    (and (setq uname (car (entsel (if (= (getvar "DWGCODEPAGE") "ANSI_1251") "\nВыбери блок: " "\nSelect block: "))))
         (wcmatch (setq bname (cdr (assoc 2 (entget uname)))) "`*U*,`*X*,`*E*,`*A*")
         (setq obj (vlax-ename->vla-object uname))
         (or (and (vlax-property-available-p obj "columns")
                  (vlax-property-available-p obj "rows")
                  (= (vla-get-columns obj) 1)
                  (= (vla-get-rows obj) 1)
             ) ;_ end of and
             (and (not (vlax-property-available-p obj "columns"))
                  (not (vlax-property-available-p obj "rows"))
             ) ;_ end of and
         ) ;_ end of or
         (setq bnameNew (getstring (if (= (getvar "DWGCODEPAGE") "ANSI_1251") "\nИмя блока: " "\nNew block name: ")))
         (or
         (while (or (not (snvalid bnameNew))
                    (member (strcase bnameNew) (tablelist "BLOCK"))
                ) ;_ end of or
           (alert (if (= (getvar "DWGCODEPAGE") "ANSI_1251") "\nНедопустимое имя блока" "Incorrect block name"))
           (setq bnameNew (getstring (if (= (getvar "DWGCODEPAGE") "ANSI_1251") "\nИмя блока: " "\nNew block name: ")))
         ) ;_ end of while
         t)
    ) ;_ end of and
     (progn
       (setq unnamed_block
              (vla-add (vla-get-blocks adoc)
                       (vlax-3d-point '(0 0 0))
                       bnameNew
              ) ;_ end of vla-add
       ) ;_ end of setq
       (setq u1 (vla-item blks bname)
             n  1
       ) ;_ end of setq
       (vlax-for item u1
         (grtext -1 (strcat "Working ... item " (itoa n)))
         (setq objlist (cons item objlist))
         (setq n (1+ n))
       ) ;_ end of vlax-for
       (setq n (vlax-3d-point(trans(vlax-safearray->list(vlax-variant-value(vla-get-insertionpoint obj))) 0 uname)))
  ;;;     (setq n (vlax-3d-point(trans (vlax-safearray->list(vlax-variant-value n)) uname 0)))
       (grtext -1 "Coping item. Begin ")
       (vla-copyobjects
                     adoc
                     (vlax-make-variant
                       (vlax-safearray-fill
                         (vlax-make-safearray
                           vlax-vbobject
                           (cons 0 (1- (length objlist)))
                         ) ;_ end of vlax-make-safearray
                         objlist
                       ) ;_ end of vlax-safearray-fill
                     ) ;_ end of vlax-make-variant
                                                  ;(vla-get-ModelSpace adoc)
                     unnamed_block
                   ) ;_ end of
       (grtext -1 "Coping item. End ")
       (setq
         tmp_blk (vla-insertblock
                   (bg:objectidtoobject adoc (vla-get-ownerid obj))
                                                  ;(vla-get-InsertionPoint obj)
                   n
                   (vla-get-name unnamed_block)
                   (vla-get-xscalefactor obj)
                   (vla-get-yscalefactor obj)
                   (vla-get-zscalefactor obj)
                   (vla-get-rotation obj)
                 ) ;_ end of vla-insertblock
       ) ;_ end of setq
(mapcar
	   '(lambda (x y) (vlax-put-property tmp_blk x y))
	   '(Linetype LineWeight Color Layer)
	   (mapcar
	     '(lambda (x)
		(vlax-get-property obj x))
	     '(Linetype LineWeight Color Layer)))
       (vla-put-Normal tmp_blk (vla-get-Normal obj))
       (entdel uname)
     ) ;_ end of progn
  ) ;_ end of if
  (bg:layer-status-restore)
  (vla-endundomark adoc)
  (princ)
) ;_ end of defun
----- добавлено через 39 сек. -----
Добавил блоки с именем *A*
Цитата:
(wcmatch (setq bname (cdr (assoc 2 (entget uname)))) "`*U*,`*X*,`*E*,`*A*")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.08.2019, 13:03
#519
VaniaLSD


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


Добрый день!
Отличная программа! Только я пользуюсь только 1 функцией (bgcolor), так как остальные не понимаю)))
А можно ли все линии, полилинии, тексты и т.д. перевести в один слой, так чтобы даже все что внутри блоков тоже переводилось в один слой, по аналогии bgcolor?
VaniaLSD вне форума  
 
Непрочитано 09.08.2019, 10:28
#520
allar8


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


Кто то тут уже спрашивал, но я не помню где. Как у команды все поля в текст BGCFT убрать диалоговое окно с подтверждением о необходимости данной операции. Вопрос решился?
Аналогичный вопрос про BGCOLOR. Как правило нужно все превратить в белый. Диалоговое окно с выбором цвета тож бы убрать было бы не плохо
Если бы не было диалоговых окон, можно было бы в макросе связать эти две комманды. Т.е. нажатие на одну кнопку убивало бы поля и превращало все в белый. Просто у нас требование в конторе такие - готовые чертежи должны быть белыми и без полей.
Ну или более гибкими эти команды сделать, т.е. диалог не через диалоговые окна, а через командную строку. Тут через макрос можно было бы настроить как нужно)
Цель минимизация лишних манипуляций и нажатий для ускорения процесса

----- добавлено через ~12 мин. -----
Цитата:
Сообщение от allar8 Посмотреть сообщение
Кто то тут уже спрашивал, но я не помню где. Как у команды все поля в текст BGCFT убрать диалоговое окно с подтверждением о необходимости данной операции. Вопрос решился?
Нашел решение, благодаря обнаруженному касяку в BGCFT - не убивала почему то поля из свойств подшивки.
Попробовал такой вот макросик _ai_selall BGCFTSEL - работает
диалогового окна нет и все поля в текст действительно
Осталься вопрос только с BGCOLOR

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от allar8 Посмотреть сообщение
Попробовал такой вот макросик _ai_selall BGCFTSEL - работает
Ан нет - эта в атрибутах блоков не убивает поля)
В обчем все поля убиваются вот таким макросом _ai_selall BGCFTSEL BGCFT
Но от диалогового окна так и не избавился)

Еще одын минус нашел( - BGCFTSEL и BGCF не убивают поля, если мтекст или текст с полем в блоке. В атрибутах вроде убивает

----- добавлено через ~8 ч. -----
Цитата:
Сообщение от allar8 Посмотреть сообщение
Но от диалогового окна так и не избавился)
Увидел https://forum.dwg.ru/showthread.php?...30#post1791330 #6, спасибо VVA
Подскажите еще плиз как убрать диалоговое окно у BGCOLOR (по умолчанию нужен белый цвет), Заранее спасибо!

----- добавлено через ~15 мин. -----
Цитата:
Сообщение от allar8 Посмотреть сообщение
Еще одын минус нашел( - BGCFTSEL и BGCF не убивают поля, если мтекст или текст с полем в блоке. В атрибутах вроде убивает
Странно - дома попробовал еще раз - вроде все гуд - все поля убились. Хотя дома акад 2020, а на работе 2017 - может в этом дело или в файле может?. Ладно в понедельник еще раз попробую на работе

Последний раз редактировалось allar8, 10.08.2019 в 10:14.
allar8 вне форума  
 
Непрочитано 12.08.2019, 12:09
#521
Fantome

Проектировщик электроснабжения
 
Регистрация: 15.09.2017
Санкт-Петербург
Сообщений: 4


Коллеги, добрый день

Во время очередной работы с плагином заметил объекты, которые НЕ поменяли свой цвет во время "покраски" всей архитектуры, а именно:

- объекты AEC
- и массивы

Есть ли какие то решения в этом направлении?
Вложения
Тип файла: dwg
DWG 2010
Массивы и AEC.dwg (459.4 Кб, 19 просмотров)
Fantome вне форума  
 
Непрочитано 12.08.2019, 14:04
#522
allar8


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


Цитата:
Сообщение от Fantome Посмотреть сообщение
которые НЕ поменяли свой цвет во время "покраски"
Тож замечал что-то подобное, пока поля были в чертеже. Как только поля убил - все стало сразу менять цвет, если вы про BGCOLOR. Но у вас то полей нету. Видимо у плагина есть проблема с блоками.
allar8 вне форума  
 
Непрочитано 12.08.2019, 16:00
#523
Fantome

Проектировщик электроснабжения
 
Регистрация: 15.09.2017
Санкт-Петербург
Сообщений: 4


Цитата:
Сообщение от allar8 Посмотреть сообщение
Тож замечал что-то подобное, пока поля были в чертеже. Как только поля убил - все стало сразу менять цвет, если вы про BGCOLOR. Но у вас то полей нету. Видимо у плагина есть проблема с блоками.

Да, я без полей ... Прикреплял изначально dwg, видать не прикрепилось. Сейчас еще раз попробую

https://forum.dwg.ru/attachment.php?...1&d=1565614783
Вложения
Тип файла: dwg
DWG 2010
Массивы и AEC.dwg (459.4 Кб, 36 просмотров)
Fantome вне форума  
 
Непрочитано 12.08.2019, 21:21
#524
allar8


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


Цитата:
Сообщение от Fantome Посмотреть сообщение
Да, я без полей ... Прикреплял изначально dwg, видать не прикрепилось. Сейчас еще раз попробую
Да не все прикрепилось видел. Кстати меня наоборот ща интересует, как например у нек объектов не трогать цвета, т.е. исключать из действия плагина (в идеале исключать выбранный слой и конечно же еще раз повторюсь удобна была бы данная команда если б работала через командную строку, а не через диалоговые окна, чтоб каждый смог настроить для себя - все это для уменьшения манипуляций и для возможности создания различных комбинаций макросов). А в вашем файле странные эти блоки. Не родные - какие-то сторонние. Поэтому и не фурычит наверно. Мож спдсовские?

Последний раз редактировалось allar8, 13.08.2019 в 06:55.
allar8 вне форума  
 
Непрочитано 13.08.2019, 09:00
#525
Fantome

Проектировщик электроснабжения
 
Регистрация: 15.09.2017
Санкт-Петербург
Сообщений: 4


Цитата:
Сообщение от allar8 Посмотреть сообщение
А в вашем файле странные эти блоки. Не родные - какие-то сторонние. Поэтому и не фурычит наверно. Мож спдсовские?
Вот об этом история умалчивает... Поэтому и написал в группу профи)
Fantome вне форума  
 
Непрочитано 13.08.2019, 15:32
#526
allar8


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


Цитата:
Сообщение от allar8 Посмотреть сообщение
исключать из действия плагина
Пока решил свою задачу (Не нужно было забелять логотип конторы) след образом. Применяю BGCOLOR. Потом с палитры переопределяю логотип (он в блоке), чтоб вернуть ему цвета. Манипуляций много еще, но уже лучше
allar8 вне форума  
 
Непрочитано 14.08.2019, 15:48
#527
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


мой лисп весьма слаб, подскажите кто может, как изменить диалог BGBLFIX (по умолчанию ) на такой вид, где поправить?
Миниатюры
Нажмите на изображение для увеличения
Название: Рис_ 3.jpg
Просмотров: 109
Размер:	114.5 Кб
ID:	216838  
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 23.10.2019, 11:59
#528
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


BGCOLBL хорошо бы добавить чтобы не только модель обрабатывал но и листы.

Было бы здорово если бы можно было еще по типу примитива разносить в слои, например текст,с мультивыноскм,блоки.
Composter вне форума  
 
Непрочитано 18.11.2019, 16:32
#529
shartal


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


В 2019 команда bglaydel выдает ошибку:

Команда:
Команда: BGLAYDEL

Инициализация...
Background tools v.3.9 Наберите в командной строке:
BGLAYDEL - Удаление выключенных и замороженных слоев с примитивами
BG1BLEXP - Взрывает блоки, состоящие из одного примитива (возможно другого блока)
BGBLEXP - Взрывает блок и все блоки, входящие в него, превращая видимые атрибуты в текст
BGBLEXP1 - Взрывает блоки 1-го уровня, превращая видимые атрибуты в текст
BGBLDYNEXP1 - Взрывает динамические блоки 1-го уровня, превращая видимые атрибуты в текст
BGBLEXP1NOATT - Взрывает блоки 1-го уровня, у которых нет видимых атрибутов
BGBLXCLIP - Показывает подрезанные блоки
BGBLXCLIPEXP - Взорвать подрезанный блок
BGBLDYN2A - Преобразовывает динамические блоки в анонимные
BGBLDYN2S - Преобразовывает динамические блоки в статические
BGBLALLDYN2A - Преобразовывает ВСЕ динамические блоки в анонимные
BGBLALLDYN2S - Преобразовывает ВСЕ динамические блоки в статические
BGCB - копирует одно из вхождений блока в блок с новым именем. www.lee-mac.com
BGRB - переименовывает одно из вхождений блока в блок с новым именем. www.lee-mac.com
M2U - Преобразовать MINSERT (МН-БЛОК) в Unnamed блок
M2B - Преобразовать MINSERT (МН-БЛОК) в блок
U2B - Преобразовать UNNAMED в блок
U2BM - Преобразовать UNNAMED в блок множественный выбор
UX - Взорвать UNNAMED блок
=======================================
BGRGB2ACI - Изменяет цвет с RGB на ACI
BGAll2RGB - Изменяет ACI цвет в его RGB эквивалент
BGCOLOR - Задает выбранный цвет всем объектам
BGCOLORXREF - Меняет цвет выбранных внешних сылок (только в текушем сеансе)
BGCOLBL - Установка послою цвета примитивов подосновы. Если цвет задан явно- создается новый слой
BGResetXRef -Сброс настроек слоев выбранных внешних ссылок на установленные в исходном файле
BGBLCC - Изменяет цвет выбранных блоков
BGENCC - Изменяет цвет выбранного элемента блока
BGCATT - Изменяет цвет атрибутов выбранных блоков
BGCBL2 - Изменяет цвет в блоках 2 и более уровня (вложенных блоках)
BGBLFIX - Нормализация блоков
BGCFT - Конвертирует все поля в обычный текст
BGCFTSEL - конвертирование полей в обычный текст в выбранных примитивах
BGHATCHDEL - Удаление штриховки_.UNDO Текущие настройки: Авто = Вкл, Управление = Все, Объединить = Есть, Слой = Есть
Количество отменяемых операций или [Авто/Управление/Начало/Конец/Метка/Обратно] <1>: _Mark
Команда:
Команда: _.-LAYDEL
Выберите объект на слое для удаления или [Имя]:
Команда: _yes Неизвестная команда "YES". Для вызова справки нажмите F1.

Команда:
Команда: _.Regenall Выполняется регенерация модели.

Команда:
*** Command _.UNDO _Back restore your layers
shartal вне форума  
 
Автор темы   Непрочитано 18.11.2019, 21:49
1 | #530
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


shartal, Cкачал и проверил версию 3.9 - все работает. Попробуй скачать архив заново

----- добавлено через ~18 мин. -----
doctorraz, Пропустил твое сообщение
Найти поиском строку
Цитата:
(setq what nil opt 3657)
Замени число 3657 на 35092
Должно стать
Код:
[Выделить все]
(setq what nil opt 35092) ;_было (setq what nil opt 3657)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.11.2019, 15:44
#531
shartal


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


Если слои замор\выкл отсутствуют, происходит некорректное завершение команды. У нас эта команда вставлена в скрипт и он прерывается. Странно, что эта фигня появляется в 2019 акаде. В 2011 независимо от наличия таких слоев, все ок.
shartal вне форума  
 
Автор темы   Непрочитано 20.11.2019, 14:49
#532
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от shartal Посмотреть сообщение
У нас эта команда вставлена в скрипт и он прерывается
Обновил до версии 3.11. Внес незначительные изменения. Для скрипта вызывай не команду, а функцию
Цитата:
(BGLAYDEL nil) - аналог команды с запросом
(BGLAYDEL t) - удаление слоев без всяких диалогов
А еще лучше добавь в начало скрипта функцию
Код:
а удаление слоев оберни в ловушку. Вместо (C:BGLAYDEL)
Код:
[Выделить все]
(vl-catch-all-apply (function(lambda()(bglaydel t))))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.11.2019, 14:58
#533
allar8


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


А мне хотелось бы еще раз поднять вопрос про BGCOLOR. Есть ли возможность сделать вызов этой команды без вызова диалогового окна для выбора цвета? Хотелось бы чтоб автоматом был выбран белый
allar8 вне форума  
 
Автор темы   Непрочитано 20.11.2019, 15:09
1 | #534
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


allar8, Читай первый пост, специально выделил красным
Цитата:
Сообщение от VVA Посмотреть сообщение
BGCOLORCMD - Задает выбранный цвет всем объектам с запросом в командной строке
----- добавлено через 46 сек. -----
Вариант на кнопку
Код:
[Выделить все]
^C^CBGCOLORCMD;7
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.11.2019, 15:11
#535
allar8


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Читай первый пост, специально выделил красным
Спасибо большое! Сори не углядел сразу

----- добавлено через ~11 мин. -----
А можно сделать еще, чтоб не всем, а только выбранным объектам сделать цвет по слою через ком строку?
allar8 вне форума  
 
Непрочитано 20.11.2019, 15:34
#536
Кулик Алексей aka kpblc
Moderator

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


allar8, а в панели свойств не срабатывает?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.11.2019, 15:42
#537
allar8


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
а в панели свойств не срабатывает?
Дык в том то и дело - надо через ком строку, чтоб в макрос можно было включить
Мож лучше кто подскажет решение моей задачи.
Нуно это мне вот для чего.
^C^CBGCOLORCMD;7 - забеляю все объекты
А эта команда забеляет так как надо - не трогает цвета самих слоев, а делает принудительный белый цвет всем объектам
Но далее мне нужно среди всех белых некоторые объекты, загнанные в определенные слои выделить
Т.е. я выбираю все эти слои и да ща это делаю через панель - применяю цвет по слою
Мечта - выбор этих слоев и применение им цвета по слою - в одно нажатие
Выбор слоев этих в одно нажатие я уже организовал - осталось цвет применить по слою

Последний раз редактировалось allar8, 20.11.2019 в 15:55.
allar8 вне форума  
 
Непрочитано 20.11.2019, 16:14
#538
shartal


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


Скрипт отлично работает, если он заканчивается этой функцией
(load "bgtools.lsp")
(vl-load-com)
(vl-catch-all-apply (function(lambda()(bglaydel t))))


Если после нее идет другая команда, намертво зависает.
Например
(load "bgtools.lsp")
(vl-load-com)
(vl-catch-all-apply (function(lambda()(bglaydel t))))

_close
shartal вне форума  
 
Непрочитано 20.11.2019, 17:05
#539
Кулик Алексей aka kpblc
Moderator

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


shartal, ты что хочешь закрыть-то? Текущий документ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.11.2019, 17:58
#540
shartal


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


да. Но скрипт зависает при наличие любой команды после этой функции.
shartal вне форума  
 
Непрочитано 20.11.2019, 18:06
#541
Кулик Алексей aka kpblc
Moderator

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


Может, просто долго делается?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.11.2019, 18:10
#542
shartal


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


Ни в коем случае. Если последующей команды нет- пролетает за секунду. Если есть любая команда -умирает.
и с функцией (BGLAYDEL t) тоже самое.
Если просто BGLAYDEL то все ок, но некорректное завершение.
shartal вне форума  
 
Автор темы   Непрочитано 20.11.2019, 20:45
#543
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


shartal, А если перед _close сделать _qsave?

Код:
[Выделить все]
(load "bgtools.lsp")
(vl-load-com)
(vl-catch-all-apply (function(lambda()(bglaydel t))))
_qsave
_close
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.11.2019, 10:48
#544
shartal


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


То же самое. qsave -же тоже команда.
shartal вне форума  
 
Автор темы   Непрочитано 21.11.2019, 16:14
#545
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


shartal, А так
вариант1
Код:
[Выделить все]
(load "bgtools.lsp")
(vl-load-com)
(vl-catch-all-apply (function(lambda()(bglaydel t))))
(while (> (getvar "CMDACTIVE") 0)(command))
_qsave
_close
вариант2

Код:
[Выделить все]
(load "bgtools.lsp")
(vl-load-com)
(vl-catch-all-apply (function(lambda()(bglaydel t))))
(while (> (getvar "CMDACTIVE") 0)(command))
(vla-Save (vla-get-ActiveDocument (vlax-get-acad-object)))
_close
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.11.2019, 10:30
#546
shartal


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


Увы, нет. Оба не работают. Достаточно появится после функции еще одной строке (в скрипте - просто Ввод) и уже смерть акаду.
Может быть есть возможность изменить саму команду, чтобы при отсутствии замор. слоев не происходило сбоя?
Миниатюры
Нажмите на изображение для увеличения
Название: des.png
Просмотров: 52
Размер:	2.5 Кб
ID:	220295  
shartal вне форума  
 
Автор темы   Непрочитано 22.11.2019, 14:57
#547
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от shartal Посмотреть сообщение
Может быть есть возможность изменить саму команду,
Добавил еще пару проверок. Проверяй. версия 3.11a
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.11.2019, 16:46
#548
shartal


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


Теперь скрипт работает, только если он заканчивается командой bglaydel.
Если после нее другая- акад зависает и отмирает только после esc.
Но сама по себе команда в 2019 ошибку не выдает.
shartal вне форума  
 
Автор темы   Непрочитано 22.11.2019, 21:28
#549
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


shartal, можешь выложить скрипт целиком и dwg файл
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.11.2019, 11:00
#550
shartal


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


Любой файл, можно пустой, с замор слоями и без них, в 2011 или 2019.
скрипт нельзя прикрепить напрямую, поэтому архив.
Вложения
Тип файла: zip des.zip (170 байт, 39 просмотров)
shartal вне форума  
 
Непрочитано 18.12.2019, 01:20
#551
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Автор (-ы)! Отчего же не англифицируете этот замечательный пакет? И не разместите его в Autodesk App Store?
Для радости счастливым соотечественникам и заграничным обездоленным?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 18.12.2019, 04:33
#552
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Ребятки, заблудился.
Как в "стороннем" лиспе заставить автокад ответить на запросы после (c:bgblexp)?
RNB вне форума  
 
Непрочитано 18.12.2019, 08:20
#553
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Автор (-ы)! Отчего же не англифицируете этот замечательный пакет? И не разместите его в Autodesk App Store?
Для радости счастливым соотечественникам и заграничным обездоленным?
Насколько я помню, в AppStore не так уж и просто разместить приложение. Да и установку для lsp сделать немного проблематично (по крайней мере было года 2-3 назад). Не думаю, что ситуация изменилась.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.12.2019, 08:24
#554
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


RNB, там же нет запросов. Только отправка сообщений в комстроку.
Код:
[Выделить все]
;;;Взрывает блок и все блоки, входящие в него, превращая видимые атрибуты в текст
(defun C:BGBLEXP ( / ret )
  (setq ret(BGBLEXP t))
  (princ "\nTry to explode ")
  (princ (car ret))
  (princ " blocks. Found ")
  (princ (cadr ret))
  (princ " blocks has xclip boundary.")
  (if(not(zerop (car ret)))(princ "\n*** Command _.UNDO _Back restore your drawing"))
  (princ)
  )
Или все же речь о другой команде?
skkkk вне форума  
 
Непрочитано 18.12.2019, 08:34
#555
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от skkkk Посмотреть сообщение
Или все же речь о другой команде?
Ну она получается запускает bgblexp, которая просит выбрать блоки. Мне нужно в лиспе ответить, допустим, "all", чтобы лисп продолжился без моего участия. Корячился-корячился, не получается. Знаю, что упускаю что-то простое, но понять не могу.

UPD. Победил, но странною победой. Сделал функцию bgblexpall, с фильтром "_X" для ssget

Последний раз редактировалось RNB, 18.12.2019 в 11:19.
RNB вне форума  
 
Непрочитано 18.12.2019, 11:33
1 | #556
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


В этой функции набор не выведен в аргумент, поэтому, чтобы не менять код bgtools, лучше предварительно создать и подсветить набор объектов. Если нужно all, то так:

Код:
[Выделить все]
(setq ss (ssget "_A" (list '(0 . "INSERT")(cons 410 (getvar "CTAB")))))
(sssetfirst nil ss)
skkkk вне форума  
 
Непрочитано 18.12.2019, 13:00
#557
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от skkkk Посмотреть сообщение
В этой функции набор не выведен в аргумент, поэтому, чтобы не менять код bgtools, лучше предварительно создать и подсветить набор объектов. Если нужно all, то так:

Код:
[Выделить все]
(setq ss (ssget "_A" (list '(0 . "INSERT")(cons 410 (getvar "CTAB")))))
(sssetfirst nil ss)
Отлично, спасибо!
RNB вне форума  
 
Непрочитано 18.12.2019, 16:42
#558
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Насколько я помню, в AppStore не так уж и просто разместить приложение. Да и установку для lsp сделать немного проблематично (по крайней мере было года 2-3 назад). Не думаю, что ситуация изменилась.
Установщик для arx в магазине делают они сами. Может быть и для lisp - не знаю.
Да, в целом нужно повозиться. Но не смертельно.
Сейчас же вообще не нашел англоязычного варианта. Сделать англоязычную версию, кажется, не трудно - не так много интерфейса, сообщений.
Такой же пакет для всего мира пропадает!
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 18.12.2019 в 17:00.
АлексЮстасу вне форума  
 
Непрочитано 18.12.2019, 19:54
#559
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от RNB Посмотреть сообщение
UPD. Победил, но странною победой. Сделал функцию bgblexpall, с фильтром "_X" для ssget
Такое решение даже лучше. В случае с тяжелым чертежом будет отрабатывать сильно быстрее, потому что не будет подсвечивать объекты ручками. Я думал, что all было в качестве примера, и сразу не придал значения этому важному факту. Только вижу единственный минус, за который я сразу уцепился: если код добавить в тело bgtools, при обновлении программы он может потерятся, забывшись к тому времени, и прога перестанет работать. Если, конечно, она не выведена в отдельный файл или VVA не захочет добавить ее в bgtools, что, возможно, и не лишено смысла.
skkkk вне форума  
 
Автор темы   Непрочитано 18.12.2019, 22:21
#560
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Сделать англоязычную версию, кажется, не трудно - не так много интерфейса
Делалось сразу. Может перевод хромать, а на каком языке писать определяется по кодовой странице
Цитата:
(defun bg:ConvertDynBlock ( ConvertMode selectall / doc ss i *error* obj name j k str)
;;; ConvertMode - nil ConvertToAnonymousBlock
;;; - t ConvertToStaticBlock
;;; selectall - t - select all
;;; - nil - select
;;; Use (bg:ConvertDynBlock nil nil)
;;; Use (bg:ConvertDynBlock t nil)
(defun *error* (msg)
(princ msg)
(vla-endundomark doc)
(bg:layer-status-restore)
)
.....
(if (null selectall)
(progn
(princ
(strcat "\n<< " str " >> "
(if (= (getvar "DWGCODEPAGE") "ANSI_1251")
"Выберите динамические блоки"
"Select dynamic blocks"
)
)
)
(setq ss (ssget "_I" '((0 . "Insert")))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.12.2019, 22:25
#561
Кулик Алексей aka kpblc
Moderator

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


В качестве идеи - загнать все переводы в отдельный список (или вообще отдельный файл) и оттуда подтягивать В зависимости от кодовой страницы и/или предпочтений пользователя ))
Правда, этот путь не лишен недостатков, как мне кажется.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.12.2019, 22:27
#562
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Так или иначе, но пакет изначально достоин широкой публикации. В англоязычном варианте - безусловно.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 18.12.2019, 22:27
#563
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от skkkk Посмотреть сообщение
или VVA не захочет добавить ее в bgtools
Да, наверное добавлю
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.12.2019, 10:06
#564
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


VVA, подскажите а решение вот этого вопроса
https://forum.dwg.ru/showpost.php?p=...&postcount=402
уже существует?
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 05.02.2020, 12:53
#565
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


Здравствуйте! При выполнении одной из команд (BGBLFIX) bgtools выдаётся следующее сообщение: "; ошибка: no function definition: VLAX-WRITE-ENABLED-P"
До последнего времени я этой ошибки не замечал. Пробовал версии 2.25 2.27 2.32 2.38 3.1а.
Пробовал автокады с 2016 по 2020, и Ru, и en, с разными файлами в том числе с одним простейшим блоком.
Во всех случаях одно и тоже.
Что я делаю не так?
И ещё: последние версии bgtools доступны? Где их взять? Может быть не бесплатные?
sergeev_2005 вне форума  
 
Непрочитано 05.02.2020, 14:05
#566
Кулик Алексей aka kpblc
Moderator

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


(vl-load-com) случайно не пропущен?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.02.2020, 22:38
#567
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
(vl-load-com) случайно не пропущен?
Доступны. Всегда обновляются в #1 этой темы. На данный момент 3.11a

----- добавлено через ~9 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
(vl-load-com) случайно не пропущен?
Не пропущен, по крайней мере в версии, выложенной в #1


Цитата:
Сообщение от sergeev_2005 Посмотреть сообщение
Пробовал автокады с 2016 по 2020, и Ru, и en, с разными файлами в том числе с одним простейшим блоком.
Проверил версию 3.11 на Автокаде 2019 - работает.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.02.2020, 00:08
#568
Кулик Алексей aka kpblc
Moderator

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


Ну, если ACAD не может нормально общаться с СОМ-объектами, то обычно это ведет к полной переустановке.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.02.2020, 10:07
#569
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,518


не подскажете программку, которая может вырезать часть плана, даже если весь план в блоках?
Рyslan вне форума  
 
Непрочитано 06.02.2020, 10:20
#570
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Рyslan Посмотреть сообщение
не подскажете программку, которая может вырезать часть плана, даже если весь план в блоках?
http://forum.dwg.ru/showthread.php?p...23#post1525523
как вариант BGBLXCLIPEXP из этой темы
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 06.02.2020, 14:52
#571
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Рyslan Посмотреть сообщение
не подскажете программку, которая может вырезать часть плана, даже если весь план в блоках?
Пробуй Фрагмент чертежа по прямоугольной, круглой или ломаной границе Дениса Флюстикова
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.02.2020, 16:22
#572
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,518


Спасибо большое!
Рyslan вне форума  
 
Непрочитано 06.02.2020, 23:06
#573
sergeev_2005

Проектирование гражданских зданий
 
Регистрация: 25.03.2010
Санкт-Петербург
Сообщений: 90


Цитата:
"; ошибка: no function definition: VLAX-WRITE-ENABLED-P"
Причина, пожалуй, правильно указана здесь https://blog.jtbworld.com/2016/08/au...efinition.html
sergeev_2005 вне форума  
 
Непрочитано 07.02.2020, 19:49
#574
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 319
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
VVA Вы даёте ссылку на старейшую версию плагина. Чуть выше вашего ответа дали ссылку на чуть более актуальную и вроде как рабочую версию.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 18.03.2020, 09:23
#575
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


опция команды BGBLFIX "Установить одинаковые масштабы" не работает с динамическими блоками (только со статикой)
Так должно быть?
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 08.04.2020, 12:39
#576
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Зарубежный товарищ в полном восхищении от BGtools.
Но в полном расстройстве - у него в 2021 команда BGCOLORXREF выдает ошибку, цитирую:
"Command: _BGCOLORXREF ; error: Automation Error. Description was not provided."

Как помочь зарубежному поклоннику этого отличного набора команд?
Писать ему прямо сюда на своем английском?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 12.04.2020, 16:27
#577
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


АлексЮстасу, Ошибка выдается в каком-то конкретном чертеже или в любом?У меня пока нет 2021 Автокада, чтобы проверить.
Моно попробовать выполнить эту команду на этом же файле в ранней версии, например 2019?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.04.2020, 05:07
#578
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от VVA Посмотреть сообщение
VVA
Пардон, почему-то сразу не заметил ответа...

Я так понял человека, что он раньше с удовольствием пользовался в прежних версиях AutoCAD, и все было отлично.
Он считает, что дело в новой версии:
Цитата:
I have just upgraded from AutoCAD 2020 to 2021 and found that this particular command is no longer working, giving the following error message:

Command: _BGCOLORXREF ; error: Automation Error. Description was not provided.

It obviously works well in 2020 version, but not in 2021...
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 15.04.2020, 11:03
#579
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Я пока не скачал 2021 Атокад, как скачаю, проверю. Сам не использую новые версии Автокада до выхода как минимум первого сервиспака
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.04.2020, 19:05
#580
PsixVK


 
Регистрация: 19.10.2012
Киев
Сообщений: 748


Здравствуйте!
есть проблема
в файле похожие блоки с разными именами.
Проблема заключается в том, что шрифт использованный в стилях отсутствует и его негде взять. Тоесть просто поменять шрифт никакого результата не дает.
один блок тот что с площадью, изменяется шрифт только если зайти в него через редактор.
Взрывать блоки самый крайний вариант и не хотелось бы.
Нужно стять форматирование Мтекста внутри блоков.
Может кто то подсказать, как это осуществить?
Вложения
Тип файла: dwg
DWG 2010
блоки на форум.dwg (168.1 Кб, 32 просмотров)
PsixVK вне форума  
 
Непрочитано 15.04.2020, 19:18
#581
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 319
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от PsixVK Посмотреть сообщение
Здравствуйте!
есть проблема
в файле похожие блоки с разными именами.
Проблема заключается в том, что шрифт использованный в стилях отсутствует и его негде взять. Тоесть просто поменять шрифт никакого результата не дает.
один блок тот что с площадью, изменяется шрифт только если зайти в него через редактор.
Взрывать блоки самый крайний вариант и не хотелось бы.
Нужно стять форматирование Мтекста внутри блоков.
Может кто то подсказать, как это осуществить?
Попробуйте плагин TSUP и там же StripMtext
Сначала очистить, потом заменить шрифт.. и повторить для контроля ))
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 16.04.2020, 17:19
#582
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от VVA Посмотреть сообщение
Я пока не скачал 2021 Атокад, как скачаю, проверю.
Оказалось не так все и страшно.
Австралийский товарищ обнаружил, что все-таки работает:
Цитата:
I found that the "Xref colour change" is still working in 2021, despite the error message, but you can only see the result if you simply regenerate the drawing.

I was unable to add that extra Regen command to the .lsp program, but I managed this by using sctipt, which loads bgtools.lsp then starts the "Xref colour change" command and then starts that extra Regen command before exiting script.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 23.04.2020, 17:28
#583
Walkmax


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


ACad MEP 2019
Код:
[Выделить все]
Команда: BGCFT

Converting Field in неверный тип аргумента: lentityp #<VLA-OBJECT IAcadAttributeReference 00000244862d1e68>Ошибка Automation. Неверный слой
Ранее в ACad MEP 2018 выполнялось.
Подскажите пожалуйста как исправить?
Walkmax вне форума  
 
Автор темы   Непрочитано 25.04.2020, 08:40
#584
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Walkmax, Попробуй сделать _audit -yes перед вызовом команды. По сообщению это системная ошибка
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.04.2020, 09:32
#585
Кулик Алексей aka kpblc
Moderator

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


Скорее, синхронизировать атрибуты надо.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.04.2020, 12:41
#586
Walkmax


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Walkmax, Попробуй сделать _audit -yes перед вызовом команды. По сообщению это системная ошибка
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Скорее, синхронизировать атрибуты надо.
Код:
[Выделить все]
Команда: _.attsync
Задайте параметр [?/Имя/Выбрать] <Выбрать>: _n
Задайте имя блока для обновления атрибутов во вхождениях [?]: *
Команда АТРОБНОВИТЬ выполнена.
Команда: _AUDIT
Исправить все обнаруженные ошибки? [Да/Нет] <Н>: Д
Проверка заголовка
Проверка таблиц
Проверка объектов, проход 1
Проход 1: проверено объектов: 36400
Проверка объектов, проход 2
Проход 2: проверено объектов: 36400
Проверка блоков
 Проверено блоков: 579
Проверка AcDsRecords
Всего найдено ошибок: 0, исправлено: 0
Стерто 0 объектов
Команда: BGCFT
Converting Field in неверный тип аргумента: lentityp #<VLA-OBJECT IAcadAttributeReference 000001eb9cded628>Ошибка Automation. Неверный слой
тот-же результат
Walkmax вне форума  
 
Непрочитано 05.05.2020, 00:53
#587
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


larusik511, многие искали решение этой задачи уже с десяток и более лет. Я пока решений не видел.
1. Восстановление взорванного текста - было предложено что-то провернуть с использованием textedit.arx, но, кажется, человек, посоветовавший это, не так понял задачу. По всей видимости он подумал, что текст разбит на отдельные буквы, каждая из которых все же текст, а не набор линий.
2. Is there any way to "unexplode" exploded text?

В обоих ссылках мелькали мысли использовать распознаватели текста, но ничего конкретного, чтобы превратить "палки" в текст "на месте", прямо в файле dwg, предложено не было. Лично я не представляю пока, как такое можно реализовать. По второй ссылке был предложен вариант c длительными танцами с бубном через tiff, прогнать текст через распознаватель, получить его в целостном виде в Adobe Acrobat, а затем раскопировать по мтекстам в чертеже.
Как-то я даже решил попробовать, не особо надеясь на успех, (а чем черт не шутит?) в последних версиях Автокада провернуть такое: распечатать файл с таким текстом в pdf, затем сконвертировать его обратно в dwg через PDFIMPORT. Результата также не было.
Поэтому, боюсь, только ручной режим. Или попросить отправителя файла прислать нормальный dwg, если он у него, конечно, есть. Может, это - результат конвертирования из какого-то стороннего софта, вроде Corel'а.

Последний раз редактировалось skkkk, 05.05.2020 в 01:02.
skkkk вне форума  
 
Непрочитано 05.05.2020, 06:51
#588
larusik511


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


Вариант с pdf форматом я тоже пробовала, долго и неэффективно. Благодарю за ответ. Не буду больше тратить время на поиски.
larusik511 вне форума  
 
Непрочитано 05.05.2020, 10:40
1 | #589
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,808


В комплекте ABBYY FineReader есть экранная распознавалка, которая распознаёт выбранную экранную область и копирует распознанный текст в буфер. Вполне может подойти для распознавания разбитого текста.
koMon вне форума  
 
Непрочитано 05.05.2020, 16:03
#590
Кулик Алексей aka kpblc
Moderator

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


И какое отношение разбитый текст имеет к обработке подосновы?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.05.2020, 09:52
#591
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,808


Offtop: хз
koMon вне форума  
 
Непрочитано 14.01.2021, 16:29
#592
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Насколько реально сделать принудительное удаление типов линий с примитивами по аналогии с командой BGLAYDEL?
crosandr вне форума  
 
Непрочитано 16.01.2021, 11:33
#593
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Приветствую коллеги не пользовался данной штукой около 7 лет, вопрос такого характера, я поменял степень сжатия в тексте в определенных словах, после работы данной программы они опять расширились, это так и должно быть, или уже убрали, я в свой проект скопировал другой левый проект, и решил его зачистить подформатирвоать, но и мои тексты потеряли степень сжатия, но факт в том что я уже не помню где сжимал, а где нет, коэфициент примерно 0.9, вот только при распечатке увидел, объясните
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 05.04.2021, 22:02
#594
mindchamber


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


Всем привет, имеется топосъемка и я хочу сделать нее прозрачной, но внутри у нее куча блоков. Можно ли установить у всех блоков прозрачность "по блоку?"
mindchamber вне форума  
 
Непрочитано 05.04.2021, 22:08
#595
engngr

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


Цитата:
Сообщение от mindchamber Посмотреть сообщение
Всем привет, имеется топосъемка и я хочу сделать нее прозрачной, но внутри у нее куча блоков. Можно ли установить у всех блоков прозрачность "по блоку?"
Почему поблоку, а не послою и задать слоям прозрачность?
engngr вне форума  
 
Непрочитано 10.04.2021, 15:23
#596
mindchamber


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


Цитата:
Сообщение от engngr Посмотреть сообщение
Почему поблоку, а не послою и задать слоям прозрачность?
Потому что внутри блоков есть слой 0. А делать его прозрачным я не хочу...
mindchamber вне форума  
 
Непрочитано 11.04.2021, 08:15
#597
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от mindchamber Посмотреть сообщение
Потому что внутри блоков есть слой 0
Дык ежели блок вставлять не в нулевой слой, то что внутри блока на слое ноль будет на слое куда вставлен блок, соответственно свойства "по слою" будут с этого слоя
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 11.04.2021, 10:19
#598
engngr

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


Для топо не должно быть объектов в слое ноль. Приведи пример блока, когда действительно нужен 0.
engngr вне форума  
 
Непрочитано 13.04.2021, 14:40
#599
mindchamber


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


Цитата:
Сообщение от engngr Посмотреть сообщение
Для топо не должно быть объектов в слое ноль. Приведи пример блока, когда действительно нужен 0.
Скажите пожалуйста а как с топосъемки убрать все объекты со слоя 0 на другой слой? Допустим у меня на топосъемке куча блоков, которые внутри блоков, которые внутри блоков и внутри этого блока находится полилиния на слое 0 ))) Взрывать блоки не вариант
mindchamber вне форума  
 
Непрочитано 13.04.2021, 23:00
#600
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,297
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от mindchamber Посмотреть сообщение
как с топосъемки убрать все объекты со слоя 0 на другой слой?
Зачем? Этот блок на другой слой и все будет по этому слою
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 13.04.2021, 23:58
#601
engngr

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


Цитата:
Сообщение от mindchamber Посмотреть сообщение
Допустим у меня на топосъемке куча блоков, которые внутри блоков, которые внутри блоков и внутри этого блока находится...
Зачем тебе сон внутри сна внутри сна внутри сна? Покажи-ка.
engngr вне форума  
 
Непрочитано 19.04.2021, 13:55
#602
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от mindchamber Посмотреть сообщение
Скажите пожалуйста а как с топосъемки убрать все объекты со слоя 0 на другой слой? Допустим у меня на топосъемке куча блоков, которые внутри блоков, которые внутри блоков и внутри этого блока находится полилиния на слое 0 ))) Взрывать блоки не вариант
Местной командой BGBLFIX можно шарахнуть все объекты в блоках на свойства "по блоку". Не поможет ли?

----- добавлено через ~9 мин. -----
Цитата:
Сообщение от mindchamber Посмотреть сообщение
Скажите пожалуйста а как с топосъемки убрать все объекты со слоя 0 на другой слой? Допустим у меня на топосъемке куча блоков, которые внутри блоков, которые внутри блоков и внутри этого блока находится полилиния на слое 0 ))) Взрывать блоки не вариант
Ну и, собственно, немножко поиска и то, что тебе нужно.
https://forum.dwg.ru/showthread.php?t=21492
Качаешь лисп norm-blocks_v3.lsp
Находишь в нем строчку (fun_property-set sub 'layer "0"), меняешь ноль на нужный тебе слой, кавычки НЕ трогаешь
Загружаешь лисп в чертеж, пользуешь команду (norm-blocks 1)
Радуешься и поишь хороших людей пивом
Единственное НО - все объекты в блоках перейдут на это чудесный слой.

----- добавлено через ~8 мин. -----
Цитата:
Сообщение от mindchamber Посмотреть сообщение
Скажите пожалуйста а как с топосъемки убрать все объекты со слоя 0 на другой слой? Допустим у меня на топосъемке куча блоков, которые внутри блоков, которые внутри блоков и внутри этого блока находится полилиния на слое 0 ))) Взрывать блоки не вариант
Ну и непроверенное лично, но на вид, то что нужно
https://forum.dwg.ru/showpost.php?p=875063&postcount=6

UPD. Проверено! Работает! Не забываем при запуске команы (ch-lay имя_заменяемого_слоя имя_нужного_слоя) имена слоев указывать в кавычках

Последний раз редактировалось RNB, 19.04.2021 в 14:18.
RNB вне форума  
 
Непрочитано 26.11.2021, 07:56
#603
solar


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


народ, а если способ махом принудительно поменять шрифт текста и мультитекста во всех блоках на произвольный (romans.shx, к примеру)?
solar вне форума  
 
Непрочитано 26.11.2021, 09:47
#604
Кулик Алексей aka kpblc
Moderator

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


А какое это имеет отношение к теме топика?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.11.2021, 09:56
#605
solar


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


часто получаю планировки с TTF-шрифтами, ультрабук плохо с ними справляется. приходится по возможности шрифты менять
solar вне форума  
 
Непрочитано 26.11.2021, 10:02
#606
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


поменяй шрифт в текстовых стилях
trir вне форума  
 
Непрочитано 26.11.2021, 10:44
#607
engngr

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


Цитата:
Сообщение от trir Посмотреть сообщение
поменяй шрифт в текстовых стилях
+ smt и change text styles
engngr вне форума  
 
Непрочитано 26.11.2021, 11:41
#608
solar


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


к сожалению, не всё меняется
solar вне форума  
 
Непрочитано 26.11.2021, 12:59
#609
Кулик Алексей aka kpblc
Moderator

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


Сначала в поиск, потом - в отдельную тему, если ничего не найдешь (в чем лично я сильно сомневаюсь)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.12.2021, 17:20
#610
KrugloKot


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


Получили файл от исполнителя в формате двг. В данном файле все собрано в один блок и называется он *U...... Разобрался, взорвал. Но внутри данного файла еще порядка двух сотен блоков. Они все такую же проблему в имени имеют.
Практически уверен что это специальная защита "из вредности". Не в первый раз.
Вопрос один - как так можно сделать (сделать все блоки неименованными)?
Вопрос два - как применить команду U2B ко всем неименованным блокам?

P.S. Огромное спасибо авторам лиспа. только при помощи Вас смогли снять защиту с другого файла.
KrugloKot вне форума  
 
Непрочитано 09.12.2021, 23:02
#611
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


1) например, ES_Convert.
2) как вариант - вместо U2B можно использовать U2BM.

Последний раз редактировалось kp+, 09.12.2021 в 23:15.
kp+ вне форума  
 
Непрочитано 01.02.2022, 11:20
#612
Walkmax


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


Получаю такое сообщение на команду BGCFT.
Код:
[Выделить все]
Converting Field in неверный тип аргумента: lentityp #<VLA-OBJECT IAcadAttributeReference 000001ea0f017da8>Ошибка Automation. Неверный слой
Как результат - поля без изменений.
Walkmax вне форума  
 
Автор темы   Непрочитано 01.02.2022, 12:55
#613
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Walkmax, нужен dwg файл
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.02.2022, 13:18
#614
Walkmax


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


Чертеж1.dwg
В данном файле код:
Код:
[Выделить все]
Converting Field in неверный тип аргумента: lentityp #<VLA-OBJECT IAcadAttributeReference 000001bd847939b8>Ошибка Automation. Неверный слой
отличается только ---bd847939b8---
Walkmax вне форума  
 
Автор темы   Непрочитано 01.02.2022, 13:52
#615
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Walkmax, Не смог посторить ошибку. Autocad 2020

----- добавлено через 35 сек. -----
Какая версия BGTOOLS? На сришноте 3.12
Миниатюры
Нажмите на изображение для увеличения
Название: bgcft.png
Просмотров: 53
Размер:	79.9 Кб
ID:	244923  
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.02.2022, 15:47
#616
Walkmax


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


ACADVER = "24.0s (LMS Tech)"
Background tools v.3.12

ACADVER = "24.1s (LMS Tech)"
Background tools v.3.12
Код:
[Выделить все]
Converting Field in неверный тип аргумента: lentityp #<VLA-OBJECT IAcadAttributeReference 000002a1bedb0688>Ошибка Automation. Неверный слой
Похоже не работает на 2021 и 2022, проверил на 2020 - работает.
Требуется обновление.


Поймал источник, если в автозагрузке висит это, то BGCFT и BGCFTSEL не работают.

Последний раз редактировалось Walkmax, 07.02.2022 в 00:27.
Walkmax вне форума  
 
Автор темы   Непрочитано 07.02.2022, 23:01
#617
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Walkmax, я пока болею, проверить не могу. По кодам отличалась функция bg:FieldCode. Обновил код по ссылке
Без проверки, если будут баги, сообщи
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.02.2022, 13:16
#618
Walkmax


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


VVA, спасибо.
Проверил - работает.
Выздоравливай!
Walkmax вне форума  
 
Непрочитано 05.03.2022, 12:14
#619
zZombie

инженер проектировщик
 
Регистрация: 26.10.2020
Мск
Сообщений: 8


Не планируете обрабатывать свойство "прозрачность"?
zZombie вне форума  
 
Автор темы   Непрочитано 12.03.2022, 12:07
#620
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от zZombie Посмотреть сообщение
Не планируете обрабатывать свойство "прозрачность"?
А что с ним нужно делать?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.04.2022, 10:40
#621
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


Добрый день. подскажите почему BG1BLEXP не взрывает блок из 1 элемента. файл прикладываю.
Вложения
Тип файла: dwg
DWG 2018
111.dwg (105.3 Кб, 37 просмотров)
Composter вне форума  
 
Непрочитано 29.04.2022, 10:56
#622
csi


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


Возможно, потому что нет такой команды.
BGBLEXP и BGBLEXP1 взрывают.

ADD: Да, проглядел... Подтверждаю поведение команды для данного файла/блока.

Последний раз редактировалось csi, 29.04.2022 в 11:38.
csi вне форума  
 
Непрочитано 29.04.2022, 11:11
#623
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


Цитата:
Сообщение от csi Посмотреть сообщение
Возможно, потому что нет такой команды.
BGBLEXP и BGBLEXP1 взрывают.
Ну воп первых она срабатывает только пишет
Exploded 0 blocks with one element. Found 0 blocks has xclip boundary.

А во вторых если открыть шапку темы , то это вторая команда сверху. Вы возможно темой ошиблись?
Composter вне форума  
 
Непрочитано 04.05.2022, 15:48
#624
Alexey_02


 
Регистрация: 23.05.2007
Москва
Сообщений: 98


BGHATCHDEL - Удаление штриховки
Команда спрашивает "Удалять штриховку с заблокированных или замороженных слоев?"
При нажатии кнопки "Нет" всё равно штриховку (штриховка в блоках и просто штриховка) удаляет с выключенных и/или замороженных слоёв. Штриховку на блокированном слое, при нажатии кнопки "Нет" оставляет.
По смыслу должна не трогать штриховки, на замороженном слое? Следовательно не правильно что-то. Хотелось бы еще, чтобы учитывала "выключенный" слой.
Проверял на "bgtools 3.3" и "bgtools 3.12". AutoCAD 2018ru
__________________
Вот так вот, ...
Alexey_02 вне форума  
 
Автор темы   Непрочитано 13.05.2022, 12:54
1 | #625
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Alexey_02 Посмотреть сообщение
Следовательно не правильно что-то
Поправил. Обновил #1
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.05.2022, 15:03
#626
Alexey_02


 
Регистрация: 23.05.2007
Москва
Сообщений: 98


Цитата:
Сообщение от VVA Посмотреть сообщение
Поправил. Обновил #1
Благодарю. Теперь BGHATCHDEL работает как написано.
__________________
Вот так вот, ...
Alexey_02 вне форума  
 
Непрочитано 28.05.2022, 16:23
#627
crosandr

Инженер-строитель
 
Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994


Можно как-то массово переименовать безымянные блоки *U... и блоки типа U... ? В чертеж многократно копировалась информация из файлов компаса и эти блоки засели неизвестно где, их никак не отловить и не удалить. При новой вставке получается конфликт имен, соответственно вставляется совсем не то, что в исходнике.
crosandr вне форума  
 
Автор темы   Непрочитано 13.06.2022, 14:22
1 | #628
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от crosandr Посмотреть сообщение
Можно как-то массово переименовать безымянные блоки *U... и блоки типа U... ? В чертеж многократно копировалась информация из файлов компаса и эти блоки засели неизвестно где, их никак не отловить и не удалить. При новой вставке получается конфликт имен, соответственно вставляется совсем не то, что в исходнике.
U2BM - Преобразовать UNNAMED в блок множественный выбор
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.07.2022, 09:15
#629
Sergi


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


Народ подскажите.
M2B отрабатывает(взрывает МН-блок до простого блока) если МН-блок больше чем 1х1.
Если блок 1х1 - М2В не работает.
BG1BLEXP
U2B
UX
Эти команды тоже не работают.

MH_1x1.dwg

Последний раз редактировалось Sergi, 06.07.2022 в 09:54.
Sergi вне форума  
 
Непрочитано 06.07.2022, 12:21
#630
ksumatokhin


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


Здравствуйте,
А можно ли добавить функцию BGCOLLTLWBL, которая помимо цвета разбирала бы и на толщину и на тип линий?
Может быть интересна была бы функция, в которой параметры COL LT LW можно было бы включать и выключать по необходимости.
Ведь бывают подосновы, которые вообще все на 2-х слоях нарисованы...
ksumatokhin вне форума  
 
Непрочитано 07.07.2022, 16:00
1 | #631
ksumatokhin


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


Здравствуйте,
Предлагаю для функции BGCOLLTLWBL на основе BGCOLBL участок кода с перебором примитивов заменить на что то подобное:
Код:
[Выделить все]
 (vlax-for item (vla-get-modelspace doc)

  (if (and (vlax-write-enabled-p item)
	   (vlax-property-available-p item 'Color)
      )
    (vl-catch-all-apply
      'vla-put-color
      (list item (vla-get-color item))
    )
  )

  (setq Lay (vla-get-layer item))
  (if (not (wcmatch Lay "*|*"))
    (progn
      (setq val
	     (mapcar
	       '(lambda	(par / a b)
		  (setq	a (vlax-get item par)
			b (vlax-get (vla-item (vla-get-layers doc) Lay) par)
		  )
		  (cond
		    ((= par 'Color)
		     (cond ((= a 256) nil)
			   ((= a b)
			    (vl-catch-all-apply 'vlax-put (list item par acbylayer))
			    nil
			   )
			   ((and (= a 0) (= b 7))
			    (vl-catch-all-apply 'vlax-put (list item par acbylayer))
			    nil
			   )
			   (t a)
		     )
		    )
		    ((= par 'Lineweight)
		     (cond ((= a -1) nil)
			   ((or (= a -2) (= a -3)) (getvar "LWDEFAULT"))
			   (t a)
		     )
		    )
		    ((= par 'Linetype)
		     (cond ((= a "ByLayer") nil)
			   ((and (= a "ByBlock") (= b "Continuous"))
			    (vl-catch-all-apply 'vlax-put (list item par "ByLayer"))
			    nil
			   )
			   ((= a "ByBlock") "Continuous")
			   (t a)
		     )
		    )
		  )
		)
	       '(Color Lineweight Linetype)
	     )
      )
      ; Создаем слой
      (setq tmp (mapcar '(lambda (a) (if (= (type a) 'INT) (itoa a) a)) val))
      (and (setq name (mapcar '(lambda (a b) (if a (strcat b a))) tmp '("_C_" "_LW_" "_LT_")))
	   (setq name (vl-remove-if 'null name))
	   (setq name (apply 'strcat name))
	   (setq tmp (vla-item (vla-get-layers doc) Lay))
	   (setq tmp
		  (bg:layer-create
		    (list
                      (cons "name" (setq name (strcat Lay name)))
                      (cons "color" (if (nth 0 val) (nth 0 val) (vla-get-color tmp)))
                      (cons "lw" (if (nth 1 val) (nth 1 val) (vla-get-lineweight tmp)))
                      (cons "lt" (if (nth 2 val) (nth 2 val) (vla-get-linetype tmp)))
                      (cons "plot" (if (eq (vla-get-plottable tmp) :vlax-true) "y" "n")) 
                    ) 
                  ) 
            )
	   (mapcar '(lambda (par val) (vl-catch-all-apply 'vlax-put (list item par val))) '(Color Lineweight Linetype Layer) (list 256 -1 "ByLayer" name))
	   )
    )
  )
)
----- добавлено через ~47 мин. -----
Так же можно пройтись и по блокам:
Код:
[Выделить все]
 (vlax-for item (vla-get-blocks doc)
    (if (and
          (eq (vla-get-islayout item) :vlax-false) ;_ не листы
          (eq (vla-get-isxref item) :vlax-false) ;_ не внешние ссылки
          (not (wcmatch (vla-get-name item) "*|*"))
        ) ;_ end of and
      (progn
        (vlax-for sub_item item
          (vl-catch-all-apply
            '(lambda ()
                     (setq Lay (vla-get-layer sub_item))
               (if (not (wcmatch Lay "*|*"))  ;_пропускаем внешние ссылки
                 (progn
                   (setq val
                         (mapcar
                           '(lambda (par / a b)
                                    (setq a (vlax-get sub_item par)
                                          b (vlax-get (vla-item (vla-get-layers doc) Lay) par)
                                    )
                              (cond
                                ((= par 'Color)
                                  (cond
                                    ((= a 256) nil)
                                    ((= a b)
                                        (vl-catch-all-apply 'vlax-put (list sub_item par acbylayer))
                                        nil
                                    )
                                    ((= a 0) nil)
                                    (t a)
                                  )
                                )
                                ((= par 'Lineweight)
                                  (cond
                                    ((= a -1) nil)
                                    ((= a -2) nil)
                                    ((= a -3) (getvar "LWDEFAULT"))
                                    (t a)
                                  )
                                )
                                ((= par 'Linetype)
                                  (cond
                                    ((= a "ByLayer") nil)
                                    ((= a "ByBlock") nil)
                                    (t a)
                                  )
                                )
                              )
                            )
                                 '(Color Lineweight Linetype)
                         )
                   )
                   ; Создаем слой
                   (setq tmp (mapcar '(lambda (a) (if (= (type a) 'INT) (itoa a) a)) val))
                   (and (setq name (mapcar '(lambda (a b) (if a (strcat b a))) tmp '( "_C_" "_LW_" "_LT_")))
                        (setq name (vl-remove-if 'null name))
                        (setq name (apply 'strcat name))
                        (setq tmp (vla-item (vla-get-layers doc) Lay))
                        (setq tmp
                              (bg:layer-create
                                (list
                                  (cons "name" (setq name (strcat Lay name)))
                                  (cons "color" (if (nth 0 val) (nth 0 val) (vla-get-color tmp)))
                                  (cons "lw" (if (nth 1 val) (nth 1 val) (vla-get-lineweight tmp)))
                                  (cons "lt" (if (nth 2 val) (nth 2 val) (vla-get-linetype tmp)))
                                  (cons "plot" (if (eq (vla-get-plottable tmp) :vlax-true) "y" "n"))
                                )
                              )
                        )
                        (mapcar '(lambda (par val) (vl-catch-all-apply 'vlax-put (list sub_item par val))) '(Color Lineweight Linetype Layer) (list 256 -1 "ByLayer" name))
                   )
                 )
               )
             )
          )
        )
      )
    )
  )
Если красиво обернуть запрос пользователя на параметры: Цвет Толщина и Тип линии, то можно получать список параметров типа '(Color Lineweight Linetype) или только '(Color). Программа сможет на основе этого списка сортировать элементы. Так же на мой взгляд можно добавить переключатель: обрабатывать блоки или нет.

Уважаемые авторы программы как вам такая идея?

----- добавлено через ~21 ч. -----
Вот, что в итоге у меня получилось. Без переключателя на обработку блоков:
Код:
[Выделить все]
 (load "bgtools 3.12a.lsp")

(defun c:BGCOLLTLWBL (/ doc GPAR item Lay val tmp name sub_item)

  (vl-load-com)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (initget 6)
  (setq GPAR (if (null (setq GPAR (getint "\nВведите бит где 1-COL, 2-LW, 4-LT <7>: "))) 7 GPAR))
  (setq GPAR
        (list
          (if (/= 0 (logand 1 GPAR)) 'Color nil)
          (if (/= 0 (logand 2 GPAR)) 'Lineweight nil)
          (if (/= 0 (logand 4 GPAR)) 'Linetype nil)
        )
  )

  (vlax-for item (vla-get-modelspace doc)

    (if (and (vlax-write-enabled-p item)
             (vlax-property-available-p item 'Color)
        )
      (vl-catch-all-apply
        'vla-put-color
        (list item (vla-get-color item))
      )
    )

    (setq Lay (vla-get-layer item))
    (if (not (wcmatch Lay "*|*"))
      (progn
        (setq val
              (mapcar
                '(lambda (par / a b)
                   (if par
                     (progn
                       (setq a (vlax-get item par)
                             b (vlax-get (vla-item (vla-get-layers doc) Lay) par)
                       )
                       (cond
                         ((= par 'Color)
                           (cond
                             ((= a 256) nil)
                             ((= a b)
                                 (vl-catch-all-apply 'vlax-put (list item par acbylayer))
                                 nil
                             )
                             ((and (= a 0) (= b 7))
                                   (vl-catch-all-apply 'vlax-put (list item par acbylayer))
                                   nil
                             )
                             (t a)
                           )
                         )
                         ((= par 'Lineweight)
                           (cond
                             ((= a -1) nil)
                             ((or (= a -2) (= a -3)) (getvar "LWDEFAULT"))
                             (t a)
                           )
                         )
                         ((= par 'Linetype)
                           (cond
                             ((= a b) nil)
                             ((= a "ByLayer") nil)
                             ((and (= a "ByBlock") (= b "Continuous"))
                                   (vl-catch-all-apply 'vlax-put (list item par "ByLayer"))
                                   nil
                             )
                             ((= a "ByBlock") "Continuous")
                             (t a)
                           )
                         )
                       )
                     )
                   )
                 )
                      GPAR
              )
        )
        ; Создаем слой
        (setq tmp (mapcar '(lambda (a) (if (= (type a) 'INT) (itoa a) a)) val))
        (and (setq name (mapcar '(lambda (a b) (if a (strcat b a))) tmp '( "_C_" "_LW_" "_LT_")))
             (setq name (vl-remove-if 'null name))
             (setq name (apply 'strcat name))
             (setq tmp (vla-item (vla-get-layers doc) Lay))
             (setq tmp
                   (bg:layer-create
                     (list
                       (cons "name" (setq name (strcat Lay name)))
                       (cons "color" (if (nth 0 val) (nth 0 val) (vla-get-color tmp)))
                       (cons "lw" (if (nth 1 val) (nth 1 val) (vla-get-lineweight tmp)))
                       (cons "lt" (if (nth 2 val) (nth 2 val) (vla-get-linetype tmp)))
                       (cons "plot" (if (eq (vla-get-plottable tmp) :vlax-true) "y" "n"))
                     )
                   )
             )
             (mapcar '(lambda (par val) (if par (vl-catch-all-apply 'vlax-put (list item par val)))) (append GPAR '(Layer)) (list 256 -1 "ByLayer" name))
        )
      )
    )
  )
;;; Проходимся по блокам
  (vlax-for item (vla-get-blocks doc)
    (if (and
          (eq (vla-get-islayout item) :vlax-false) ;_ не листы
          (eq (vla-get-isxref item) :vlax-false) ;_ не внешние ссылки
          (not (wcmatch (vla-get-name item) "*|*"))
        ) ;_ end of and
      (progn
        (vlax-for sub_item item
          (vl-catch-all-apply
            '(lambda ()
                     (setq Lay (vla-get-layer sub_item))
               (if (not (wcmatch Lay "*|*"))  ;_пропускаем внешние ссылки
                 (progn
                   (setq val
                         (mapcar
                           '(lambda (par / a b)
                              (if par
                                (progn
                                  (setq a (vlax-get sub_item par)
                                        b (vlax-get (vla-item (vla-get-layers doc) Lay) par)
                                  )
                                  (cond
                                    ((= par 'Color)
                                      (cond
                                        ((= a 256) nil)
                                        ((= a b)
                                            (vl-catch-all-apply 'vlax-put (list sub_item par acbylayer))
                                            nil
                                        )
                                        ((= a 0) nil)
                                        (t a)
                                      )
                                    )
                                    ((= par 'Lineweight)
                                      (cond
                                        ((= a -1) nil)
                                        ((= a -2) nil)
                                        ((= a -3) (getvar "LWDEFAULT"))
                                        (t a)
                                      )
                                    )
                                    ((= par 'Linetype)
                                      (cond
                                        ((= a b) nil)
                                        ((= a "ByLayer") nil)
                                        ((= a "ByBlock") nil)
                                        (t a)
                                      )
                                    )
                                  )
                                )
                              )
                            )
                                 GPAR
                         )
                   )
                   ; Создаем слой
                   (setq tmp (mapcar '(lambda (a) (if (= (type a) 'INT) (itoa a) a)) val))
                   (and (setq name (mapcar '(lambda (a b) (if a (strcat b a))) tmp '( "_C_" "_LW_" "_LT_")))
                        (setq name (vl-remove-if 'null name))
                        (setq name (apply 'strcat name))
                        (setq tmp (vla-item (vla-get-layers doc) Lay))
                        (setq tmp
                              (bg:layer-create
                                (list
                                  (cons "name" (setq name (strcat Lay name)))
                                  (cons "color" (if (nth 0 val) (nth 0 val) (vla-get-color tmp)))
                                  (cons "lw" (if (nth 1 val) (nth 1 val) (vla-get-lineweight tmp)))
                                  (cons "lt" (if (nth 2 val) (nth 2 val) (vla-get-linetype tmp)))
                                  (cons "plot" (if (eq (vla-get-plottable tmp) :vlax-true) "y" "n"))
                                )
                              )
                        )
                        (mapcar '(lambda (par / val)
                                   (if par
                                     ;(setq val (vlax-get sub_item par))
                                     (cond
                                       ((= par 'Color)
                                           (setq val (if (= (vlax-get sub_item par) 0) 0 256))
                                           (vl-catch-all-apply 'vlax-put (list sub_item par val))
                                       )
                                       ((= par 'Lineweight)
                                           (setq val (if (= (vlax-get sub_item par) -2) -2 -1))
                                           (vl-catch-all-apply 'vlax-put (list sub_item par val))
                                       )
                                       ((= par 'Linetype)
                                           (setq val (if (= (vlax-get sub_item par) "ByBlock") "ByBlock" "ByLayer"))
                                           (vl-catch-all-apply 'vlax-put (list sub_item par val))
                                       )
                                       ((= par 'Layer)
                                           (vl-catch-all-apply 'vlax-put (list sub_item par name))
                                       )
                                     )
                                   )
                                 )
                                (append GPAR '(Layer))
                        )
                   )
                 )
               )
             )
          )
        )
      )
    )
  )
)
ksumatokhin вне форума  
 
Непрочитано 14.09.2022, 01:26
| 1 #632
engngr

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


Пробую пофиксить стили печати всех блоков на "по слою":
Command: _BGBLFIX
; error: Automation Error. The drawing is in color dependent plot style mode
Command:
Command: _PSTYLEMODE
PSTYLEMODE = 0 (read only)

Версия autocad 2022, версия bgtools 3.12a, файл могу отправить в приватном порядке. По возможности прошу посмотреть, что не так, и исправить.
engngr вне форума  
 
Непрочитано 14.09.2022, 07:48
#633
Кулик Алексей aka kpblc
Moderator

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


Может, _.convertpstyles сработает?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.09.2022, 09:50
#634
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


engngr, Вышли файл. Уже сталкивался с тем, что Автодеск начиная с 2021 Автокада изменил работу некоторых методов, например vla-put-ColorMethod. Приходится проверять версию Автокада
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 15.09.2022, 16:53
1 | #635
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от engngr Посмотреть сообщение
Версия autocad 2022, версия bgtools 3.12a, файл могу отправить в приватном порядке. По возможности прошу посмотреть, что не так, и исправить.
Обновил до версии 3.13
Короче там ошибка выскакивала при попытке получить описание анонимного блока [(vla-item (vla-get-blocks adoc) bname))]
Поставил отлов ошибок. Проверяй
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.10.2022, 09:39
#636
posetitel


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


скажите, а есть одна общая команда, чтобы запустил и все вышеперечисленные команды сразу выполнились, т.е. подоснову взорвали-расчленили-удалили лишнее? не нашел в теме, может уже спрашивали
posetitel вне форума  
 
Непрочитано 06.10.2022, 10:08
#637
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 431


Цитата:
Сообщение от posetitel Посмотреть сообщение
скажите, а есть одна общая команда, чтобы запустил и все вышеперечисленные команды сразу выполнились, т.е. подоснову взорвали-расчленили-удалили лишнее? не нашел в теме, может уже спрашивали
Offtop: а еще сварила кофе и испекла круассан
Команда, которая всё взорвет здесь есть. А вот по поводу удалить лишнее - это же настолько индивидуальное понятие - "лишнее", у кого-то полчертежа, у кого-то 2 примитива...
RNB вне форума  
 
Непрочитано 09.02.2023, 06:26
#638
mogulfx

инженер
 
Регистрация: 11.08.2017
Сообщений: 13


День добрый! Извиняюсь за глупый вопрос, но как в теле своего лиспа применить команду BGBLEXP1 к набору, созданному через ssget по координатам? Чтобы не руками выбирать
mogulfx вне форума  
 
Автор темы   Непрочитано 10.02.2023, 17:17
#639
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Команда обрабатывает предварительный выбор. Функция SSSETFIRST "подсветит" набор. Пример ниже
Пусть набор будет сохранен в переменную ss
Код:
[Выделить все]
(SSSETFIRST ss ss)
(C:BGBLEXP1)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.02.2023, 06:33
#640
mogulfx

инженер
 
Регистрация: 11.08.2017
Сообщений: 13


Не получается. Всё равно выходит запрос на выбор объектов руками.
Предварительный набор по координатам
Код:
[Выделить все]
 (setq ss2 (ssget "_C" minpt maxpt'((0 . "INSERT"))))
mogulfx вне форума  
 
Непрочитано 14.02.2023, 07:51
#641
Кулик Алексей aka kpblc
Moderator

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


pickfirst ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.02.2023, 05:24
#642
mogulfx

инженер
 
Регистрация: 11.08.2017
Сообщений: 13


Попробовал, pickfirst on/off не влияет. Кстати Bricscad.
mogulfx вне форума  
 
Автор темы   Непрочитано 17.02.2023, 13:06
#643
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Проверить в Брикскаде не могу, в Автокаде работает. При выборе секрамкой объекты должны быть гарантированно на экране. Добавил пару библиотечных функций

Код:
[Выделить все]
; ! ***********************************************************
;; !                             lib:Zoom2Lst
;; ! **********************************************************
;; ! Function : Zoom границ списка точек
;; ! Arguments: 'vlist' - Список точек в МСК!!!!
;; ! Зуммирует экран, чтобы все точки были видны
;; ! Returns  : t - было зуммирование nil - нет
;; ! **********************************************************
(vl-load-com)
;;; Версия с vla- объектами
    (defun lib:Zoom2Lst (vlist / pts)
      (setq pts (lib:pt_extents (mip:ZZero vlist)))
      (if (not (and (lib:IsPtInView (car pts)) (lib:IsPtInView (cadr pts))))
        (progn
          (vla-ZoomWindow (vlax-get-acad-object) (vlax-3d-point (car pts)) (vlax-3d-point (cadr pts)))
          (vlax-invoke (vlax-get-acad-object) 'ZoomScaled 0.85 acZoomScaledRelative)
          T
        )
        nil
      )
    )  ;end
;|
   ! ***************************************************************************
;; !           lib:pt_extents
;; ! ***************************************************************************
;; ! Function : Возвращает границы MIN, MAX X,Y,Z списка точек
;; ! Argument : 'vlist' - Список точек
;; ! Returns  : Список точек (ЛевНижн ПравВерхн)
;; ! ***************************************************************************
|;
    (defun lib:pt_extents (vlist / tmp)
      (setq tmp (apply 'mapcar (cons 'list vlist)))
      (list (mapcar '(lambda (x) (apply 'min x)) tmp) (mapcar '(lambda (x) (apply 'max x)) tmp))  ;_defun
    )
;|
   ! *******************************************************************
;; !                  lib:IsPtInView
;; ! *******************************************************************
;; ! Проверяет находится ли точка в видовом экране
;; ! Auguments: 'pt'  - Точка для анализа в МСК!!!
;; ! Return   : T или nil если 'pt' в видовом экране или нет
;; ! *******************************************************************
|;
    (defun lib:get-viewctr-size (/ VCTR Y_Len SSZ X_Pix Y_Pix X_Len)
      (setq VCTR (getvar "VIEWCTR") Y_Len (getvar "VIEWSIZE")
            SSZ (getvar "SCREENSIZE")
            X_Pix (car SSZ) Y_Pix (cadr SSZ)
            X_Len (* (/ X_Pix Y_Pix) Y_Len)
      )
      (list (mapcar '- VCTR (list (* 0.5 X_len) (* 0.5 Y_len)))
            (mapcar '+ VCTR (list (* 0.5 X_len) (* 0.5 Y_len)))
      )
    )
    (defun lib:IsPtInView (pt / Lc Uc)
      (setq pt (trans pt 0 1))
      (setq Lc (lib:get-viewctr-size)
            Uc (cadr Lc)
            Lc (car Lc)
      )
      (if (and (> (car pt) (car Lc)) (< (car pt) (car Uc))
               (> (cadr pt) (cadr Lc)) (< (cadr pt) (cadr Uc))
          )
        T nil
      )
    )


(defun C:TEST ()
(setq minpt (getpoint "\nFirts point: "))
(setq maxpt (getcorner minpt  "\nOther corner: "))
(lib:Zoom2Lst (list MinPt MaxPt));_Гарантированно блоки на экране
  
(if (setq ss2 (ssget "_C" minpt maxpt'((0 . "INSERT"))))
  (progn
    (SSSETFIRST ss2 ss2)
    (C:BGBLEXP1)
    )
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.04.2023, 00:12
#644
superkot007


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


Доброго времени суток.
Как задать работу BGBLEXP без запроса выбора объектов? Либо выделением всего содержимого пространства модели, либо по двум фиксированным противоположным точкам.
superkot007 вне форума  
 
Непрочитано 08.04.2023, 14:26
#645
engngr

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


Цитата:
Сообщение от superkot007 Посмотреть сообщение
Как задать работу BGBLEXP без запроса выбора объектов? Либо выделением всего содержимого пространства модели
bgblexp _all
?
engngr вне форума  
 
Автор темы   Непрочитано 18.04.2023, 10:34
#646
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от superkot007 Посмотреть сообщение
Как задать работу BGBLEXP без запроса выбора объектов?
BGBLEXP работает с предварительным выбором. Поэтому алгоритм такой
1. Сформировать нужный набор объектов
2. Вызвать BGBLEXP
Пример (Взрывает все блоки в текущем пространстве)
Код:
[Выделить все]
(defun C:TEST ( / ss)
  (if (setq ss (ssget "_X" (list(cons 0 "INSERT")(cons 410 (getvar "CTAB")))))
    (SSSETFIRST ss ss)
    )
 (C:BGBLEXP)
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.05.2023, 10:38
#647
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Повторно подниму свой вопрос #402
Данный функционал так и не удалось реализовать?
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 25.05.2023, 15:12
#648
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от zenon Посмотреть сообщение
Повторно подниму свой вопрос #402
Данный функционал так и не удалось реализовать?
Пробуй. Добавь к bgtools.lsp
Код:
[Выделить все]
(defun C:BG1BLEXPONE ( / count xcount)
;;; Взрывает блоки, состоящие из одного примитива вставленные один раз  
  (setq count (bg:block-explode-one-item-ones)
	xcount (cadr count)
	count (car count)
	)
  
  (princ "\nExploded ")
  (princ count)
  (princ " blocks with one element. Found ")
  (princ xcount)
  (princ " blocks has xclip boundary.")
  (princ)
  )
(defun bg:block-explode-one-item-ones ( / blklist count xcount tmp Doc Blks ss)
;;; Взрывает блоки, состоящие из одного примитива и одного вхождения
;;; Explode blocks consisting of one primitive thing (it is possible other block)
   (bg:layer-status-save)
    (setq Doc (vla-get-activedocument (vlax-get-acad-object))
	Blks (vla-get-Blocks Doc)
	)
  (vlax-for Blk Blks
    (if (and (= (vla-get-IsXref Blk) :vlax-false)
	  (= (vla-get-IsLayout Blk) :vlax-false)
	  (= (vla-get-count Blk) 1)
	  )
      (setq blklist (cons (vla-get-Name Blk) blklist))
      )
    )
  (setq tmp blklist)
  (foreach blk tmp
    (if (eq (type (setq ss nil ss (ssget "_X" (list (cons 0 "INSERT")(cons 2  blk)(cons 410 (getvar "CTAB")))))) 'PICKSET )
      (if (/= (SSLENGTH ss) 1)(setq blklist (vl-remove blk blklist)))
      (setq blklist (vl-remove blk blklist))
      )
    )
  (setq count 0 xcount 0)
  (vlax-for obj (vla-get-block(vla-item (vla-get-Layouts(vla-get-activedocument (vlax-get-acad-object)))(getvar "CTAB")))
    (if (and (eq (vla-get-ObjectName obj) "AcDbBlockReference")
	     (not (vlax-property-available-p obj 'path))
	     (vl-position (bg:block-get-name obj) blklist)
        )
      (progn
	(if (and (setq tmp (bg:block-GetXclip obj))
		 (= 1 (cdr(assoc 71 tmp)))
		 )
	  (progn
	    ;;; Здесь должна быть реакция на подрезанный блок
	    ;;; Игнорируем
	    (setq xcount (1+ xcount))
	    )
	 (progn
	   (bg:explode-block (vlax-vla-object->ename obj) nil)
	   (setq count (1+ count))
	   )
	)
      )
      )
    )
  (bg:layer-status-restore)
  (list count xcount)
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.07.2023, 20:51
#649
egorus2014


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


Не ругайтесь, если повторю чей-то вопрос...
Можно ли перекрашивать всё, но в пределах выбранного?
Потому что если даже скопировать часть чертежа в новый файл, там его полностью перекрасить и вставить обратно - все блоки перекрашиваются обратно. Остаются перекрашенными только примитивы.
egorus2014 вне форума  
 
Непрочитано 25.07.2023, 22:16
#650
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от egorus2014 Посмотреть сообщение
Потому что если даже скопировать часть чертежа в новый файл, там его полностью перекрасить и вставить обратно - все блоки перекрашиваются обратно
Вы же о команде bgblfix, так? Но она "перекрашивает" определения блоков. Соответственно, перекрашиваются все вставленные в чертеж экземпляры этих блоков, т.к. они ВСЕ тиражируются с определений.
А чтобы перекрасить ЧАСТЬ вставленных экземпляров блоков, надо заменить их на копии, идентичные по содержанию, но с другими именами. Для этого пригодится команда BGRB. Правда, она работает с отдельными блоками.
Как вариант, посмотрите здесь: https://dwg.ru/dnl/10891
kp+ вне форума  
 
Непрочитано 25.07.2023, 22:37
#651
egorus2014


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


Вообще пробовал команду BGCOLOR
Пусть в пространстве несколько планов. Один нужно перекрасить (почти все в один цвет).
BGCOLOR - перекрашивает вообще всё. Даже скрытые элементы.
Я пробовал скопировать в новый документ нужный план, перекрасить и скопировать обратно - при вставке перекрашенного плана в первоначальный документ все блоки возвращают свою первоначальную окраску.
egorus2014 вне форума  
 
Непрочитано 25.07.2023, 23:20
#652
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от egorus2014 Посмотреть сообщение
при вставке перекрашенного плана в первоначальный документ все блоки возвращают свою первоначальную окраску.
Так в первоначальном документе определения блоков остались не перекрашенными, о чем я и говорил.
Более того, если не использовать bgtools, а перекрасить определения блоков по одному в штатном редакторе блоков - эффект будет тот же.

Цитата:
Сообщение от egorus2014 Посмотреть сообщение
Пусть в пространстве несколько планов. Один нужно перекрасить (почти все в один цвет).
Если в каждом из планов в пределах одного файла используются одни и те же блоки, то, конечно, все и перекрасятся. Т.к. перекрашены определения блоков - то, с чего растиражированы экземпляры блоков, расставленные в чертеже.

Поймите разницу между определением блока и вставленными в чертеж экземплярами блока, и все станет на свои места. Разница - примерно как между типографской матрицей и напечатанными с нее листами Только в типографии изменения в матрице влияют лишь на новые отпечатки, а в блоках Акада - на все, в том числе ранее "отпечатанные".

PS
Разбросать разные планы по разным файлам разве не представляется возможным?

Последний раз редактировалось kp+, 25.07.2023 в 23:34.
kp+ вне форума  
 
Непрочитано 27.01.2024, 12:18
#653
posetitel


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


Товарищи, гуру лиспа и автокада, допилите, пожалуйста, команду BGBLFIX, до возможности сбрасывать масштаб линий на 1 либо на задаваемый. Сейчас только реализована функция "одинаковый масштаб", но какой он будет конкретно - непонятно.
posetitel вне форума  
 
Автор темы   Непрочитано 29.01.2024, 16:38
#654
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от posetitel Посмотреть сообщение
Товарищи, гуру лиспа и автокада, допилите, пожалуйста, команду BGBLFIX, до возможности сбрасывать масштаб линий на 1
Пробуй. Обновил до версии 3.13b. Дай обратную связь, сильно не тестировал
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.01.2024, 16:47
#655
posetitel


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


Спасибо, на тестовом блоке работает.
А можно сделать возможность назначить устанавливаемый масштаб линий, а не строго 1.
posetitel вне форума  
 
Непрочитано 29.02.2024, 14:28
#656
white_cat


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


Автокад 2023. При использовании команды BGLAYDEL след ошибка:

Код:
[Выделить все]
Команда: BGLAYDEL
_.UNDO Текущие настройки: Авто = Вкл, Управление = Все, Объединить = Есть, Слой = Есть
Количество отменяемых операций или [Авто/Управление/Начало/Конец/Метка/Обратно] <1>: _Mark
Команда: ; ошибка: Возникло исключение: 0xC0000005 (Нарушение доступа)
; предупреждение: раскрутка пропущена для исключение
; ошибка: Возникло исключение: 0xC0000005 (Нарушение доступа)
white_cat вне форума  
 
Автор темы   Непрочитано 11.03.2024, 09:51
#657
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


white_cat, Пока нет 2023 для проверки. Попробуй предварительно проверить черчеж на ошибки
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 14.03.2024, 13:26
#658
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 910


Цитата:
Сообщение от VVA Посмотреть сообщение
Пока нет 2023 для проверки
Если что, то в 2024 отработало без ошибок
kacugu вне форума  
 
Непрочитано 15.03.2024, 14:41
#659
posetitel


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


Неожиданно наткнулся вот на какой баг (фичу?): если в блоке с рамкой и штампом на листах есть поле с переменной ctab, то при выполнении команды BGCTF поле во всех листах преобразовывается в текст с названием только первого листа.
Это в принципе логично, но не совсем отвечает задумке команды, хотелось, конечно, чтобы в каждом блоке оставалось то значение ctab, которое и было, но тогда возникнет противоречие, не может быть один блок на разных листах с разным текстом (собственно поэтому и захотел потестить команду).
posetitel вне форума  
 
Непрочитано 16.03.2024, 13:48
#660
white_cat


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


Цитата:
Сообщение от VVA Посмотреть сообщение
white_cat, Пока нет 2023 для проверки. Попробуй предварительно проверить черчеж на ошибки
Проверил на ошибки - их нет. Проверил с другими чертежами - аналогичная ошибка.
white_cat вне форума  
 
Непрочитано 26.08.2024, 16:14
#661
DeyDJ


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


Спасибо за данный лисп, использовал для нормализации блоков.
Было много блоков в файле, и не хотел каждый взрывать или редактировать. Нужно было применить всем линиям блоков один слой.
DeyDJ вне форума  
 
Непрочитано 26.02.2025, 16:33
#662
AlexKr


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


Всем здравствуйте! Не получилось победить беду из #632? Очень требуется такое решение. Необходимо поменять значение стиля печати для примитивов внутри блоков после конвертации при помощи ._CONVERTPSTYLES. Для примитивов с заданным цветом задается стиль печати Style_1. На этих объектах и выпадает данная ошибка.
AlexKr вне форума  
 
Непрочитано 10.03.2025, 09:49
#663
name02


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


1 Сначала надо перейти в режим с объектозависимым профилем печати
2 В коде файла bgtools 3.9.lsp нужно внести следующие изменения:
строка 5733 | (defun bg:blfix (lst / cnt adoc opt ss cnta isRus locklay bobj old_color)
...
строка 5766 | ;;_Color type byblock
строка 5777 | (setq old_color (vla-get-color sub_item))
...
строка 5799 | ;;_Plot style type byblock
строка 5800 | (if (vlax-write-enabled-p sub_item)
строка 5801 | (if (= old_color 1)
строка 5802 | (vla-put-PlotStyleName sub_item "Красное")
строка 5803 | (vla-put-PlotStyleName sub_item "ByBlock")
строка 5804 | ) ;_ end of if
строка 5805 | ) ;_ end of if

Изменения позволят устанавливать стиль печати "Красное" всем объектам внутри блока имеющим цвет №1 (красный)
name02 вне форума  
 
Непрочитано 07.04.2025, 20:16
#664
engineer159

инженер-проектировщик по ИОС1 и ИОС5
 
Регистрация: 14.03.2025
Пермь
Сообщений: 1


Доброго времени суток. BGBLALLDYN2A не работает со вложенными блоками, то есть блоки которые состоят из других блоков. Можно внести корректировку?
engineer159 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Подготовка подосновы



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) Red Nova LISP 5019 07.06.2025 23:43
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33
LISP на команду 3dcorbit Малюк LISP 2 30.09.2009 14:18
Запуск Lisp команды в новом документе BlackHarp LISP 1 26.03.2009 23:06
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19