Сообщество программистов Autodesk в СНГ
ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: Udgin от 17-02-2016, 18:54:03
-
Добрый день!
Занимаюсь проектированием электроснабжения. Поставил себе задачу немного упростить расчет сетей. Для начала хочу решить следующую задачу: смоделировать сеть в пространстве модели. Для этого мне нужно:
1. Создать примитивы для точки разветвления сети и для участка сети. Т.е. это должны быть банальные точка и полилиния, но эти объекты должны иметь свойства, через которые я мог бы управлять моделью (всякие там мощность, длина, сечение). Т.е. мне нужно научиться создавать новый тип примитива и управлять его свойствами.
2. Научиться представлять разветвленную сеть в виде списка древовидной формы.
Вот такая задача. Я не прошу ее решить, объясните хотя бы с чего начать, или где можно найти литературу/информацию, которая мне для этого нужна. Пытался найти самостоятельно, но все учебники или уроки, которые мне попадались, дают информацию на уровне "нарисовать прямоугольник с помощью COMMAND". А мне нужно создавать новые объекты и научиться управлять и менять их свойства.
Спасибо, если поможете.
-
Т.е. мне нужно научиться создавать новый тип примитива
В контексте обозначенной задачи, это - велосипед. "Новый тип примитива" можно создавать либо средствами ObjectARX (т.е. на C++), либо с использованием платформы MultiCAD (в этом случае подойдёт любой .NET язык). Второй из обозначенных вариантов предоставляется не Autodesk'ом и на данном форуме запрещён к обсуждению под страхом анафемы (ибо конкуренты), но Google может помочь. Лиспом этого ["Новый тип примитива"] не сделать.
Я не прошу ее решить, объясните хотя бы с чего начать, или где можно найти литературу/информацию, которая мне для этого нужна.
Начинать с изучения создания определений динамических блоков и атрибутов в их составе. Найти можно в официальной документации, а так же поиском в Google.
-
Про ObjectARX я слышал, и что лиспом не сделать, тоже. Я так понял, мне ObjectARX подойдет, но по нему не смог ничего найти конкретного. Буду благодарен за ссылку на какую-то толковую книгу.
Про динамические блоки я думал, но как допустим сделать так, чтоб динамический блок имел свойство "мощность" и чтоб к этому свойству можно было обращаться и вручную/программно менять его значение?
-
Про динамические блоки я думал, но как допустим сделать так, чтоб динамический блок имел свойство "мощность" и чтоб к этому свойству можно было обращаться и вручную/программно менять его значение?
Чем не устроили атрибуты блока? Можно читать\изменять, в т.ч. программно.
-
Про ObjectARX я слышал, и что лиспом не сделать, тоже. Я так понял, мне ObjectARX подойдет, но по нему не смог ничего найти конкретного. Буду благодарен за ссылку на какую-то толковую книгу.
Если желание изобретения велосипеда велико, либо если по каким-то объективным причинам не подходит использование блоков, то информацию можно найти в ObjectARX SDK. Толковых книг по ObjectARX, насколько мне известно, нет (если под этим подразумевается подробная, разжёванная информация). Есть книги уровня "Hello World" (годятся в качестве отправной точки для тех, кто начинает изучать с нуля), но не более того.
-
Второй из обозначенных вариантов предоставляется не Autodesk'ом и на данном форуме запрещён к обсуждению под страхом анафемы (ибо конкуренты)
Не обсуждается NanoCAD и другие "клоны" AutoCAD. MultiCAD - это прокладка между .NET-программистом и ObjectARX (и его альтернативами, которые мы не обсуждаем) для создания собственных объектов. В том ракурсе, как она работает в AutoCAD обсуждать её можно, но поддержку следует искать у её разработчиков.
Начинать с изучения создания динамических блоков.
Думаю, что их возможностей для этой задачи недостаточно.
-
Думаю, что их возможностей для этой задачи недостаточно.
Например?
Т.е. это должны быть банальные точка и полилиния, но эти объекты должны иметь свойства, через которые я мог бы управлять моделью (всякие там мощность, длина, сечение)
Что в обозначенном выше запросе есть такого, чего не сделать дин. блоками?
-
Цитата: Udgin
Т.е. это должны быть банальные точка и полилиния, но эти объекты должны иметь свойства, через которые я мог бы управлять моделью (всякие там мощность, длина, сечение)
Что в обозначенном выше запросе есть такого, чего не сделать дин. блоками?
Мне кажется, что он пока видит лишь упрощенную задачу. А когда доберётся до реальной реализации и захочет добавить новые возможности, то упрётся в ограничения динамических блоков. Считай, что это пока проявление моей интуиции. :) Ну например, при помощи динамических блоков нельзя реализовать дополнительные свойства в Панели Свойств.
-
Да, про динамические блоки совершенно верно. Мне кажется, делать расчеты через атрибуты блока это как-то кривовато.
-
Да, про динамические блоки совершенно верно. Мне кажется, делать расчеты через атрибуты блока это как-то кривовато.
Ну тогда готовься погружаться с головой в С++/ObjectARX. Если будут конкретные вопросы - милости просим сюда: http://adn-cis.org/forum/index.php?board=3.0
-
Мне кажется, делать расчеты через атрибуты блока это как-то кривовато.
"Через атрибуты" не делаются никакие расчёты... В атрибутах можно хранить информацию, обозначенную тобой в первом сообщении темы, а так же работать с ними программно. Это самый простой, вполне рабочий и достаточно быстрый вариант решения.
Я не настаиваю. Если хочешь создавать пользовательские типы при помощи ObjectARX - создавай, только не стоит забывать, что прежде чем сесть за изучение ObjectARX API, необходимо предварительно, хотя бы на базовом уровне освоить C++ ;). Пару глав, ориентированных на новичков по части ObjectARX, ты можешь прочесть в этой (http://adn-cis.org/forum/index.php?topic=1097.0) книжке. Так же не забывай о привязке к версии IDE при использовании этого API.
Нужный тебе SDK сможешь выбрать здесь (http://adn-cis.org/forum/index.php?topic=61.0).
-
Странно, что никто не упомянул о расширенных данных примитива. ИХМО для "электических" задач это (расширенные данные у линий/полилиний + их програмная обработка) золотая середина.
-
AutoCAD'у явно не хватает инструментов для работы с графами и добавления пользовательских свойств примитивов
в AutoCAD Map 3D есть штатные инструменты для этого...