Jump to content

LISP программы для работы с дин. блоками + набор lisp-функций


Recommended Posts

Переработал для себя lisp, которым пользовался в autocadе, и добавил некоторые специально для nanocada. Выкладываю, может кому-нибудь пригодится. 

Работоспособность проверялась в Nanocad СПДС 22.

Установка:

- скопировать все файлы в папку,

- прописать эту папку в настройках nanocada как путь к вспомогательным файлам

- добавить файлы CustomFunc.LSP,  SNanoHelp.LSP, comBlock.lsp в автозагрузку

 

Спойлер

agp_vedchert – создать ведомость чертежей (в виде рядов однострочного текста); работает с дин. блоками рамки и формата в прилагаемом файле

agp_numlist - пронумеровать листы; работает с дин. блоком рамки и формата

agp_numstranica - пронумеровать страницы; работает с дин. блоком рамки и формата

agp_bl_redef - переопределить блок из одного открытого чертежа .dwg в другой; можно выбрать несколько блоков и несколько чертежей (чертеж должен быть открыт в нанокаде)

agp_bl_replace - заменить блок в чертеже в пространстве модели на другой с сохранением координат, слоя, угла поворота

agp_bl_rename - переименовать блок (заменяет имя во всем чертеже)

agp_bl_rename_sel - переименовать выбранный блок (заменяет имя для выбранного блока)

agp_bl_propcopy - копировать свойства блока (атрибуты, видимость, координаты и т.д.) и назначить всем блокам в чертеже с выбранным именем; можно выбрать любые блоки, которым нужно назначить свойства

agp_bl_sumattr – подсчет атрибутов блока (в виде рядов однострочного текста);

agp_bl_replace_in_block - заменить вставленный блок в другом блоке с сохранением видимости

agp_bl_attr_copytodef - заменить значения атрибутов по умолчанию; перезаписывает значение по умолчанию для определения атрибута в блоке – значение берется с вставленного в чертеж блока

agp_bl_regen - регенерировать блок; если дин. блок с видимостью начинает глючить – при переключении видимости показываются элементы которые должны быть скрыты, а в редакторе блоков все правильно  (чтобы все работало, дин. блок ДОЛЖЕН СОДЕРЖАТЬ ТОЛЬКО ПАРАМЕТРЫ ВИДИМОСТИ – НИКАКИХ РАСТЯЖЕНИЙ, ПЕРЕМЕЩЕНИЙ И Т.Д.)

agp_dim_to_spds - перевести выбранные размеры в стиль СПДС

agp_mleader_to_spds - перевести выбранные мультивыноски в стиль СПДС

agp_bl_explode_in_block - взорвать блок внутри другого блока с сохранением видимости

agp_print_format - печать по формату из пространства модели; работает с дин. блоком формата

agp_print_ramka - печать по рамке из пространства модели; работает с дин. блоком рамки

 

Спойлер

ipc  - Функция приращения координат точки на х и у

lst-end - Функция создания списка с добавлением элементов в конец списка

file_name_chk  - Функция очистки имени файла от запрещенных символов

file-read - функция - чтение строк из файла

okr  - функция - округление в меньшую сторону по числу

ZeroOkr  - функция - округление до нуля

entsel_check  - Функция проверки вводимой информации на nil

rangeLst - функция - список из последовательности чисел

ss-to-enamelst  - функция - selection set в список имен

str-to-lst - функция - обработка списка строк (строка в список)

lst-to-str - функция - обработка списка (список в строку)

NANO_getpropertyvalue - функция - аналог Getpropertyvalue в автокаде

NANO_setpropertyvalue  - функция - аналог Setpropertyvalue в автокаде

_clear-mtext - Функция сносит форматирование многострочного текста

check_Tstyle - Функция проверки текстового стиля на высоту текста

sortV - Функция сортировки списка по возрастанию

str_comp_sort - Функция сортировки списка по возрастанию для списка из строк (числа + буквы)

lst-str_num - Функция перевода строки в список с разделением на строки и числа

dotLstFiltr_F - Функция фильтрации точечного списка по первому члену

dotLstFiltr_S - Функция фильтрации точечного списка по второму члену

dotLstsFiltr_S - Функция фильтрации списка из точечных списков по второму члену с выбранным кодом

LstDiv - Функция разделения списка по порядковому номеру

LstRange - Функция выделения ряда в списке по начальному номеру и длине ряда

LstSrch - Функция поиска по списку

LstAppendUniq - Функция добавления в список только уникальных элементов

LstUniq - Функция убрать из списка повторяющиеся элементы

LstRemoveLst - Функция удаления из списка элементов из другого списка

CHECK_p_in_bbox - функция - проверка попадания точки в область ограниченную двумя точками

str_w-search  - Функция поиска позиции (отдельного слова) в строке

check_char - Функция проверяет предыдущий или следующий символ на равенство заданному символу

lst-search_char – функция возвращает список с номерами положения символа в строке

objCenter - Функция вычисления координат центра объекта obj

main_func_plot - Функция печати

get-entDB-Visibility - Функция - получение объекта "Видимость" с именем _name с дин. блока obj в виде списка

get-entDB-AllVisibilityNames - Функция - получение списка с названием объектов "Видимость" с дин. блока obj

entDB-Visibility-setName - Функция - переименовать на _name параметр дин. блока "Видимость" ent

entDB-Visibility-addVisState - Функция - добавить состояние видимости с именем _name для параметра дин. блока "Видимость" ent

entDB-Visibility-delVisState - Функция - удалить состояние видимости с именем _name для параметра дин. блока "Видимость" ent

entDB-Visibility-ShowElem - Функция - показать элементы objLst для состояния видимости с именем _name для параметра дин. блока "Видимость" ent

entDB-Visibility-ShowElemAllState - Функция - показать элементы objLst для всех состояний видимости для параметра дин. блока "Видимость" ent

entDB-Visibility-HideElem - Функция - скрыть элементы objLst для состояния видимости с именем _name для параметра дин. блока "Видимость" ent

entDB-Visibility-addToAllEnum - Функция - проверить наличие элементов enumLst для параметра дин. блока "Видимость" ent и добавить новые

entDB-Visibility-removeFromAllEnum - Функция - удалить элементы enumLst из параметра дин. блока "Видимость" ent

entDB-Visibility-ClearAll - Функция - полностью очистить параметр дин. блока "Видимость" ent

blk_name_check - Функция проверки имени блока - новое имя для блока.

blk_name_checkExist - Функция проверки имени блока - существующий блок.

block_renameCopy - Функция замена имени блока с сохранением параметров видимости

block_rename - Функция замена имени блока

findAllBlockRef - Функция найти все вхождения блока

findBlockRefInBlock - Функция найти все вхождения блока в другом блоке

func_addvisName - Функция добавить к списку col_p список видимостей и состояний видимостей, в которых виден объект obj

genLst-ObjInBlock - Функция создать список для генерации объектов (из объектов внутри блока с именем bl_n)

genObjInBlock - Функция создать объекты в блоке по списку для генерации объектов

bl_Attr_insP - Функция изменения точки вставки атрибута блока

bl_uniqref - Функция оставить в списке по одному уникальному вхождению дин. блока

 

comBlock.lsp CustomFunc.LSP SNanoHelp.LSP _DynBlock_Template.dwg bl_redefine.DCL block_prop_copy.DCL printDialog.DCL printOpt.DCL Рамки форматаV4.dwg

 

Upd. Добавил файлы в загрузки

 

Edited by Ckopnu
Добавил файлы в загрузки
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

13 часов назад, Ckopnu сказал:

Выкладываю, может кому-нибудь пригодится

Вы бы сюда добавили.

Полезная информация. 

А вообще-то часть вопросов можно автоматизировать средствами платформы

 

 

Рамки форматаV4.dwg

  • Like 1
Link to comment
Share on other sites

 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...