C# и AutoCAD2016. Открытие чертежей и получение параметров инструмента "Измерить

Автор Тема: C# и AutoCAD2016. Открытие чертежей и получение параметров инструмента "Измерить  (Прочитано 75113 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
в таком виде нам поставляются такие планы
Это не устраняет необходимость предварительной подготовки чертежа. Если этого не делают те, кто высылает, значит это придётся делать тебе. В противном случае каковы исходники - таков будет и результат.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13923
  • Карма: 1793
  • Рыцарь ObjectARX
  • Skype: rivilis
Выделяю сам область которую надо померить и мне выдается в автокаде площадь и периметр.
Видимо ты не понимаешь, что в AutoCAD'е нельзя выделить область (в твоём понимании). В нём можно выделить только примитивы AutoCAD. У тебя в качестве примитивов - куча отрезков, которые тебе ничем не помогут. У них нет площади. Поэтому тебе придётся попросить пользователя указать точки - вершины помещения.
В помещении могут быть части, которые следует вычитать из общей площади: колонны, проёмы аля "второй свет", кладовки со швабрами, если они реализованы в виде отдельных закутков. :) В виду этого примитивы областей использовать было бы более желательно (имхо).
Вполне возможно, что их нужно учитывать - в постановке задачи я этого не увидел.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
в постановке задачи я этого не увидел.
не удивлюсь, если сейчас выяснится, что это "подразумевалось само собой". Кроме того, не исключено, что даже если сейчас это не требуется учитывать, то совершенно не факт, что завтра требования не изменятся (самый плохой вариант).

Нередко то, что вопрошающему кажется мелочью, которую он не посчитал необходимым упомянуть, является одним из ключевых факторов, влияющих на выбор архитектуры приложения или способа решения задачи.

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 629
  • Карма: 161
    • ПГСу Бложик
Накинулись...
В принципе, если выключить слой размеров и попробовать вот этот способ, то может и получится...

Хотя, блоки оборудования в слое стены, какие то рллеты в слое размеры , а сами размеры в слое АМ-5 и прочие прелести, жалко мне автора.

Оффлайн melkalex90Автор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 0
Я так понимаю, что не правильно вам объясняю чего хочу сделать)
В Автокаде есть инструмент Измерить Площадь(через ком строку _AREA). Я так понимаю, что этим инструментом я указываю опорные точки, по которым строится область, которая считается.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
В принципе, если выключить слой размеров и попробовать вот этот способ, то может и получится...
Ты не забывай, что ему это нужно делать из внешнего приложения.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13923
  • Карма: 1793
  • Рыцарь ObjectARX
  • Skype: rivilis
Я так понимаю, что этим инструментом я указываю опорные точки, по которым строится область, которая считается.
Область не строится. Вычисляется площадь, которая ограничена указанными пользователем точками.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 629
  • Карма: 161
    • ПГСу Бложик
Я так понимаю, что этим инструментом я указываю опорные точки, по которым строится область, которая считается.
Как запросить эти точки у пользователя (через COM) я тебе показывал, пебе осталось только площадь посчитать, самому.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Автокаде есть инструмент Измерить Площадь(через ком строку _AREA). Я так понимаю, что этим инструментом я указываю опорные точки, по которым строится область, которая считается.
В автокаде есть такой примитив, так и называется: "область". Что юзеру легче сделать: указать стопятьцот точек помещения или одним кликом мышки выбрать объект "область", показывающую контур помещения за вычетом (при необходимости) всех лишних площадей? Не вопрос, ты, конечно, можешь и точки указывать, но ты поручишься за свою точность (что тебя не отвлекли и ты не забыл пару-тройку точек кликнуть, или что ты не указал пару лишних)?

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 629
  • Карма: 161
    • ПГСу Бложик
Ты не забывай, что ему это нужно делать из внешнего приложения.
Ну идея то понятна.
Через сом спросить у пользователя очку, запустить команду "_boundary" и считать последний созданный объект...

Оффлайн melkalex90Автор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 0
В автокаде есть такой примитив, так и называется: "область". Что юзеру легче сделать: указать стопятьцот точек помещения или одним кликом мышки выбрать объект "область", показывающую контур помещения за вычетом (при необходимости) всех лишних площадей? Не вопрос, ты, конечно, можешь и точки указывать, но ты поручишься за свою точность (что тебя не отвлекли и ты не забыл пару-тройку точек кликнуть, или что ты не указал пару лишних)?
Заказчик не будет переделывать свои планы в автокаде, ему параллельно каким образом мы на фирме считаем эти площади. Я это делаю непосредственно для упрощения работы менеджеров ведущих объекты.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Заказчик не будет переделывать свои планы в автокаде, ему параллельно каким образом мы на фирме считаем эти площади. Я это делаю непосредственно для упрощения работы менеджеров ведущих объекты.
Я не настаиваю, можешь каждый раз для одного и того же помещения повторно указывать точки и игнорировать колонны, проёмы и т.п. - главное, чтобы тебя и твоих пользователей это устраивало. :)

Короче - показывай код, который у тебя не работает и задавай вопросы по нему (дабы всё было более конкретным). Уговаривать тебя не наступать на грабли я более не буду. :)

Оффлайн melkalex90Автор темы

  • ADN OPEN
  • **
  • Сообщений: 59
  • Карма: 0
Я не настаиваю, можешь каждый раз для одного и того же помещения повторно указывать точки и игнорировать колонны, проёмы и т.п. - главное, чтобы тебя и твоих пользователей это устраивало. :)

Короче - показывай код, который у тебя не работает и задавай вопросы по нему. Уговаривать тебя не наступать на грабли я более не буду. :)
У меня в любом случае будут примерные итоговые расчеты(в итоге считаются материалы), так как каждый человек в итоге по разному делает отделку(в плане самого процесса) + при транспортировке что то может уйти в утиль.
В том и беда, что я не понимаю коим образом подцепиться к автокаду и запросить указать точки. В данной статье(https://sites.google.com/site/bushmansnetlaboratory/translate-manual/upravlenie-sredoj-autocad/dostup-k-komandnoj-stroke-autocad) нашел как получить доступ к командной строке автокада, но он у меня начинает ругаться на "Document acDoc = Application.DocumentManager.MdiActiveDocument;"

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13923
  • Карма: 1793
  • Рыцарь ObjectARX
  • Skype: rivilis
melkalex90
Резюмируем. Постановка задачи у тебя в голове и ты не собираешься её менять под возможности AutoCAD.
Значит разбивай свою задачу на подзадачи и задавай вопрос по каждой из них.
Например,
1) как запустить команду в AutoCAD из внешнего приложения?
2) как отследить завершение команды?
3) как получить результаты выполнения команды _AREA?
Один вопрос - одна тема на форуме.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13923
  • Карма: 1793
  • Рыцарь ObjectARX
  • Skype: rivilis
В том и беда, что я не понимаю коим образом подцепиться к автокаду и запросить указать точки. В данной статье(https://sites.google.com/site/bushmansnetlaboratory/translate-manual/upravlenie-sredoj-autocad/dostup-k-komandnoj-stroke-autocad) нашел как получить доступ к командной строке автокада, но он у меня начинает ругаться на "Document acDoc = Application.DocumentManager.MdiActiveDocument;"
Потому что в той статье описано создание не внешнего приложения, а сборки, которая грузится внутрь AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение