Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  VBA Punkte verbinden

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
Cideon Solution Days: Zukunftsschmiede für digitales Engineering, eine Pressemitteilung
Autor Thema:  VBA Punkte verbinden (2537 mal gelesen)
moerchen
Mitglied
Fachinformatiker

Sehen Sie sich das Profil von moerchen an!   Senden Sie eine Private Message an moerchen  Schreiben Sie einen Gästebucheintrag für moerchen

Beiträge: 3
Registriert: 28.04.2009

erstellt am: 28. Apr. 2009 15:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo:

Mein bisheriger Code:


    Dim cadapp As AcadApplication
    Dim Blo As AcadBlockReference
    Dim punkt(0 To 2) As Double
    Dim tmp As AcadPoint
    Dim abc As AcadSpline
    Dim punkte(500, 3) As AcadPoint


Private Sub btnBerechnen_Click()

    On Error Resume Next
    Err.Clear

    Set cadapp = GetObject(, "AutoCad.Application")
   
    If Err <> 0 Then
        Err.Clear
        Set cadapp = CreateObject("AutoCad.Application")
        If Err <> 0 Then
            MsgBox "Autocad konnte nicht gestartet werden"
            End
        End If
    End If
    cadapp.Visible = True
   

    Dim starttangente(5) As Double
    starttangente(0) = Sheets(2).Cells(11, 2).Value
    starttangente(1) = Sheets(2).Cells(11, 3).Value
    starttangente(2) = 0
    starttangente(3) = Sheets(2).Cells(12, 2).Value
    starttangente(4) = Sheets(2).Cells(12, 3).Value
    starttangente(5) = 0
   
    Dim endtangente(5) As Double
    endtangente(0) = Sheets(2).Cells(89, 2).Value
    endtangente(1) = Sheets(2).Cells(89, 3).Value
    endtangente(2) = 0
    endtangente(3) = Sheets(2).Cells(90, 2).Value
    endtangente(4) = Sheets(2).Cells(90, 3).Value
    endtangente(5) = 0

    Dim zaehl As Integer
    zaehl = 1

    ' 1 Quadrant zeichnen
    For i = 1 To 90
        punkt(0) = Sheets(2).Cells(10 + i, 2).Value
        punkt(1) = Sheets(2).Cells(10 + i, 3).Value
        punkt(2) = 0

        punkte(i, 0) = punkt(0)
        punkte(i, 1) = punkt(1)
        punkte(i, 2) = punkt(2)
        zaehl = zaehl + 1
       
        Set tmp = cadapp.Application.ActiveDocument.ModelSpace.AddPoint(punkt)
        tmp.Visible = True
       
    Next
   
    a = cadapp.Application.ActiveDocument.ModelSpace.AddSpline(punkte, starttangente, endtangente)


    MsgBox (zaehl)
   
    Exit Sub
   
   
   
   

    ' 2 Quadrant zeichnen
    For i = 1 To 90
        punkt(0) = Sheets(2).Cells(10 + i, 5).Value
        punkt(1) = Sheets(2).Cells(10 + i, 6).Value
        punkt(2) = 0
        Set tmp = cadapp.Application.ActiveDocument.ModelSpace.AddPoint(punkt)
        tmp.Visible = True
    Next

   
   
    ' 3 Quadrant zeichnen
    For i = 1 To 90
        punkt(0) = Sheets(2).Cells(10 + i, 8).Value
        punkt(1) = Sheets(2).Cells(10 + i, 9).Value
        punkt(2) = 0
        Set tmp = cadapp.Application.ActiveDocument.ModelSpace.AddPoint(punkt)
        tmp.Visible = True
    Next
   
    ' 4 Quadrant zeichnen
    For i = 1 To 90
        punkt(0) = Sheets(2).Cells(10 + i, 11).Value
        punkt(1) = Sheets(2).Cells(10 + i, 12).Value
        punkt(2) = 0
        Set tmp = cadapp.Application.ActiveDocument.ModelSpace.AddPoint(punkt)
        tmp.Visible = True
    Next
   
End Sub

Wie kann ich nun die einzelnen Punkte verbinden lassen?
Mithilfe einer Spline sagte man mir?

Ich danke euch jetzt schon mal für die Hilfe!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stelli1
Ehrenmitglied
Verm.-Ing.


Sehen Sie sich das Profil von Stelli1 an!   Senden Sie eine Private Message an Stelli1  Schreiben Sie einen Gästebucheintrag für Stelli1

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2013, Rasterdesign
MapGuide 6.5 - 2013
Oracle 9i,10g,11g Enterprise
autodesk Topobase 2-2012
VS6, VS.net

erstellt am: 28. Apr. 2009 16:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für moerchen 10 Unities + Antwort hilfreich

Hallo moerchen,

herzlich willkommen auf CAD.de. 

Für AutoCAD VBA gibt es auch ein eigenes Forum.

Vielleicht bis du da besser aufgehoben ???

Aber davon abgesehen: Was willst du erreichen ?

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

moerchen
Mitglied
Fachinformatiker

Sehen Sie sich das Profil von moerchen an!   Senden Sie eine Private Message an moerchen  Schreiben Sie einen Gästebucheintrag für moerchen

Beiträge: 3
Registriert: 28.04.2009

erstellt am: 29. Apr. 2009 07:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Oben genannten Code habe ich!

Ich hab dort bereits rumprobiert, aber der Code macht bisher nichts anderes,
als im Excel die Punkte auszulesen und dann jeden Quadranten einzeln zu zeichnen!
D.h. ich habe bis jetzt 4 x 90 = 360 Punkte.

Diese Punkte muss ich nun mithilfe einer "spline??" verbinden.
Wie mach ich das, das sich diese Spline automatisch "Formt"?

Ich bräuchte ein Beispiel, da ich bis jetzt nicht zurechtkomme mit dem spline Befehl!

Grüße
und Danke

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

moerchen
Mitglied
Fachinformatiker

Sehen Sie sich das Profil von moerchen an!   Senden Sie eine Private Message an moerchen  Schreiben Sie einen Gästebucheintrag für moerchen

Beiträge: 3
Registriert: 28.04.2009

erstellt am: 29. Apr. 2009 14:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Weiß denn keiner eine Lösung?

Ich bin kein Technischer zeichner, und es hieß, Punkte verbindet man via einer Spline.

Jedoch habe ich keine Ahnung, wie ich mithilfe von VBA an den besagten Punkten eine Spline bilde, und wäre für jede Hilfe bzw. jedes Beispiel sehr sehr dankbar!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Gargarot
Mitglied
Student MSc Civil Engineering ETHZ, Dipl Bauzeichner


Sehen Sie sich das Profil von Gargarot an!   Senden Sie eine Private Message an Gargarot  Schreiben Sie einen Gästebucheintrag für Gargarot

Beiträge: 316
Registriert: 25.06.2008

HP 8560w, Win7 SP1 64bit, i7 2760QM 2.4GHz, AMD FirePro M5950, 8GB RAM; AutoCAD 2013 Edu

erstellt am: 29. Apr. 2009 16:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für moerchen 10 Unities + Antwort hilfreich

Hallo!

Nun, du hast eigentlich immer noch nicht geschrieben was du willst. Ich seh etwqas Code mit dem du igendwelche Punkte erstellst. Dann erzählst du von Quadranten (Gibt das ein Graf mit irgendwelchen Messresulataten?) und dass man Punkte mit Splines verbindet. Wer sagt das?
Nun ich würde direkt eine Polylinie ohne vorher die Punkte zeichnen aber Item.

Beschreib doch bitte was du hast (Excel file mit Koordinaten), was du erhalten willst (Funktionsgraf.....?) und wie du vorgegangen bist. Wie du siehst, weis ich einfach nicht was du willst!

Wenn du Punkte in Excel hast und die als linie im AutoCAD haben möchtest, dann bastle doch ein einfaches Script zb: _pline;x1,y2;x2,y2....;
_pl.....usw

Also durchatmen und uns dann erklärten was du machen möchtest, dann gibts bestimmt auch einige Rückmeldungen 

Gruss Christoph

------------------
3 kleine Weisheiten
-Man kann ein Problem nicht mit den gleichen Denkstrukturen lösen, die zu seiner Entstehung beigetragen haben.
-Bewehrt sich Beton?
-Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stelli1
Ehrenmitglied
Verm.-Ing.


Sehen Sie sich das Profil von Stelli1 an!   Senden Sie eine Private Message an Stelli1  Schreiben Sie einen Gästebucheintrag für Stelli1

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2013, Rasterdesign
MapGuide 6.5 - 2013
Oracle 9i,10g,11g Enterprise
autodesk Topobase 2-2012
VS6, VS.net

erstellt am: 29. Apr. 2009 17:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für moerchen 10 Unities + Antwort hilfreich

Die Hilfe von AutoCAD gibt folgenden Rat
Code:
Sub Example_AddSpline()
    ' This example creates a spline object in model space.

    ' Create the spline
    Dim splineObj As AcadSpline
    Dim startTan(0 To 2) As Double
    Dim endTan(0 To 2) As Double
    Dim fitPoints(0 To 8) As Double
   
    startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0
    endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0
    fitPoints(0) = 1: fitPoints(1) = 1: fitPoints(2) = 0
    fitPoints(3) = 5: fitPoints(4) = 5: fitPoints(5) = 0
    fitPoints(6) = 10: fitPoints(7) = 0: fitPoints(8) = 0
    Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan)
    ZoomAll
   
End Sub



Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz