Программирование. 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 2015
- Установка Visual Studio 2015
Единственное, что может потребоваться вам во время установки – это сменить тип установки со значения “По умолчанию” на значение “Выборочная”. Дело все в том, что по тому самому умолчанию Visual Studio не устанавливает C++. Если вам C++ не нужен, то можно ничего не менять. Если вы забыли его добавить, то не переживайте – вы легко и просто сможете добавить его уже после установки.
Следующим шагом необходимо поставить SDK. Ссылок тут никаких дать не могу, т.к. вещь это достаточно специфическая и если вы решили заняться программированием под Microstation, то достать SDK вы точно сможете. Соответственно SDK вам нужен от той версии Microstation под которую вы будете вести разработку. Я буду все показывать на примере Microstation v8i SS3, соответственно и SDK я буду ставить именно для этой версии. Установка никаких сложностей не вызывает и заключается в простом нажатии кнопки “Далее”. Уточнить могу лишь одно – устанавливать SDK лучше после установки самой Microstation.
- Microstation v8i SS3 SDK
- Microstation v8i SS3 SDK
- Microstation v8i SS3 SDK
- Microstation v8i SS3 SDK
Теперь мы можем установить инструменты от innovoCAD. Какие именно вы решаете сами (ну или решают те, кто даст вам SDK), ну а я рекомендую ставить сразу пару, т.е. и для MicroStation V8i и для MicroStation CONNECT Edition.
- Установка инструментов от innovoCAD
- Установка инструментов от innovoCAD
- Установка инструментов от innovoCAD
- Установка инструментов от innovoCAD
После нехитрой установки, которая не должна вызвать вообще никаких проблем, мы можем проверить ее корректность просто зайдя в меню создания проектов:
- Меню проектов MSVS 2015
- Меню проектов MSVS 2015
Вот на этом этапе, если вы пишете на 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, в случае если вы регулярно работаете в этой среде, это очень и очень полезно. Если вам сложно понять назначение подобных навыков, то вспомните хотя бы о тех многочисленных монотонных операциях, которые повторяются из раза в раз в каждом проекте. Разве вам не хотелось бы избавиться от этой рутины раз и навсегда, потратив совсем немного времени?
Надеюсь, что изложенное здесь поможет вам сэкономить достаточно много времени, которое было потрачено мною на поиск всех этих инструментов и методов их использования.













