Тема: Как нарисовать примитив программно?

как можно программно нарисоваить примитив по известным свойствам?

Re: Как нарисовать примитив программно?

AddText Example
Using Programming Languages other than VBA
Sub Example_AddText()
    ' This example creates a text object in model space.
    Dim textObj As AcadText
    Dim textString As String
    Dim insertionPoint(0 To 2) As Double
    Dim height As Double
    ' Define the text object
    textString = "Hello, World."
    insertionPoint(0) = 2: insertionPoint(1) = 2: insertionPoint(2) = 0
    height = 0.5
    ' Create the text object in model space
    Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)
    ZoomAll
End Sub

Re: Как нарисовать примитив программно?

AddText Example
Using Programming Languages other than VBA
Sub Example_AddText()
    ' This example creates a text object in model space.
    Dim textObj As AcadText
    Dim textString As String
    Dim insertionPoint(0 To 2) As Double
    Dim height As Double
    ' Define the text object
    textString = "Hello, World."
    insertionPoint(0) = 2: insertionPoint(1) = 2: insertionPoint(2) = 0
    height = 0.5
    ' Create the text object in model space
    Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)
    ZoomAll
End Sub

Re: Как нарисовать примитив программно?

слушайте. он у меня рисуется, а потом файл с ним закрывается.
как сделать так, чтоб оставался?

Re: Как нарисовать примитив программно?

ну ладненько.
с этим я разобрался.
у меня в начале процедуры стояло.
Dim objDoc As AcadDocument
Set objDoc = New AcadDocument
я это выкинул, и у меня заработало.
хотя каким образом после всего нарисованного он вспоминает, что было в начале, не понятно.
ну ладно.
у меня возник другой вопрос-
вот например для рисования текста есть своя функция.
там например для линии для дуги, для окружности и т.д. аналогично
но вот как быть с объектами. для которых такой функции нету?
например 2DPolyline, 2DAngularDimension, AlignedDimension, BlockReference, RadialDimension, RotatedDimension, viewport.
или вот например. есть объект типа PolyfaceMesh.
для того. чтоб его нарисовать. требуются два массива
VerticesList, FaceList (согласно справке)
но среди свойств этого объекта в раскрывающемся списке таких свойств нету.
как быть?
Заранее спасибо.

Re: Как нарисовать примитив программно?

У тебя чисто академический интерес или ты работаешь над конкретной проблемой?
У каждого примитива есть свойство  ...... .Add.....
Нужно просто в Help'е посмотреть как им пользоваться и все заработает в лучшем виде! И строки в коде не путать местами
smile

Sub color_sht()
    'Dim plineObj As AcadPolyline
    Dim points(14) As Double
    Dim textObj As AcadText
    Dim textString As String
    Dim insertionPoint(0 To 2) As Double
    Dim i As Long
    Dim hatchObj As AcadHatch
    Dim patternName As String
    Dim PatternType As Long
    Dim bAssociativity As Boolean
    Dim outerLoop(0 To 0) As AcadEntity
    patternName = "solid"
    PatternType = 0
    bAssociativity = True
    For i = 1 To setka_n
        points(0) = setka_osn(i, 2): points(1) = setka_osn(i, 3): points(2) = 0
        points(3) = setka_osn(i, 2): points(4) = setka_osn(i, 6): points(5) = 0
        points(6) = setka_osn(i, 5): points(7) = setka_osn(i, 6): points(8) = 0
        points(9) = setka_osn(i, 5): points(10) = setka_osn(i, 3): points(11) = 0
        points(12) = setka_osn(i, 2): points(13) = setka_osn(i, 3): points(14) = 0
        Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)
        Set outerLoop(0) = ThisDrawing.ModelSpace.AddPolyline(points)
        hatchObj.AppendOuterLoop (outerLoop)
        hatchObj.Evaluate
        If setka_osn(i, 8) = 0 Then hatchObj.Color = acMagenta
        If setka_osn(i, 8) = "x" Then hatchObj.Color = acRed
        If setka_osn(i, 8) = "y" Then hatchObj.Color = acCyan
        If setka_osn(i, 8) = "z" Then hatchObj.Color = acYellow
        'hatchObj.Layer = "INE"
    Next i
End Sub

Re: Как нарисовать примитив программно?

спасибо.!
но тогда почему их (функций add...) нет в появляющемся контекстном меню?

Re: Как нарисовать примитив программно?

ну понял.
я- то ищу например addViewport.
а на самом деле addPviewport

Re: Как нарисовать примитив программно?

еще вопрос.
вот например объект PolyFaceMesh
для его добавления требуются два параметра
vertexList, FaceList
но в раскрывающемся списке объекта таких свойств нету.
не подскажете, где их взять?