Электрические схемы в Autocad с помощью .NET

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

    Хорошо, что AutoCAD предоставляет широкие возможности для разработчиков в области автоматизации процесса проектирования и помогает экономить сотни и тысячи часов работы.
    Был разработан специальный плагин на базе .NET, который экспортировал данные из Excel и создавал электрические схемы в AutoCAD.

    Принцип работы плагина довольно прост. Рабочий файл DWG содержит блоки-элементы схем с атрибутами, которые содержат информацию об установленной мощности, расчетном токе и т.п. Плагин считывает данные из расчетной таблицы Excel и строит схему из блоков, заполняя при этом атрибуты числами из расчетной таблицы.

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

    https://github.com/NabiyevTR/SingleDiagram

    Надеюсь, что плагин поможет сэкономить время инженерам-проектировщикам и улучшить качество документации.

    Инструкция по работе с плагином


    Загрузить плагин

    Системные требования


    • Autodesk AutoCAD 2015
    • Microsoft Office Excel 2010 и старше

    Состав архива


    • В папке Program Files находится файлы плагина. Здесь Вам понадобится файл-библиотека OneLine3.dll. Остальные файлы вспомогательные, нужны для работы плагина.
    • Файл ЩИТ.xslm содержит расчетную таблицу, на основании которой строится однолинейная схема
    • Файл СХЕМА.dwg — это файл, в котором содержатся необходимые элементы для создания однолинейной схемы. Именно в него мы будем загружать плагин.
    • Файл SLD_Buttons.cuix — это файл адаптации. Чтобы не прописывать команды в командной строке, его можно загрузить в AutoCAD и пользоваться кнопками.

    Работа с плагином


    1. Распакуйте архив на локальном диске. Если плагин будет размещен на сервере, AutoCAD не позволит его запустить.
    2. Запустите AutoCAD и откройте файл СХЕМА.dwg.
    3. Теперь необходимо загрузить плагин в AutoCAD. В командной строке введите _NETLOAD.


    4. В открывшемся окне укажите путь к файлу OneLine3.dll.


    5. AutoCAD покажет предупреждение о том, что загружаемый файл находится вне папки надежного расположения. Нажимаем кнопку Загрузить.


    6. Теперь, когда плагин загружен, необходимо его запусить. Введите в коммандной строке _DSLD.


    7. Отобразилось окно. Теперь нужно нажать кнопку Открыть.


    8. В открывшемся окне укажите путь к файлу с расчетами ЩИТ.xslm.


    9. Загрузились данные из таблицы. В левом столбце указаны листы из файла ЩИТ.xslm. Выбираем щит (щиты) и переносим их во второй столбец нажатием кнопки 1. Затем нажимаем кнопку Начертить.


    10. А вот результат нашей работы.



    Вопросы, которые могут возникнуть при работе с программой


    Конечно, данный плагин не сможет решить все возникающие проблемы. К сожалению универсальных решений не бывает. В этом разделе я попытаюсь ответить на вопросы, которые могут у Вас возникнуть при работе с этой программой.
    Я загрузил плагин, но при вызове команды ничего не происходит. В командной строке пишется: Не удалось загрузить сборку. Сведения об ошибке: System.IO.FileLoadException: Не удалось загрузить файл или сборку…
    AutoCAD 2015 и более поздние версии не позволяют подключать библиотеки, загруженные через интернет. Чтобы избежать это, необходимо внести изменение в файл acad.exe.config, добавить строчку:
    <loadFromRemoteSources enabled="true"/>

    Должно получиться так:
    <configuration>
      <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
      </startup>
    <!--All assemblies in AutoCAD are fully trusted so there's no point generating publisher evidence-->
       <runtime>        
    	<generatePublisherEvidence enabled="false"/>    
       	<loadFromRemoteSources enabled="true"/>
       </runtime>
    </configuration>
    


    Мне нужно внести изменения в схемы созданные ранее. Как это сделать?
    Есть два способа внесения изменений. Первый внести изменения в в расчетном файле и сгенерировать схемы заново, используя плагин.

    Второй способ заключается во внесении изменений в самом чертеже. Это можно сделать через Свойства, выделив необходимый элемент.


    Поменять данные можно через Редактор атрибутов, дважды щелкнув левой клавишей мыши по редактируемому блоку.



    Как заменить автоматический выключатель на дифференциальный выключатель?
    Все блоки сделаны динамическими. Просто поменяйте тип блока.



    Как поменять шрифт?
    Откройте и измените стиль SLD_Style. После этого желательно выполнить команды _REGEN и _REGENALL.

    Я пытаюсь расчленить объекты командой _EXPLODE, но все данные пропадают.
    Используйте команду _BURST.

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

    Удалите ненужный атрибут.

    Закройте редактор блоков, сохранив изменения.

    Ведите команду _ATTSYNC и выберите, редактируемый блок. После синхронизации удаленный атрибут должен исчезнуть.

    Аналогичным образом можно удалять и перемещать остальные атрибуты.
    Метки:
    Поделиться публикацией
    Комментарии 20
    • 0
      Крутая идея и большая работа. Спасибо что поделились!
      Вопрос по таблице: такой формат данных — это ваша разработка или уже использовалась в таком виде на предприятии?
      • 0
        Таблица не моя. Ее изначально сделали в компании SNEF.
        • 0
          Как-то это очень нишево. Ну ок, у вас какой-то Excel формат, но это вообще много кто использует? Именно в том формате что у вас? Насколько это распространенный юз кейс, насколько программа тюнингуется если формат Excel таблиц например другой?
          • 0
            Вы про формат .xlsm? Это стандартный формат Excel с поддержкой макросов. Работа программы не зависит от формата, может быть стандартный .xls.
            • 0
              Я не про Excel, я про то, как те или иные данные представлены в Excel. Если то, как вы представляете данные в Excel являются конкретной разработкой вашей компании, они вряд ли будут полезны кому то еще. Если формат данных использует много разных компаний, именно в той же форме что и у вас, тогда это может быть полезно.
              • 0
                Ну для этого я и выкладывал исходники. Кого не устраивает наша таблица, может подкорректировать плагин под себя, изменив ссылки на ячейки.
          • 0
            В сист. требованиях AutoCAD 2015. С 2012-м на XP совсем никак?
            • 0
              Скорее всего не будет работать. Изначально библиотека была сделана как раз для 2012, но потом правилась под Autocad 2015. Попробуйте запустить. Если не получится, решим проблему.
            • 0
              Попробовал. После _NETLOAD кликнул OneLine3 и никакого предупреждения (п.5) не получил. Думаю может и не надо, жму дальше _DSLD — «неизвестная команда». Куда шагать?
              • 0
                Какая версия Autocad? Что пишется в командной строке после загрузки?
                • 0
                  Так ведь 12-й на XP. После OneLine3 — ничего не пишет. После _DSLD — «неизвестная команда» ((
                  • 0
                    Ок. Поставлю 12. Посмотрю, что можно сделать.
                    • 0
                      Посмотрите старые версии:
                      https://drive.google.com/open?id=0B8tBX6Vum7OXZG45bnBGcWw1M2s
                      • 0
                        Не устарели ли версии морально? 4 года думается не зря прошли, начинка дорабатывалась, в лучшую сторону.
                        • 0
                          Не устарели. Функционал остался прежним.
                • 0
                  … и Схему.dwg понятно конвертировал до 2004-го
                  • 0
                    Скрытый хлам в чертежах имеет какой-то смысл?
                    • 0
                      Что имеется ввиду? Чертежи вроде очищал.
                      • 0
                        слои —
                        видимость включить
                        разморозить
                        разблокировать

                        куча рамок

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.