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

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

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

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

Набор команд, опубликованных в теме Подоснова
Желательно ознакомиться с указанной темой или как минимум с описанием
Описание команд
Код:
[Выделить все]
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 Кб, 6645 просмотров)
Тип файла: zip bgtools3.13b.zip (57.3 Кб, 281 просмотров)

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

Последний раз редактировалось VVA, 29.01.2024 в 16:36. Причина: См историю изменений
Просмотров: 414575
 
Автор темы   Непрочитано 19.11.2018, 17:42
1 | #481
VVA

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


posetitel, Нельзя. При указании блока точка выбора используется для определения оставляемой области подрезки. Плюс там много операций, использующих команды Автокада, при вызове которых необходимо, чтобы объекты были на экране. Для показа блоков с подрезкой есть команда BGBLXCLIP
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 26.11.2018, 11:26
#482
posetitel


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


скажите, а как в одном лиспе уместить несколько команд, которые будут автоматически выполняться одна за другой?
например, сначала выполняю BGLAYDEL, потом BG1BLEXP и т.д.,
конкретную комбинация включает команды не только работы с подосновой, пока хотел бы понять принцип
posetitel вне форума  
 
Непрочитано 26.11.2018, 12:55
1 | #483
skkkk


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


posetitel, именно с этими командами у меня сработало следующим образом:
Код:
[Выделить все]
(defun C:ONELISP ( / )
	(C:BGLAYDEL)
	(C:BG1BLEXP)
)
Это общий принцип. Но, полагаю, теоретически, возможны конфликты разных команд. Надо пробовать.
skkkk вне форума  
 
Непрочитано 26.11.2018, 13:01
#484
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,048


а разве с префиксом команды надо вызывать?
Сергей812 вне форума  
 
Непрочитано 26.11.2018, 13:04
1 | #485
Кулик Алексей aka kpblc
Moderator

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


Определенные в лиспе - да. Ну или через command / command-s / vl-cmdf
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.11.2018, 13:17
#486
posetitel


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


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

Последний раз редактировалось 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
С.-Петербург
Сообщений: 39,848


posetitel, во-первых, действия администрации не обсуждаются - читай правила.
Во-вторых, один и тот же вопрос в тысяче мест, мягко говоря, вызывает недоумение - неужели понятие кросспостинга и что за этим следует, неизвестно?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.11.2018, 13:37
#488
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,048


а в третьих - есть поиск: тема с примером готового кода находится за несколько минут. Что мешает забить те же самые слова "Внедрение всех внешних ссылок" вместо поста в поисковую строку форума?
Сергей812 вне форума  
 
Непрочитано 26.11.2018, 14:21
#489
posetitel


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


в теме внедрение всех внешних ссылок командой и последующее 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,048


Просто надо этот код вставить внутри команды:
Код:
[Выделить все]
 (с:%Имя вашей команды%( / i )
...
) 
Сергей812 вне форума  
 
Непрочитано 26.11.2018, 16:04
#491
posetitel


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


удалил предыдущую запись.
вроде все заработало
код прикладываю
Цитата:
(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
Сообщений: 323


Сегодня обратил внимание, что в 14 автокаде команда BGLAYDEL ломает объекты СПДС-extension
файлы до запуска команды и после запуска прилагаю
Вложения
Тип файла: dwg
DWG 2013
Чертеж-до очистки.dwg (35.5 Кб, 22 просмотров)
Тип файла: dwg
DWG 2013
Чертеж-после очистки.dwg (34.0 Кб, 19 просмотров)
posetitel вне форума  
 
Непрочитано 28.11.2018, 11:32
#493
Astartes

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


Пользовался раньше для преобразования полей в текст вот командой 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 Кб, 26 просмотров)
__________________
AutoCad 2011 -> AutoCad 2013
Astartes вне форума  
 
Автор темы   Непрочитано 28.11.2018, 12:00
#494
VVA

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


Astartes, Поправил. Обновил до версии 3.8.2
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.11.2018, 12:17
#495
Astartes

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


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
Astartes вне форума  
 
Автор темы   Непрочитано 28.11.2018, 12:44
#496
VVA

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


Вместо
Код:
[Выделить все]
(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,781


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
Просмотров: 27
Размер:	29.1 Кб
ID:	211503  
Вложения
Тип файла: dwg
DWG 2018
chertezh-31-31.dwg (199.9 Кб, 18 просмотров)

Последний раз редактировалось 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
С.-Петербург
Сообщений: 39,848


Des501(К), а тебе в пост что, файл не приложить?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Подготовка подосновы

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) Red Nova LISP 4555 24.03.2024 13:44
{Конкурс} 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