вторник, 26 июня 2012 г.

Подсветка синтаксиса AutoLISP для статей.

Состряпал велосипед для подсветки синтаксиса AutoLISP в блоге. Возможно, он уже существует, но 3 минуты пользования гуглом этого не выявили. В связи с этим был взят движок подсветки SyntaxHighlighter и под него написан модуль (Brush).

Используется это следующим образом:
<pre class="brush: autolisp">
(princ "Where's my coffee, dude")
;;; Don't know what are you talking about
</pre>
На выходе получаем:
(princ "Where's my coffee, dude")
;;; Don't know what are you talking about
Как прикрутить SyntaxHighligher к основным блогам и CMS-кам можно прочесть здесь.
Собственно сам модуль AutoLISP расположен на гуглокоде

понедельник, 25 июня 2012 г.

Три продукта, один проект. Пишем под AutoCAD, BricsCAD и NanoCAD.

Понадобилась мне для охвата большей аудитории поддержка нескольких платформ для моего приложения. Из CAD платформ на данный момент это: AutoCAD, BricsCAD и NanoCAD. Если отличия .NET API Revit и Inventor от API AutoCAD очевидны, то разница в API вышеуказанных CAD платформ практически незаметна и выражается лишь в отстутствии поддержки некоторого функционала, который уже есть у Autodesk.
Но если нет разницы, то зачем писать 3 разных приложения, когда можно написать одно...

пятница, 2 декабря 2011 г.

Autodesk University 2011. День заключительный

Официальная часть Autodesk University подошла к концу. Сегодняшний день был информативным процентов на 40-50. Посетил четыре сессии, 2 более-менее удачных до обеда и 2 неудачных после.

CAD Standards Versus Office Politics: Winning the Battle. Супер. По полочкам разложили, кто может противится внедрению стандартов на предприятии и как с ними бороться. Как правильно внедрять стандарты. Вообще понравилась идея полномочий CAD менеджера увольнять людей, нарушающих стандарты. Конечно, я бы так жестко не стал поступать, но вот полномочия влиять на премию, были бы очень кстати.

How to Excel at Data Extraction. В принципе ничего нового, но понравилась одна идея. Есть задача, собирать ведомость чертежей комплекта на листе общих данных. Сейчас я это делаю LISPом, проходясь по базе системы электронного архива. Предложенный на сессии вариант прост до безобразия, при помощи связи с данными собрать информацию с титульных блоков всех чертежей в определенном каталоге, что позволит вставить в чертеж таблицу с выдранными атрибутами блоков основной надписи. Супер идея. Но только как идея, если б не было своей реализации. Ведь сейчас пользователь вставляет таблицу одной кнопкой, а при помощи Data Extraction ему придется проходить по шагам мастера каждый раз для нового комплекта. Правда есть и плюсы: таблица переформируется автоматически при добавлении нового чертежа в каталог. Но при моей реализации тоже нет ничего сложного, необходимо лишь удалить таблицу и вставить ее снова.

AutoCAD Secrets Exposed. Ничего особенного. Из 40 представленных Tips’n’Tricks не знал только 2. И то, слышал, но не пробовал. Неплохой результат, я считаю. Ближе к концу сессии вылетел AutoCAD. Зал долго смеялся и бурно аплодировал. Впрочем, на предыдущей серии было то же самое. В общем, AutoCAD плохо ведет себя даже на главном мероприятии Autodesk. )

The Many Ways of Using Scripts. AutoLISP and .NET to Automate, Save Time and Enforce Standards in AutoCAD. Длинное и заумное название сессии, толку ноль. И знания презентера тоже на том же уровне. Хотя, может новичкам было полезно, не знаю. Стандартный путь CAD менеджера. Специализация в проектировании, перешел на программирование. Опыт 7 лет. Не хочется обижать человека, но он что 7 лет семечки лузгал? Ах да, у них же нет семечек. Тут, кстати, спорили, есть у них семечки или нет. В Wall-mart не нашли ). Меня хватило где-то на полчаса из полуторачасовой лекции. После того как он открыл очередной LISP, мне стало и смешно и грустно: по моим прикидкам, около 500 строк проверок на имена слоев и присвоения им определенных характеристик. Класс. Я бы убил за такой код. Там делов-то на пол-экрана кода плюс файл конфигураций. Не спорю, я раньше тоже писал в подобном стиле, но это было в первые полгода знакомства с AutoLISP и production программированием. Но заниматься этим 7 лет и показывать такой код? Я вас умоляю… Ладно, чего-то я разошелся.

Завтра в 7 утра самолет в Нью-Йорк и 2 дня гуляний по Манхеттену. Ну а потом опять длинная дорога к суровым российским будням. Тут не удержался, попросил проходящего мимо участника конференции сфотать меня на фоне щита AU:

На этом считаю свою миссию в Лас-Вегасе выполненной.

четверг, 1 декабря 2011 г.

AutoLISP. Автоматическая генерация документации кода

Очень давно мечтал, о вкусности, которая есть во многих языках программирования, но почему-то  нет в AutoLISP, хотя может плохо искал. Я говорю об автоматической генераций документации на файл исходника. В мною любимом Perl есть, в Ruby есть, в Python есть, в C# есть и во многих других...

Autodesk University 2011. День номер два

Закончился второй день AU. Успел посетить 3 лекции, о чем расскажу поподробнее.

Programming AutoCAD with C#. Best Practices. Неплохо, возможно, потому что я не так хорошо знаю C#, как хотелось бы. Презентер тоже не программист по образованию, архитектор, но при этом хорошо разбирается в тонкостях языка, и пару вещей для меня оказались в новинку. Рассказывал про делегаты, интерфейсы, паттерны, тестирование, linq и прочие интересные вещи, применительно к API AutoCAD. Несколько техник взял на заметку, хотя пишу в основном на AutoLISP и .NET применяю по крайней необходимости. Правда были накладки: ноутбук нещадно тормозил и не давал отрыть солюшн в Visual Studio. Но тем не менее, это не помешало желающим узнать что-то новое.

Tips and Tricks 2011: Getting top performance from your Desktop/Laptop. Я ожидал от это сессии рассказ про какие-то практики настройки AutoCAD, Revit, Inventor для повышения производительности, а на деле сессия оказалась рекламой HP. Основные выводы: чем быстрее процессор, тем лучше, чем больше объем памяти, тем лучше (например для Revit советуют 12GB, где ж я их возьму на каждую машинку), видеокарту берите профессиональную, обязательно SSD, и вообще, берите рабочие станции от HP, ибо они лучшие. Блин, ребят, я и без вас могу нарастить мощности железа для повышения производительности. Лучше б рассказали как на среднем железе поднять быстродействие. Нет, я понимаю, пришли серьезные ребята из HP, им надо впарить свое железо, но откуда сравнительно небольшому проектному институту взять деньги на профессиональные станции с профессиональными видеокартами, которые стоят дороже лицензии на стандартный Suite Autodesk.

Leveraging ActiveX Libraries with AutoLISP. Это про vl-load-com, objectDBX, реакторы, COM-сервера и т.д. Здесь я вообще практически заснул. Презентер уже 15 лет программирует под AutoCAD на AutoLISP, против моих 5. Но при этом ушел от ответа на мои вопросы, да и его код во многих местах оставлял желать лучшего. Я же тоже не программист по образованию, но чтоб настолько не разбираться во внутренностях языка на котором пишешь столько времени… Хотя, возможно, это было сделано, чтоб было понятнее публике… Черт с ним. Вывод для себя я сделал: на Следующем AU, хотелось бы, чтобы это был AU2012, но там видно будет, надо идти на сессии, в которых ничего не понимаешь. Вот тогда, я уверен, будет классно. Например, надо было сходить на Revit. Я в нем новичок и я бы, посмотрев доклад по BIM, сказал, да, супер, во как люди делают. А так…

На последний доклад я не попал, потому как поехал на русский ужин с Autodesk CIS и компанией в отеле Стратосфера на 104 этаже, откуда открывается вид на весь Лас-Вегас.. Возможно и к лучшему, что не попал. Пообщался с народом, отдохнул от суеты и толп народа Autodesk University. Получил угрозы от Насти Морозовой, что в следующем году меня затащат на сцену САПРяжения в Тюмени. А чукча ведь не читатель, чукча – писатель. В общем, было весело )

Завтра планирую посетить еще пару докладов по API, класс по спецификациям в ACA и AMEP и, наконец, сессию, посвященную секретам AutoCAD. Очень надеюсь, что будет интересно.

среда, 30 ноября 2011 г.

Autodesk University 2011. День номер раз

Так сильно хотел попасть на Freshman orientation, что не попал. Лег полежать на часок, в итоге проснулся только во втором часу ночи. Все-таки двое с половиной суток без нормального сна и отдыха дали о себе знать. Проснувшись утром, осознал что к тому же более суток не ел. Последний раз завтракали в 4 часа ночи в ожидании check-in’а с ребятами из Autodesk. Сразу побежал на завтрак. )

После завтрака побывал на General Keynote Session. Очень масштабно. Руководство компании рассказывало о планах развития, о современных технологиях и т.д. и т.п. Очень понравился доклад про TechShops, пока не посмотрел, существуют они только в Америке или есть в Европе. TechShop представляет из себя огромное помещение забитое всевозможными станками и инструментами. Каждый человек, заплатив всего $1000 в месяц, может получить доступ к дорогостоящему оборудованию и воплотить свою мечту, не тратя при этом денег на аренду помещений, покупку станков, инструментов и т.д.

После этого состоялась русская сессия Autodesk, из-за которой я пропустил очень интересную лекцию по программированию для AutoCAD MEP. Но лекцию, я надеюсь, смогу посмотреть позже на сайте Autodesk University. В рамках русской сессии пообщался и с сотрудниками Autodesk и c представителями организаций. Понял, что проблемы у крупных организаций в плане автоматизации и развития САПР еще больше, чем у нас. Очень много вопросов по продуктам повторяются из года в год и на 3D форуме и на локальных конференциях.

Так как пропустил начало и следующего класса про прокладке труб в AutoCAD MEP, пошел бродить по Вегасу. Поглядел основные отели на центральной улице. Красиво, масштабно. Только как-то все слишком искусственно. Поразили поющие фонтаны перед отелем Bellagio. Очень красиво. Одно но, вечерняя прогулка по стрипу до боли напоминает прогулку по Walking Street в Паттайе, разве что полуголых девушек нет, хотя может еще было рано… ) Те же зазывалы, на каждом углу предлагают девушек с доставкой и без, предлагают что-нибудь приобрести. В общем похожа на любую туристическую азиатскую страну, но более всего сходство с Тайландом.

Завтра до ужина с русской делегацией планирую таки посетить интересные мне лекции. Что у нас завтра есть: Programming AutoCAD with C#, best practices; Leveraging ActiveX Libraries with AutoLISP и что-то еще. Посмотрим как пишут у них, сравним с тем как пишу я. )
Да, совсем забыл, нам обещают поддержку 3D в следующей версии AutoCAD WS. Это уже намного интереснее в плане возможностей применения.

На этом все, фотки сегодня разбирать лениво, выложу на Picasa, дам ссылку.

вторник, 29 ноября 2011 г.

Autodesk University 2011. Перелет и заселение

Все-таки дорога в полтора суток – это вам не это.

Тюмень. Девушка на стойке регистрации оформила мне трансферный багаж до JFK New York. Но что-то случилось с системой и только за 5 минут до окончания регистрации совместными усилиями с представителем Аэрофлота мне смогли выдать посадочный. Правда только до Шереметьево. Успели до погрузки багажа переклеить бирку на рюкзаке. И на том спасибо. :) 

Москва. Забрал багаж. Воспользовался удобнейшей штукой – регистрацией на трасферные рейсы, сдал багаж, прошел все контроли и 10 часов ожидания рейса впереди. 2 часа до посадки, сижу, наблюдаю, как пилоты проходят по checklist’у, проверяют механизацию крыла, рулей направления и высоты. Даже пофотал от нечего делать. 10-ти часовой перелет до NY. Мало места, спать неудобно, благо у каждого есть экраны и неплохой выбор фильмов, в общем терпимо. 

Нью-Йорк. Прошел границу, прошел регистрацию на трансферный рейс, пошел искать Терминал 3. На выходе встретил ребят из Autodesk Промышленное проектирование. Пообщались, с ними и бродили в Вегасе, но об этом позже. Аэропорт JFK ужасен. Даже в Даболим (Гоа, Индия) мне показался не таким жутким. Но тем не менее, пересадку в 4 часа вытерпеть можно. Огромные очереди на контроле. Примерно как в терминалах EasyJet в Европе, только досматривают доскональней. 6 часов лету до Лас-Вегаса дались намного тяжелее чем 10 часов до Нью-Йорка. 

Лас-Вегас. Конечная точка. Вышли из самолета, доехали на скоростном поезде до терминала с выдачей багажа. Взяли такси и поехали в отель. Кстати, система такси в Maccaran построена очень удобно. Общая очередь, специально обученный человек вызывает такси к определенной стойке, идешь к стойке и ждешь машину. Сел, поехал. Цена вопроса $25. Так как на AU номера оплачены с 28-го ноября по второе декабря, а отель забит, пришлось ждать свободные. Приехали в отель в час ночи, оставили багаж и поехали на такси на экскурсию в Wall-mart. По приезду шарохались по отелю, поели, прошли регистрацию на AU и пошли обследовать окрестности. В 8-мь утра нам дали номера, но день на этом не закончился. Обустроились, приняли душ и пошли гулять дальше. 

Через 3 часа начинается Freshmen Orientation, где расскажут как, что и где. На этом моя официальная программа на этот день завершится. 

Пару фоток Вегаса для завершения. Позже выложу на Picasa больше.




воскресенье, 27 ноября 2011 г.

Autodesk University 2011. На низком старте

Вот и осталось 6 часов до моего рейса в Вегас. Всего-то 33 часа в дороге через Москву и Нью-Йорк. Писать не по существу не люблю, поэтому все подробности по прилету на место. А пока хотел бы выразить благодарность группе компаний Русский САПР за предоставленную возможность побывать на Autodesk University в реальности, а не просматривать доклады виртуально.

четверг, 24 ноября 2011 г.

Избавляемся от объектов ProSteel в чертежах. Быстро и надежно.

Начну издалека. Несколько лет назад группа строителей нашего проектного института тестировала программный продукт для проектирования строительной части Bentley ProSteel (в то время он был еще Bentley AutoPLANT Structural). Продукт нам не подошел, но последствия его тестирования мы расхлебываем до сих пор. Я ни в коем случае не хочу делать антирекламу компании Bentley, просто опишу один из способов борьбы с последствиями, на мой взгляд являющийся оптимальным.

Итак, о последствиях.

среда, 23 ноября 2011 г.

Регулярные выражения в AutoLISP

Иногда наступают моменты, когда обычного wcmatchдля поиска совпадений уже недостаточно, а использовать новые средства разработки нельзя/затратно/нет знаний (нужное подчеркнуть). Так как я более 3-х лет в свободное время увлекаюсь программированием под Linux, то уже не представляю поиск по строкам без регулярных выражений. Но, раз основная работа связана с AutoCAD и AutoLISP, приходится искать другие инструменты решения задач.
В случае с регулярными выражениями на помощь приходит объект VBScript.RegExp, являющийся стандартным объектом VBScript 5 (%windir%\system32\vbscript.dll).
Что такое регулярные выражения, читаем здесь.
Описания и примеры VBScript.RegExp на VBScript можно почитать здесь.

Если интерес не пропал, смотрим, как это все дело прикрутить к AutoLISPу.