Есть ли альтернатива View.GetOutline (), которая включает временные оси? - PullRequest
0 голосов
/ 31 октября 2019

Примечание: Это , а не , ответ на предложенный вопрос - это практически противоположность этому. Кроме того, это я тоже задал этот вопрос, и я также связался с ним ниже .

Я исправляю чужой код VBA для SolidWorks, который размещает чертежные виды рядом друг с другом на основе ихразмер. Размер вида берется из ограничительной рамки, возвращаемой View.GetOutline(), а позиция вида задается изменением свойства View.Position. Код обрабатывает многотельные детали, создавая один лист чертежа для каждого тела.

Проблема в том, что свойство View.Position соответствует центру ограничительной рамки, которая включает Временные оси, в то время как View.GetOutline() не включает их - возвращает немного больше, чем схема выбора, показанная в графическом интерфейсе SolidWorks.

Это многотельная деталь и один из поврежденных видов чертежа с включенными временными осями в графическом интерфейсе ПО:

multibody part enter image description here

На чертеже вы видите:

  • контур выделения, отображаемый с помощью графического интерфейса пользователя (голубой пунктирный прямоугольник)
  • диагональ контура, возвращаемого View.GetOutline() (красная линия)
  • центр представления, как в свойстве View.Position (красный X)
  • временные оси (синие крестики и линии)

Есть ли способ получить реальный размер чертежного вида, тот, который соответствует ограничительной рамке, центр которой является свойством View.Position?

Видимо, чертежный вид включает временные оси от других тел в этой многотельной части. Это указывает на альтернативный вопрос: Есть ли способ предотвратить включение временных осей от других тел в многотельной детали в чертежный вид одного тела?

Для справки, проблемаТо же самое, независимо от того, какой метод используется для создания представления (например, CreateDrawViewFromModelView3(), CreateUnfoldedViewAt3(), CreateRelativeView() и т. д.).

Примечание. Я задал другой вопрос , что связано с той же самой проблемой, которую я изменил, потому что я ошибочно предположил, что View.GetOutline() не включает Временные оси.

...