Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: bakaIIHX от 12-09-2014, 16:13:27
-
Доброго времени суток. Прошу прощения что отвлекаю Вас, уверен что и так много работы, но не могли бы Вы мне помочь. Я в затруднительном положении, не могу понять можно ли осуществить программу которую я запланировал . Суть в том, что бы в автокаде рандомно генерировались простейшие примитивы после того как в его рабочем поле что либо появлялось. Осуществлять программу пытаюсь на С# Visual Studio. Первая задумка: все зависит от рабочего поля автокада. В момент появления, на пример примитива, на поле автокада срабатывает программа и рандомно в установленную область генерирует примитив. Вторая: так же привязывается к рабочему полю, но не генерирует новый примитив, а копирует и изменят уже существующий.
Если Вас не затруднит можете ответить на пару вопросов.
1) Возможна ли программа, которая срабатывает в момент события на поле автокад. Что нужно использовать?
2) Что нужно для генерации рандомных примитивов в автокад посредством С#.
Большое Вам спасибо.
Прочитай правила и измени название темы. /* Александр Ривилис */
-
Приветствую на форуме!
можно ли осуществить программу которую я запланировал .
Можно. Я не буду говорить о том, что сама по себе постановка задачи выглядит абсолютно бредово и лучше всего будет если ты уточнишь зачем это всё нужно.
-
1) Возможна ли программа, которая срабатывает в момент события на поле автокад. Что нужно использовать?
Нет такого понятия "поле AutoCAD". Есть текущий лист (Модель или один из Листов), есть текущий вид. О чем в данном случае идет речь непонятно. Один из вариантов - реагировать на добавление примитивов в базу AutoCAD. Регистрировать факт добавления можно в событии Database.ObjectAppended. Но в этом событии не следует добавлять свои примитивы, т.к. есть большой шанс попасть в рекурсию.
2) Что нужно для генерации рандомных примитивов в автокад посредством С#.
Понять что такое это "рандомный примитив" - это в первую очередь.
-
лучше всего будет если ты уточнишь зачем это всё нужно.
Это все часть проекта, в который меня не посвящали. Необходимо что бы написанная программа при появлении какого либо объекта на текущем листе рисовала простейщий примитив, только не каждый раз один, а разные.
-
1. Напоминаю о необходимости изменить название темы. В противном случае она будет удалена.
2. Не люблю играть в конспирологические игры. Если нет нормальной постановки задачи, то решить её невозможно.
3. Задавай вопросы по принципу "один вопрос - одна тема". Например: "Как можно отследить появление появление примитива в текущем пространстве?".
-
Для того, чтобы отследить появление нового примитива нужно:
1) подписаться на событие Database.ObjectAppended
2) в обработчике этого события проверить, что добавленный объект - это примитив (Entity) и его свойство OwnerId равно свойству CurrentSpaceId текущей базы данных (чертежа)
-
Прошу прощения что отвлекаю Вас, уверен что и так много работы, но не могли бы Вы мне помочь. Я в затруднительном положении, не могу понять можно ли осуществить программу которую я запланировал .
Чем меньше "воды" в тексте, тем лучше.
Суть в том, что бы в автокаде рандомно генерировались простейшие примитивы после того как в его рабочем поле что либо появлялось.
1. В AutoCAD примитивы бывают графическими (Entity) и неграфическими. Что ты в данном случае подразумевал под "примитивами"? Где должны генерироваться "рандомные" примитивы (что это за "установленая область" такая)?
2. Расшифруй, что ты подразумеваешь под "рандомно"? Произвольный графический примитив в произвольном месте текущего пространства?
3. Что ты подразумеваешь под "рабочим полем"? В AutoCAD под словом "поле" (Field) подразумевается совсем не то, что ты пытаешься использовать в своём лексиконе. Предполагаю, что под "рабочим полем" ты подразумеваешь текущее пространство: Model или Layout...
1) Возможна ли программа, которая срабатывает в момент события на поле автокад. Что нужно использовать?
По поводу "поля" написано выше. Использовать нужно соответствующий обработчик событий, в зависимости от того, какое событие ты хочешь обработать.
2) Что нужно для генерации рандомных примитивов в автокад посредством С#.
По поводу "рандомных" написано выше. Каков вопрос, таков ответ: нужно написать программный код.
P.S. Задавая вопрос, используй терминологию, принятую в той области, по которой задаёшь его (если хочешь, чтобы тебя поняли и ответили), а не изобретай "сферических коней в вакууме". Если у тебя проблемы с кодом - выкладывай свой код и показывай проблемное место.
-
Приношу свои извинения. Работаю с этим не так давно, поэтому и несу бред сивой кобылы.
-
По поводу "рандомных" написано выше. Каков вопрос, таков ответ: нужно написать программный код.
Вы совершенно правы, мне необходимо сделать,что бы появлялся произвольный графический примитив в произвольном месте текущего пространства.