Автоматический разрыв вида

Автор Тема: Автоматический разрыв вида  (Прочитано 6620 раз)

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

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

  • ADN Club
  • **
  • Сообщений: 91
  • Карма: 0
  • Skype: niksasa1979
Добрый день. В справке есть пример кода для создания разрыва вида
Public Sub CreateBreakoperationInDrawingView()
    ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    'Set a reference to the active sheet.
    Dim oSheet As Sheet
    Set oSheet = oDrawDoc.ActiveSheet

    ' Check to make sure a drawing view is selected.
    If Not TypeOf oDrawDoc.SelectSet.Item(1) Is DrawingView Then
        MsgBox "A drawing view must be selected."
        Exit Sub
    End If

    ' Set a reference to the selected drawing. This assumes
    ' that the selected view is not a draft view.
    Dim oDrawingView As DrawingView
    Set oDrawingView = oDrawDoc.SelectSet.Item(1)

    ' Set a reference to the center of the base view.
    Dim oCenter As Point2d
    Set oCenter = oDrawingView.Center

    ' Define the start point of the break
    Dim oStartPoint As Point2d
    Set oStartPoint = ThisApplication.TransientGeometry.CreatePoint2d(oCenter.X - 1, oCenter.Y)

    ' Define the end point of the break
    Dim oEndPoint As Point2d
    Set oEndPoint = ThisApplication.TransientGeometry.CreatePoint2d(oCenter.X + 1, oCenter.Y)

    Dim oBreakOperation As BreakOperation
    Set oBreakOperation = oDrawingView.BreakOperations.Add(kHorizontalBreakOrientation, oStartPoint, oEndPoint, kRectangularBreakStyle, 10)
End Sub
Пытаюсь его адаптировать под ilogic: убираю Sub, set, заключаю аргументы в круглые скобки, но правило не работает. Появляется сообщение (см. скриншот).
В чем проблема? 
« Последнее редактирование: 21-10-2013, 13:21:32 от niksasa »

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

  • ADN Club
  • **
  • Сообщений: 91
  • Карма: 0
  • Skype: niksasa1979
Re: Автоматический разрыв вида
« Ответ #1 : 21-10-2013, 13:27:49 »
В принципе, я могу запустить макрос из правила ilogic. Но в данном случае нужно всегда предварительно указывать сначала вид, а потом выполнять правило и за ним макрос. Я могу в макрос добавить kDrawingViewFilter для указания вида?
« Последнее редактирование: 21-10-2013, 14:43:10 от Владимир Ананьев »

Оффлайн Владимир Ананьев

  • ADN DevHelp
  • *
  • Сообщений: 148
  • Карма: 8
Re: Автоматический разрыв вида
« Ответ #2 : 21-10-2013, 14:48:12 »
Можешь.  Введи вызов метода Pick с соответствующим фиьтром.
Если с ошибкой не справишься, выкладывай ссылку на тестовую модель и чертеж с правилом iLogic.

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

  • ADN Club
  • **
  • Сообщений: 91
  • Карма: 0
  • Skype: niksasa1979
Re: Автоматический разрыв вида
« Ответ #3 : 21-10-2013, 22:04:17 »
Можешь.  Введи вызов метода Pick с соответствующим фиьтром.
Если с ошибкой не справишься, выкладывай ссылку на тестовую модель и чертеж с правилом iLogic.
Ура, всё получилось! :D
PS: жалко, что значение Debug нельзя поменять с помощью API.