Тема: линия, окружность,полилайн над солидом

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

Re: линия, окружность,полилайн над солидом

Поищи в документации MoveAbove

(изменено: Vadim, 28 февраля 2011г. 16:37:08)

Re: линия, окружность,полилайн над солидом

Метод MoveAbove нашелся только для класса  AutoCAD.AcadSortentsTable

Re: линия, окружность,полилайн над солидом

А пример к нему в справке посмотрел?

Re: линия, окружность,полилайн над солидом

Никогда раньше не работал с Dictionary.Где кроме помощи можно поподробнее почитать о них?

Re: линия, окружность,полилайн над солидом

Измени название слоя и типы примитивов если нужно:

Option Explicit

Sub MoveTop()
Dim ftype(1) As Integer
Dim fdata(1) As Variant
Dim dxfCode, dxfValue

ftype(0) = 0
ftype(1) = 8

fdata(0) = "LINE,CIRCLE,LWPOLYLINE"
fdata(1) = "Layer2"

dxfCode = ftype: dxfValue = fdata

     Dim oSset As AcadSelectionSet
          With ThisDrawing.SelectionSets
               While .Count > 0
                    .Item(0).Delete
               Wend
          Set oSset = .Add("$MySset$")
          End With
          ' Select on screen
oSset.SelectOnScreen dxfCode, dxfValue

If oSset.Count = 0 Then Exit Sub
     Dim oEnt As AcadObject

'     ' Make the error handler active
     On Error GoTo Err_Control
     'Get an extension dictionary and, if necessary, add a SortentsTable object
     Dim extDict As Object
     Set extDict = ThisDrawing.ModelSpace.GetExtensionDictionary
     ' Prevent failed GetObject calls from throwing an exception
     On Error Resume Next
     Dim orderDict As Object
     Set orderDict = extDict.GetObject("ACAD_SORTENTS")
     On Error GoTo 0
     If orderDict Is Nothing Then
          ' No SortentsTable object, so add one
          Set orderDict = extDict.AddObject("ACAD_SORTENTS", "AcDbSortentsTable")
     End If

     ReDim arr(oSset.Count - 1) As AcadObject
     Dim i
     For Each oEnt In oSset
     Set arr(i) = oEnt
     i = i + 1
     Next oEnt

     'Move the hatch object to the bottom
     orderDict.MoveToTop arr
     AcadApplication.Update

     Exit Sub
Err_Control:
     MsgBox Err.Description
End Sub

Re: линия, окружность,полилайн над солидом

Спасибо

Re: линия, окружность,полилайн над солидом

Успехов,

[FONT=Arial]~'J'~[/FONT]