Sasek

Użytkownik forum
  • Postów

    2
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Odpowiedzi opublikowane przez Sasek

  1. Witam.

    Mam taki problem z dwoma programikami:

    1.Program powinien wybierać okręgi o promieniu 5, niestety tylko je podświetla ale nie utrzymuje zaznaczenia :(. Why?

    Sub wybieranie()
    Dim ssh As ZwcadSelectionSet
    Dim Ftyp(1) As Integer
    Dim Fdat(1) As Variant
    Dim F1, F2 As Variant
    Ftyp(0) = 0: Fdat(0) = "CIRCLE"
    Ftyp(1) = 40: Fdat(1) = 5#
    Set ssh = Thisdocument.SelectionSets.Add("ssh")
    F1 = Ftyp
    F2 = Fdat
    ssh.Delete
    ssh.Select zcSelectionSetAll, , , F1, F2
    ssh.Highlight True
    End Sub

    2. Drugi program miał tworzyć warstwę tak jak normalnie w menadżerze (kopiując style linii, kolor itp.). Kod wygląda następująco:

    Sub war()
    Dim k As String
    Dim gl As String
    Dim sl As String
    Dim d As String
    Dim z As String
    Dim zab As String
    Dim n As String
    
    Dim zero As ZwcadLayer
    Dim jeden As ZwcadLayer
    
    Set zero = Thisdocument.Layers("0")
       k = zero.Color
       gl = zero.LineWeight
       sl = zero.Linetype
       d = zero.Plottable
       z = zero.Freeze
       zab = zero.Lock
       n = zero.LayerOn
    
    Set jeden = Thisdocument.Layers.Add("1")
       jeden.Color = k
       jeden.LineWeight = gl
       jeden.Linetype = sl
       jeden.Plottable = d
       jeden.Freeze = z
       jeden.Lock = zab
       jeden.LayerOn = n
    
    Thisdocument.Regen
    End Sub
    

    Czy jest jakiś krótszy sposób odczytania danych z istniejącej warstwy albo innego obiektu? I dlaczego jak mam zablokowaną, zamrożoną lub niewidoczna warstwę to wyskakuje błąd?

    Z góry dzięki za pomoc.

    Pozdrawiam

  2. Witam wszystkich.

    Mam taki mały problem :). Chciałem zapoznać się trochę z VBA, ale nigdy nie pisałem żadnych programów/makr. W necie znalazłem tutorial pod autocada i przepisałem z niego program ale niestety wyskakuje mi błąd "Invalid procedure call or argument (Error 5)" . Dotyczy on linii "Set newpline = Thisdocument.ModelSpace.AddLightWeightPolyline(pkt)". Z góry dzieki za pomoc. Pozdrawiam

    Sub pol()
    Dim h As Double
    Dim s As Double
    Dim t As Double
    Dim g As Double
    Dim r As Double
    Dim r1 As Double
    
    Dim pt1 As Variant
    Dim pkt(0 To 17) As Variant
    pt1 = Thisdocument.Utility.GetPoint(, vbCrLf & "Punkt wstawienia:")
    
    h = 60
    s = 40
    t = 6
    g = 6
    r = 6
    r1 = 3
    Dim newpline As ZwcadLWPolyline
    pkt(0) = pt1(0)
    pkt(1) = pt1(1)
    pkt(2) = pkt(0) + s
    pkt(3) = pkt(1)
    pkt(4) = pkt(2)
    pkt(5) = pkt(3) + (t - r1)
    pkt(6) = pkt(4) - r1
    pkt(7) = pkt(1) + t
    pkt(8) = pkt(0) + g + r
    pkt(9) = pkt(1) + t
    pkt(10) = pkt(8) - r
    pkt(11) = pkt(9) + r
    pkt(12) = pkt(10)
    pkt(13) = pkt(1) + h - r1
    pkt(14) = pkt(0) + g - r1
    pkt(15) = pkt(1) + h
    pkt(16) = pkt(0)
    pkt(17) = pkt(15)
    
    Set newpline = Thisdocument.ModelSpace.AddLightWeightPolyline(pkt)
    newpline.Closed = True
    newpline.Update
    End Sub
    

    Link do źródła: http://www.is.pw.edu.pl/plik/290/VBA%20dla%20AutoCAD.pdf

    Numer kompilacji: "2011.10.30(17176)"[/code]