Программирование. innovoCAD нас всех спасет!
Сегодня я решил начать еще один цикл статей, который аналогично циклу про TerraScan (который я продолжу как только так сразу) будет рассказывать про достаточно специфичные, но важные вещи, связанные с работой с комплексом Bentley Microstation и Terrasolid TerraScan. Писать я его буду неспешно и рассказывать буду о лично моих наработках, которые могут показаться банальными и незаслуживающими публикации с точки зрения профессиональных программистов.
Итак, что будет в этом цикле:
1. Рассказ про инструменты от innovoCAD;
2. Рассказ про мой личный выбор языка программирования;
3. Мои примеры различных заготовок и инструментов.
Предыстория
Для начала небольшое лирическое отступление.
Задача по созданию приложений, которые бы работали в среде Microstation, появилась уже давно, но ее реализация постоянно откладывалась. Причин было несколько и самая главная была в том, что некому было объяснить как это вообще делать. Благодаря коллеге по работе я освоил программирование на Builder C++ и смог писать программы, которые могли обрабатывать информацию из DGN-файлов и BIN-файлов. Это было большое достижение для меня лично, но через какое-то время пришло понимание, что это все-таки не то, что было нужно. Тогда я обратился к книжке “Learning Microstation VBA”, которая была куплена давным давно, но которую я до того момента не использовал. При этом погружение в VBA было достаточно резкое, т.к. стояла конкретная задача, которую нужно было реализовать (благо примеров много) и времени на копание в особенностях языка не было. И если бы не необходимость взаимодействия с TerraScan, то возможностей VBA мне хватало бы за глаза по сей день (даже несмотря на его очевидные недостатки).
При этом стоит даже немного уточнить. Взаимодействие с TerraScan было мною реализовано и с помощью VBA, однако назвать его удобным язык не поворачивается. Использовать эту реализацию можно и даже нужно при разработке на VBA, но не в том случае, если необходимо проводить сложные многочисленные расчеты. Возможно в дальнейшем я выложу и эти наработки, но пока хочется поделиться чем-то более современным.
В общем я был вынужден искать пути перехода с VBA на другие языки программирования, которые поддерживаются Microstation, а именно C# и C++. Сам поиск пути занял достаточно большое количество времени, т.к. какие-то конкретные мануалы просто отсутствуют, а отсылки на примеры в SDK не отвечают на один простой вопрос: “Как все это в итоге скомпилировать то?”. Итогом поиска стали небольшие, но очень удобные инструменты от компании innovoCAD, которые позволяют без особых заморочек организовать возможность создания приложений для Microstation.
Спасибо тебе, innovoCAD
Итак, что предлагает нам эта замечательная компания? А предлагает она нам 4 инструмента, которые нацелены на облегчение программирования под Microstation:
- VS 2013 Tools for MicroStation V8i;
- VS 2013 Tools for MicroStation CONNECT Edition;
- VS 2015 Tools for MicroStation V8i;
- VS 2015 Tools for MicroStation CONNECT Edition.
Конечно просто скачать их и установить недостаточно, поэтому перейдем к основной части этого поста, а именно…
Описание установки
Первое что нам необходимо так это сама студия. Как видите выбор innovoCAD нам дает не самый большой, но в общем-то на дворе 2016 год и предлагать установить нам что-то архаичное было бы неправильным. Хотя… Но об этом далее. В общем идем по ссылкам и скачиваем подходящую вам версию (я работаю в 2015-ой):
Платить нам тут ни за что не нужно, т.к. для наших нужд нам вполне подходит версия Community. А вот какой вам нужен язык – решайте сами (у меня установлена русская версия).
Единственное, что может потребоваться вам во время установки – это сменить тип установки со значения “По умолчанию” на значение “Выборочная”. Дело все в том, что по тому самому умолчанию Visual Studio не устанавливает C++. Если вам C++ не нужен, то можно ничего не менять. Если вы забыли его добавить, то не переживайте – вы легко и просто сможете добавить его уже после установки.
Следующим шагом необходимо поставить SDK. Ссылок тут никаких дать не могу, т.к. вещь это достаточно специфическая и если вы решили заняться программированием под Microstation, то достать SDK вы точно сможете. Соответственно SDK вам нужен от той версии Microstation под которую вы будете вести разработку. Я буду все показывать на примере Microstation v8i SS3, соответственно и SDK я буду ставить именно для этой версии. Установка никаких сложностей не вызывает и заключается в простом нажатии кнопки “Далее”. Уточнить могу лишь одно – устанавливать SDK лучше после установки самой Microstation.
Теперь мы можем установить инструменты от innovoCAD. Какие именно вы решаете сами (ну или решают те, кто даст вам SDK), ну а я рекомендую ставить сразу пару, т.е. и для MicroStation V8i и для MicroStation CONNECT Edition.
После нехитрой установки, которая не должна вызвать вообще никаких проблем, мы можем проверить ее корректность просто зайдя в меню создания проектов:
Вот на этом этапе, если вы пишете на C#, можно и остановиться. Вы уже можете создать проект и без труда скомпилировать его и даже запустить с помощью команды “mdl load ProjectName” (пустой проект конечно вы не увидите, но Microstation вам сообщит об удачной загрузке вашего приложения). Далее можно оперативно добавить форму и закинуть на нее кнопку и сделать банальный “Hello World!”.
Что стоит еще все-таки добавить про C# (для C++ тоже полезно): доступность проектов для v8i и Connect зависит от выбранной версии .NET Framework. Для создания приложений под версию 8i следует выбрать версию 3.5, а вот для Connect вы можете выбрать любую версию, начиная от 4 до 4.6.
Если же вы собираетесь писать на C++, то вам нужно проделать еще один шаг, до которого лично я не додумался до тех пор, пока не соизволил посмотреть полный лог ошибок компиляции. Суть в том, что для сборки приложений нам нужна установленная старючая Visual Studio 2005. Лично я устанавливал версию Professional, но думаю подойдет и Express. Дело в том, что нам ее даже запускать не придется, поэтому по поводу лицензий и прочего можно особенно не напрягаться (ведь все это мы делаем для обучения). После ее установки мы точно также можем без особых проблем скомпилировать приложение на C++. На ругань IntelliSense по поводу Int64 можно внимания не обращать – не барское это дело.
Непрофессиональное заключение
В качестве заключения могу сказать, что овладеть хотя бы азами программирования под Microstation, в случае если вы регулярно работаете в этой среде, это очень и очень полезно. Если вам сложно понять назначение подобных навыков, то вспомните хотя бы о тех многочисленных монотонных операциях, которые повторяются из раза в раз в каждом проекте. Разве вам не хотелось бы избавиться от этой рутины раз и навсегда, потратив совсем немного времени?
Надеюсь, что изложенное здесь поможет вам сэкономить достаточно много времени, которое было потрачено мною на поиск всех этих инструментов и методов их использования.