Ergebnis 1 bis 10 von 10

Thema: Kurve aus Koordinaten erstellen

  1. #1
    Neuer Benutzer Junior Member
    Registriert seit
    03.12.2016
    Beiträge
    29

    Standard Kurve aus Koordinaten erstellen

    Hallo, zunächst einmal wünsche ich Allen ein frohes Weihachtsfest.

    Ich habe da noch eine Frage
    Gibt es die Möglichkeit, in CorelDraw eine Tabelle mit x,y Koordinaten einzulesen und dann eine spline interpolierte Kuve mit diesen Daten zu zeichnen?
    Vielleicht ein Makro?

    Gruß, Norbert

  2. #2
    Erfahrener Benutzer Profi Member
    Registriert seit
    14.12.2011
    Ort
    Bavaria
    Beiträge
    3.969

    Standard

    Hallo Norbert,
    ein kommerzielles Macro gibt es hier http://corelvba.com/index.php?pages=chart_1
    du müsstest das Macro 2-3 mal starten können bevor du es kaufen musst.

    Willst du die Kurvenpunkte selber als x,y Koordinaten eingeben solltest du dir in Corel Draw das Andockfenster "Objektkoordinaten" genauer ansehen.

    Gruß
    Norre
    Geändert von norre (23.12.2016 um 15:59 Uhr)
    Benachrichtigung bei neuen Antworten, schau --> HIER

    Alle Angaben ohne Gewähr
    .
    Win7 64bit & Win8.1 - Corel Suite X6.4 (32bit) mit X6.4Hotfix1 - ein paar alte Corel Draw und Photopaint Versionen schwirren auch noch rum

  3. #3
    Neuer Benutzer Junior Member
    Registriert seit
    03.12.2016
    Beiträge
    29

    Standard

    Zitat Zitat von norre Beitrag anzeigen
    Hallo Norbert,
    ein kommerzielles Macro gibt es hier http://corelvba.com/index.php?pages=chart_1
    du müsstest das Macro 2-3 mal starten können bevor du es kaufen musst.

    Willst du die Kurvenpunkte selber als x,y Koordinaten eingeben solltest du dir das Andockfenster "Objektkoordinaten" genauer ansehen.

    Gruß
    Norre
    Alls klar, danke norre.

    Liebe Grüße, Norbert

  4. #4
    Erfahrener Benutzer Profi Member
    Registriert seit
    14.12.2011
    Ort
    Bavaria
    Beiträge
    3.969

    Standard

    Hallo
    unser Dr. mak Koter hat mal ein Makro geschrieben bei dem die Objektkoordinaten in eine Excelliste geschrieben werden (Hier), vielleicht geht das auch anderstrum?

    Gruß
    Norre
    Benachrichtigung bei neuen Antworten, schau --> HIER

    Alle Angaben ohne Gewähr
    .
    Win7 64bit & Win8.1 - Corel Suite X6.4 (32bit) mit X6.4Hotfix1 - ein paar alte Corel Draw und Photopaint Versionen schwirren auch noch rum

  5. #5
    Erfahrener Benutzer Profi Member
    Registriert seit
    24.03.2012
    Beiträge
    862

    Standard

    Hallo,

    Zitat Zitat von norre Beitrag anzeigen
    ...vielleicht geht das auch anderstrum?
    Ja, das geht auch:



    Das Makro ist in der angehängten Excel-Datei enthalten.

    Excel und CorelDraw müssen laufen.
    In CorelDraw muss eine Datei geöffnet sein.
    Im VBA-Code muss die CorelDraw-Version angepasst werden:

    Code:
    Sub bspl()
        Dim CDraw
        Dim Erster As Integer, Letzter As Integer, z As Integer
        Dim H As Double
        Dim Version As String
        Dim wert As Boolean
        
        Version = "17"
        
        H = 29.7 / 2
        Erster = 1
        wert = True
        z = 1
        Do While wert
            z = z + 1
            If Cells(z, 1).Value > 0 Then Letzter = Cells(z, 1).Value
            wert = Cells(z, 1).Value > 0
        Loop
    
        Letzter = 20
        Set CDraw = GetObject("", "CorelDraw.Application." & Version)
        With CDraw
            .ActiveDocument.Unit = 4
            Set bs = .ActiveDocument.CreateBSpline(Letzter, False)
            For i = Erster To Letzter
                If i = Erster Or i = Letzter Then
                    bs.ControlPoints(i).SetProperties Cells(i + 1, 1).Value, Cells(i + 1, 2).Value, True
                Else
                    bs.ControlPoints(i).SetProperties Cells(i + 1, 1).Value, Cells(i + 1, 2).Value, False
                End If
            Next i
            .ActiveLayer.CreateBSpline bs
        End With
        Set CDraw = Nothing
    End Sub
    Für X6 müsste also Version = "16" stehen.
    (Getestet mit Excel 2013 und CorelDraw X6/X7)

    Falls es jemand lieber per Hand nachbauen möchte:
    Die Formel in Zelle B2 ist: =SIN(A2)*5+(29,7/2)
    (Neuerdings treiben ja die längst tot geglaubten Makro-Viren wieder ihr Unwesen)

    Gruß

    Koter
    Angehängte Dateien Angehängte Dateien
    W7pro|Corel X4/X7(64 Bit)

  6. #6
    Neuer Benutzer Junior Member
    Registriert seit
    03.12.2016
    Beiträge
    29

    Standard Respekt

    Super,

    das wird ja immer besser. Vielen Dank, Norbert

    Edit: Habe es gerade mit X8 getestet und es funktioniert tadellos. Chapeau.
    Geändert von nowa (24.12.2016 um 13:38 Uhr)

  7. #7
    Neuer Benutzer Junior Member
    Registriert seit
    03.12.2016
    Beiträge
    29

    Standard

    Nur Interesse halber...
    ich bin ja jetzt nicht so der Virtual Basic Programmierer (Menschen mit dem Namen Norbert haben noch mit Fortran IV gearbeitet und mit teco editiert )

    Für was wird denn die Konstante H ( H = 29.7 / 2 ) definiert und taucht dann nicht mehr auf ?

    Aber für mich ist das überhaupt ein Rätsel, wie Excel die Daten in das Corel beamt

    Nochmals vielen Dank für diese tolle Erweiterung.

    Frohes Fest

    Norbert

  8. #8
    Erfahrener Benutzer Profi Member
    Registriert seit
    14.12.2011
    Ort
    Bavaria
    Beiträge
    3.969

    Standard

    Hallo Namensvetter,
    falls du auf Kurven stehst gäbe es bei Oberon noch den Funktionsplotter, nach 7Tagen kostenplichtig
    https://oberonplace.com/products/plotter/index.htm

    Gruß
    Norre
    Benachrichtigung bei neuen Antworten, schau --> HIER

    Alle Angaben ohne Gewähr
    .
    Win7 64bit & Win8.1 - Corel Suite X6.4 (32bit) mit X6.4Hotfix1 - ein paar alte Corel Draw und Photopaint Versionen schwirren auch noch rum

  9. #9
    Erfahrener Benutzer Profi Member
    Registriert seit
    24.03.2012
    Beiträge
    862

    Standard

    Hallo Norbert,

    Zitat Zitat von nowa Beitrag anzeigen
    Für was wird denn die Konstante H ( H = 29.7 / 2 ) definiert und taucht dann nicht mehr auf ?
    Das ist einfach Schlamperei. Die Variable wurde verwendet um die Kurve vertikal mittig zu positionieren.
    Das habe ich dann aber in die Excel-Formel verlegt und dann vergessen es im VBA-Code zu löschen.

    Es wird aber noch schlimmer:

    Erst wird in der Do-Loop-Schleife die Variable „Letzter“ belegt und danach mit „Letzter = 20“ wieder überschrieben.
    Es ist also egal wie viele Zeilen die Wertetabelle hat, das Makro nutzt nur die ersten 20.

    Das Makro habe ich nur schnell hingepfuscht um zu zeigen dass es geht.

    Diese Do-Loop-Schleife ist auch keine gute Lösung. Wenn etwas schief geht, laufen die Dinger gerne einmal (ergebnislos) bis zum nächsten Stromausfall.

    In der Tabelle einen benannten Bereich anzulegen und diesen im Makro zu verwenden wäre die bessere Lösung:

    Code:
    Sub bspl()
        Dim CDraw As Object
        Dim Werte As Range
        Dim Letzter As Integer
        Dim Version As String
        
        
        Version = "17"
        
        Set Werte = Range("Werte")
        Letzter = Werte.Rows.Count
        
        Set CDraw = GetObject("", "CorelDraw.Application." & Version)
        
        With CDraw
            .ActiveDocument.Unit = 4
            Set bs = .ActiveDocument.CreateBSpline(Letzter, False)
            For i = 1 To Letzter
                bs.ControlPoints(i).SetProperties _
                Werte(i, 1).Value, Werte(i, 2).Value, i = 1 Or i = Letzter
            Next i
            .ActiveLayer.CreateBSpline bs
        End With
        
        Set CDraw = Nothing
    End Sub
    Die Formel für den Namen „Werte“ könnte so aussehen: =INDIREKT("A2:B"&ANZAHL2(Tabelle1!$B:$B))

    Zitat Zitat von nowa Beitrag anzeigen
    ...Aber für mich ist das überhaupt ein Rätsel, wie Excel die Daten in das Corel beamt...
    Der „Beamer“ ist die COM-Schnitstelle. Das ist aber nicht der Anschluss mit dem wir früher unser Modem oder die Maus mit dem Rechner verbunden haben.
    COM steht für „Component Object Model“. Die Zeile Set CDraw = GetObject("", "CorelDraw.Application." & Version) setzt eine Objektvariable die CorelDraw repräsentiert.
    Damit kann Excel dann auf Objekte, Eigenschaften und Methoden von CorelDraw zugreifen.

    Gruß und Frohes Fest

    Koter
    W7pro|Corel X4/X7(64 Bit)

  10. #10
    Neuer Benutzer Junior Member
    Registriert seit
    03.12.2016
    Beiträge
    29

    Standard Danke schön

    Vielen herzlichen Dank für diese kompetente und verständliche Erklärung.

    Einiges hatte ich mir ja schon gedacht und erkannt.

    Frohes Fest, Norbert

Ähnliche Themen

  1. X7: Mauszeiger als Fadenkreuz und Koordinaten
    Von OsCor im Forum Corel Draw
    Antworten: 7
    Letzter Beitrag: 26.01.2016, 10:32
  2. Export von Koordinaten als Text oder Tabelle
    Von Highkey im Forum Corel Draw
    Antworten: 3
    Letzter Beitrag: 31.08.2015, 05:37
  3. GPS-Koordinaten automatisch in Orte-Tag umwandeln
    Von ChrisK im Forum Photoshop Elements
    Antworten: 4
    Letzter Beitrag: 19.03.2014, 10:18
  4. Koordinaten am Mauszeiger anzeigen lassen
    Von fucruiser im Forum Corel Draw
    Antworten: 10
    Letzter Beitrag: 02.04.2013, 12:45
  5. Transparenz entlang einer Kurve erstellen
    Von Calvinstefan im Forum Corel Draw
    Antworten: 3
    Letzter Beitrag: 23.03.2010, 12:15

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •