Jump to content

doctorraz

Пользователи
  • Posts

    4,548
  • Joined

  • Last visited

  • Days Won

    385

Blog Entries posted by doctorraz

  1. doctorraz
    Благодаря @Lidia.Antipina BGTOOLS почти полностью заработал в nanoCAD
    Команд реально много, все не упомнишь, поэтому собрал на скорую руку менюшку (затолкал в нее все команды, некоторые работают не во всех нановерсиях)
    подробное описание команд можно посмотреть в конце файла bgtools 3.11a_Nc_22.lsp ( @Lidia.Antipina достаточно подробно все расписала)
     

     
    Собрал панельку из четырех команд (муторно им иконки подбирать)))

    Ну и заодно пристегнул свою утилиту по нормализации блоков (старые куски кода собрал в кучу, когда BGTOOLS еще в нано не работала)

    кое в чем повторяет функционал BGTOOLS
    из уникального:
    умеет топить маскировки в блоках  умеет синхронизировать атрибуты блоков не меняя их положение ------------------
    Как этим добром  пользоваться:
    Распаковать архив в доступное место Добавить в автозагрузку файл BlockStandard.package Перезагрузить нанокад, появится меню и две новых панельки ==========================
    Естественно я все программы на всех возможных конфигурациях не тестировал, поэтому используем как есть, сохраняемся делаем копии, в общем обычная наноработа.
    Отзывы, пожелания, критику в комментарии
     
     
    BlockStandardNC_for_nanoCAD.zip
  2. doctorraz
    Автоматическая печать из nanoCAD (только форматы СПДС)
     
     
     
     
    Пока вроде все, по мере поступления вопросов и замечаний статью буду дополнять.
    Баги и пожелания эту тему.
    Вышло очередное обновление 0.1.8464 от 05.03.2023  что нового?
    Актуальная версия программы
    Домашняя страница программы
     
     
     
     
  3. doctorraz

    Автоматизация
    По мотивам видео уважаемого  @MCAD
    Собрал заполнялку форматок СПДС на основе таблиц...
    Коротенько что умеет и зачем...
    1. Заполняет реквизитную часть основных надписей
    Но в связи с тем, что в таблицах бага (несколько (много ) отчетов начинают глючить, а мне надо много)
    Эта таблица  заполняет данными другие таблицы..
    Собирает данные с форматов в чертеже (мне надо для статистики по разделам, листов и приведение к А1)
    UPD 19.05.2021  15:50 Заполняет данными  блок с атрибутами (иначе как мне взять полем в текст или мтекст??)  
    И берет с этого блока поля  имени файла и путь файла ( заодно объехали еще одну багу с отцепляющимися полями в таблице при изменении в таблице количества строк и еще одну багу лишний пробел в начале строки)
    из за баги в нано (атрибуты из блоков в тексты не держатся, слетают и глючит)
    поэтому написал простенький VBA который значения именованных ячеек таблицы записывает в пользовательские свойства документа, а вот оттуда уже можно подтянуть полем в любой объект.
    Бонусом при вставке текста с полем в любой документ, если у документа есть такие пользовательские свойства все подтянется автоматически.
    Продолжение истории))/UPD
    -------------------
    Маленькие таблицы:
    непосредственно заполняют основные надписи форматок
    нумеруют форматки (слева направо снизу вверх, можно перенастроить)
    В первом формате ставят количество форматов.
    В маленьких таблицах нужно только  задать область в которой расположен раздел и имя раздела (то что в обозначении после точки... СО, КЖ, Д, Р)
    Кому интересно качайте шаблончик, включайте скрытые строки и разделы (их там есть), разбирайтесь как это работает и конечно адаптируйте под свои нужды (кто проектирует проект файл)
    Связи можно посмотреть-проверить по SPREFSHOW
    ------------------------
    Критика только приветствуется))
    ЗЫ возможно чего вспомню еще допишу, но проще раз увидеть
    ------------
    upd перезалил шаблон, чегойто два файла прицепилось)))
     
     
    Автозаполнялка.dwg
  4. doctorraz
    В рамках самообучения VB.NET решил портировать VBA из Автозаполнялка. Часть 2
    Естественно, я сильно не заморачивался, просто добавил нужные функции для себя, ну и прикрутил интерфейс для других))
    Для чего это нужно можете прочитать выше по ссылке...
    Возможности утилиты:
    Работает с нанокад и автокад+СПДС Удаление всех пользовательских свойств документа DWG Добавляет пользовательские свойства в активный документ из таблиц nanoCad (именованные ячейки) прямым выбором таблиц на чертеже сохраненное имя таблицы из настроек режим ком строки (без интерфейса) ключи: без ключа-поведение определяется настройкой утилиты, возможны опции: Открыть настройки (интерфейс) Записать в свойства документа данные из имени таблицы сохраненной в настройках Выбрать таблицу для записи в свойства документа на чертеже 1-Записать в свойства документа данные из имени таблицы сохраненной в настройках 2-Выбрать таблицу для записи в свойства документа на чертеже любой другой ключ-Интерфейс, откроется окно настроек Обновление утилиты онлайн (в смысле при наличии интернета, сама проверит обновление и попросит обновиться) =====================
    В принципе функционал можно  наращивать до бесконечности (если кто-то проявит интерес)...собирал для себя, то что необходимо мне)))
    upd Накрутил там еще шашечек))) по мелочи и продолжаю пилить
     
     
    Как всегда конструктивная и не очень критика, а также замечания и пожелания только приветствуются
     Заполнялка Таблица в таблицы.dwg

    docProp
  5. doctorraz
    Смотрю тут как народ пытается поясниловки в нанокаде писать, опросники и прочее текстовое...
    Имха все от того, что нужен один общий PDF для текста и графики.. простых решений навскидку вроде нет?
    есть 
    PDFUnisci
    здесь https://github.com/Clouz/PDFUnisci/releases собранная утилита
    тут исходники https://github.com/Clouz/PDFUnisci
    алгоритм прост... собрать/разобрать PDF на листы или собрать PDF из JPG
     
    Установить утилиту

    Собрать

     
    Разбить
     

     
     
    Уважаемый Clouz (Claudio Mola) в readme все подробно описал, но если кто не понял или не получилось.. спрашивайте
     
  6. doctorraz
    На этом и других форумах периодически возникает вопрос, как сделать растровый PDF средствами CAD, при том, что  nanoCAD выводит PDF вектором.
    Собственно эта фича произрастает из древней нанобаги или оно просто так работает...
    Если в любом месте листа вставить видовой экран (ВЭ), можно даже пустой, в область печати ему попадать совсем не обязательно, важно, что 
    Для печати из пространства модели ставим аналогичный визуальный стиль, но там не торт((( все будет серенькое, при печати из листа эффект интереснее
    Выбираем принтер "Встроенный PDF принтер", печатаем и вуаля, получаем растровый PDF. Правда побочный эффект значительное увеличение размера файла.
    -----------------
    Если вывести на "Печать в формате PDF" то получим удивительный эффект, наложение вектора на растр!!!
     
    Естественно размер файла будет еще больше.
    ----------------------
    PS эксперименты проводил в nanoCAD22, но думаю в прошлых версиях все то же.
    PPS поправить не прошу, если б могли давно исправили.
    PDF растр.dwg
  7. doctorraz
    Disclaimer сразу оговорюсь, способа узнать ID объекта в платформе пока не существует (по крайней мере мне неизвестно).
    Хотя разработчики могли бы добавить такую возможность, например в утилиту конфигурации.  
    Но подставить костылики можно.
    Простой способ открыть в мастере объектов и посмотреть ID не рассматриваем (СПДС, Механик и прочие вертикалки работодатель не купил, а пробник выдохся))))
    _________________________________________________________
     
    Для чего нужен этот ID?
    Для того, что бы иметь возможность в вставлять таблицы с кнопок, палитры инструментов или посредством lisp из командной строки. 
    Вот такое выражение для кнопок, менюшек и инструментов:
    ^C^C_stdselected <ID>  
    для lisp (кстати лисп выражения прекрасно работают в менюшках и инструментах)
    (defun C:ИмяКоманды () (command "spStdSelected" "<ID>") (princ) ) Что такое этот ID?
    Уникальный идентификатор объекта в базе данных (БД), именно по нему программа узнает какой объект вставить на чертеж.
    Что мы знаем о таблицах и их ID?
    У каждой таблицы в БД есть свой ID:
    Если перемещать таблицу внутри базы по "каталогам", ID не изменяется; Если переименовать таблицу , ID не изменяется; Если утилитой конфигурации экспортировать таблицу, у экспортированной ID будет такой же; Если импортировать таблицу в базу, у импортированной будет тот же ID, но
    если в базе таблица с таким ID уже есть она будет перезаписана импортируемой (независимо от имени); Если в в каталоге базы есть таблица с другим ID, но таким же именем, то при импорте таблица перезаписана не будет ( в этом каталоге будут две одноименные таблицы); После вставки на чертеж ID у таблицы на чертеже нет; Если после редактирования на чертеже сохранить в "каталог" базы одноименную таблицу,  ID таблицы которая была в базе не изменится. Что дает нам это знание?
    Можно сделать экспорт из БД интересующих объектов и попросить имеющих СПДС импортировать их к себе, посмотреть ID,
    вариант рабочий, но далеко не каждый имеет БД для тестов и поэтому вряд ли будет импортировать себе неизвестно, что с риском перезаписать свои объекты; Можно модифицировать и перезаписать стандартные таблицы из БД (их ID можно посмотреть в инструментах)
    как по мне так себе идея  модифицировать стандартные объекты, при обновлении базы могут перезаписаться опять стандартными; Можно импортировать в свою БД таблицы с заранее известными ID и в дальнейшем работать с ними Суть идеи...
    Загружаем в свою базу таблицы отсюда  
    в архиве *.mcd таблицы пустышки, имя таблицы, ее ID; Импортируем таблицы в свою БД в любое место; Запоминаем имена-ID таблиц либо сразу привязываем их на кнопки и в инструменты; В утилите конфигурации переименовываем таблицы, как требуется, там же в утилите можно переместить таблицы в нужные каталоги. Свои настроенные таблицы из БД вставляем на чертеж (либо настраиваем непосредственно на чертеже) Сохраняем таблицы с чертежа в БД 
    !!!Важно в тот же каталог и под тем же именем, где лежит таблица пустышка (с заранее известным ID)
    Настроенная таблица перезапишет ту, что в базе, но ID не измениться; Профит, пользуемся и  разработчикам, что бы они добавили возможность посмотреть ID  в "голую" платформу ---------------
    PS Если вдруг кто не в курсе
     
    Никак не связаны и не обязательно должны совпадать, 
  8. doctorraz

    Автоматизация
    Ждать пока nanoDev выгребет все баги мне некогда, работать надо сейчас, поэтому...
    Под свои потребности сделал сборочку, на основе кода Андрея Бушмана (с небольшими изменениями).
    взять сборочку можно тут: https://disk.yandex.ru/d/87lVPPumz3FPzA
    В архиве две сборки под Autocad 2018-2021 и nanoCad 21. Также в архиве простенький тестовый dwg пример.
    Для вызова доступны две команды:
    от Андрея Бушмана drz-MySynch что делает:
    синхронизирует атрибуты блоков с их описанием, но при этом не смещает, не вращает атрибут в положение по умолчанию. т.е. после синхронизации все существующие в описании атрибуты по идее остаются на своих местах; не изменяет состояние видимости вхождения блока; удаленные в описании блока атрибуты из вхождения удаляются, добавленные в описание блока добавляются во вхождения (если есть значение по умолчанию, то с этими значениями)    2. от Gilles Chanteau drz-MySynchHard
     что делает:
    то что должен был делать Attsync в nanoCad 21, только по нормальному (без удаления значений атрибутов и видит атрибуты в измененных дин блоках) !!!! Важно:
     drz-MySynch работает только в nanoCad  21, в nanoCad  20.х некоторые .NET методы не реализованы (либо я не разобрался, как(((); drz-MySynchHard в nanoCad  20 обрабатывает только статические блоки, в nanoCad  21 обрабатывает все; Тестировалось на nanoCad х64 (теоретически должно и на х86 работать, если надо пересоберу без проблем); На автокад не тестировалось, но по опыту предыдущих стрельб должно работать на АК2018-2021 Короче кому интересно скачивайте пробуйте.
  9. doctorraz
    В nano  20.х добавили функциональную панель "Инструменты" (в Autocad называлось палитра)
    Сама по себе неплохая штука и порой весьма удобная.. 
    Но местами весьма глючная, а глючная в плане того, что при вставке блоков путает порядок прорисовки и поднимает маскировку этих блоков на передний план.
    В nano21 эту багу исправили.
    В принципе казалось бы, в чем проблема..
    открой блок на редактирование и утопи маскировку, ан нет, nana20 не умеет редактировать динамические блоки.
    Да и статические после вставки нового блока с функциональной панели "Инструментов" каждый раз править, то еще удовольствие(((
    Но решение достаточно простое
    Проходит по всем описаниям блоков находит в них маскировки и топит их на дно.
    вызов из командной строки drz-WipBot
    Тестировался в nano20.1-21, Autocad2018-2021 (естественно в каждый CAD) надо загружать свою сборку (NETLOAD или APPLOAD)
    Форум не позволяет загружать dll и архивы, поэтому ссылка на сборку и там же пример блоков которые режут линию под собой
  10. doctorraz
    На днях колеги подогнали файл со схемами предприятия
    Ну а чо они так видят, им удобно и они в этом чертеже ориентируются вполне комфортно, в отличие от меня.
    Вблизи схемы как схемы
     
    Среди этой красоты мне нужно было найти определенную подстанцию ТП-8/7 и фидера откуда она питается
     
    Долог и неинформативен
    Благо коллеги в кадах не сильно искушены и все надписи были сделаны просто текстом
    И я подумал ведь есть служебная команда SPREFSHOW которая укажет мне путь)))
    Добавил таблицу на чертеж
    Добавил раздел  отчета
    если кому надо искать в мтекстах или других объектах, то добавляется по аналогии...
    Для того что бы показывало объекты по SPREFSHOW, должно быть взято хотя бы одно свойство с объекта, ничего оригинальнее чем  взять =Object.Text я придумать не смог
    Больше свойств брать не стоит, лишние связи будут мешать, загромождать... короче не надо
    Ну и для перфекционизму объединил первый столбец и поставил на него счетчик
    выходим из редактора таблиц
    выделяем нашу табличку и в ком строке вводим вожделенное SPREFSHOW
    линии связей укажут искомое)))
    ---------------
    ЗЫ мне реально лениво переключаться на инглиш раскладку, а потом еще и набирать такое длинное слово
    можно добавить через НПИ в команды, менюшки и панельки..... но тогда нано,  все мои красиво расположенные  функциональные и не очень панельки смешает в кучу..
    я работаю в основном из ком строки..
    поэтому добавил в подгружаемый lisp команду
    (defun C:спсс ();;Показать зависимости (command "SPREFSHOW" ) (princ) ) благо что lisp команды можно добавлять, изменять не перезагружая нану (достаточно перезагрузить лисп))))..
    в отличие от добавления команд через интуитивно понятный и чертовски удобный НПИ(((который после рестарта нано нарушит гармонию панелек настроенных мной, на строгий порядок определенный суровым разработчиком)))
  11. doctorraz

    Автоматизация
    Сделал автозаполнялку , по результатам боевых стрельб внезапно выяснилось, что нана не умеет работать с полями нативных объектов.
    Зато умеет вставлять поля из свойств документа (хотя возможно в следующей версии пофиксят и все будет наоборот)))
    Возник вопрос, как запихнуть данные в  свойства документа....
    Руками прям не вдохновляет
    Второй вопрос откуда эти данные брать, решился просто, коль у нас на чертеже есть таблица, (автозаполнялка)  в которую мы занесли все сведения...
    отчего бы данные не подтянуть из нее.
    Принцип в кратце:
    Хватаем конкретную таблицу на чертеже Пробегаем по значениям именованных ячеек Имя ячейки пишем как ключ в пользовательские свойства документа Значением-свойством ключа будет содержимое ячейки ------------------------
    Некритичные проверки исключений я не делал, кому надо вполне может дописать, как надо
    Если изменить "комментарии"  ячеек, то соответственно в свойства документа запишутся другие ключи
    Все ключи пишутся в пользовательские свойства документа, но при желании можно писать и в 
     
    Под спойлером код, старался комментировал))
     
     
    Сразу скажу из скрипта VBS внутри наны этот код работать не будет, хотя конечно заманчиво... (значения ключей и свойства должны быть String и никак иначе, а в скриптах типы данных я не умею )
    Поэтому этот код запускается из Excel большой красной кнопкой.
    В принципе, как дальнейшее развитие, этот код можно причесать, откомпилировать и запускать, хоть из командной строки нано, из меню или кнопкой на панели.
    В аттаче шаблон чертежа и большая красная кнопка.
    PS кода без багов не бывает, поэтому по мере... буду улучшать
    Автозаполнялка через поля документа V2.dwg docProp.xlsm
×
×
  • Create New...