Vytisknout stránku | Zavřít okno

VBA a 3dpolyline

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=1408
Datum vytištění: 13.čer.2026 v 17:18


Téma: VBA a 3dpolyline
Odeslal: predcis
Předmět: VBA a 3dpolyline
Datum odeslání: 21.zář.2005 v 11:43
Dobry den,
mam este jeden problem, ktory som sice vyriesil, ale sposobom, ktory je podla mna dost divny. Nemam hlbsie znalosti VB, preto priliz nepoznam problematiku dynamickych poli (s C-ckom to nema nic podobneho).
V podstate ide o to, ze som nenasiel nejaku "vstavanu" funkciu, ktora by mi povedala kolko vrcholov ma 3d krivka, ktoru vyberiem. Tak som to vyriesil cez chybu, co sa mi zda byt pritiahnute za vlasy. Vie mi prosim niekto poradit, ako sa to da urobit inteligentnejsie ? Dakujem.
Tu je kod :

Public poly As Acad3DPolyline
Public entita As AcadEntity
Public prepinac As Boolean

Private Sub Vyber3Dpoly_Click()

Dim bod(2) As Double

Me.Hide
AutoCAD.ActiveDocument.Utility.GetEntity entita, bod, "Vyber 3Dpolyline ! : "
'MsgBox entita.ObjectName
If entita.ObjectName = "AcDb3dPolyline" Then
Set poly = entita
prepinac = True
Else
MsgBox "Nevybral si 3Dpolyline !"
End If
'MsgBox poly.ObjectName
Me.Show

End Sub

Private Sub Vykreslit_Click()

Dim pocetVrcholov As Long
Dim bod1 As Variant
Dim bod2 As Variant

pocetVrcholov = 0

'zistenie poctu vrcholov

On Error GoTo vrcholy


Do While 1 > 0 'nekonecny cyklus

    bod1 = poly.Coordinate(pocetVrcholov) ' ak nastane chyba, tolko vrcholov je (indexy su potom pocet - 1)
    pocetVrcholov = pocetVrcholov + 1 'neexistuje nieco ako pocetVrcholov++ ?

Loop 'koniec nekonecneho cyklu

vrcholy:

'MsgBox "Pocet vrcholov > " & pocetVrcholov

... a pokracuje dalsi kod.



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 21.zář.2005 v 12:09
není tam náhodou kolekce Coordinates ? (nezkoušeno)

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Seiner
Datum odeslání: 21.zář.2005 v 12:13
a co UBound (jmeno_pole[,č_rozm]) ?


Odeslal: predcis
Datum odeslání: 21.zář.2005 v 12:48
Dakujem, riesenie som nasiel nasledovne :

pocetVrcholov = (UBound(poly.coordinates)+1)/3



Vytisknout stránku | Zavřít okno