Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Bögen mit start end und 3.punkt

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
Autor Thema:  Bögen mit start end und 3.punkt (1814 mal gelesen)
c.schojer
Mitglied



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

Beiträge: 299
Registriert: 23.05.2007

Autocad 2018

erstellt am: 12. Jul. 2007 16: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 hat einer eine Idee wie ich schnell einen Bogen über 3 Koordinaten(Punkte) zeichnen kann??
(es reicht im 2D) (IM VBA)

MFG Chris

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1357
Registriert: 24.07.2002

erstellt am: 12. Jul. 2007 17: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 c.schojer 10 Unities + Antwort hilfreich

Hi Chris,

Schnell gehts über Sendcommand. 

Du kannst Bögen in VBA nur über addarc mit Angabe vom Zentrum, Radius und Start- und Enwinkel Zeichnen. Da müsstest du dir die Punkte und dafür berechen.

Gruß, Carsten

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

c.schojer
Mitglied



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

Beiträge: 299
Registriert: 23.05.2007

Autocad 2018

erstellt am: 13. Jul. 2007 07:08    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

Also ich brauchte das ganze mit den Koordinaten denn ich will den erstellten Bogen dann auch noch zu ner Polylinie hinzufügen!
Hat da einer ne Idee wie man das schnell lösen kann???

(ps ich will ne weiche Wärmedämmung programmieren (WD-Keil)
will aber nicht die Lisp Tools verwenden die im Umlauf sind)

Mfg Chris

[Diese Nachricht wurde von c.schojer am 13. Jul. 2007 editiert.]

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1357
Registriert: 24.07.2002

erstellt am: 13. Jul. 2007 10:30    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 c.schojer 10 Unities + Antwort hilfreich

Hi Chris,

Schau mal hier, vielleicht ist da das passende für dich dabei.

Gruß, Carsten

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

Stelli1
Moderator
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: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 13. Jul. 2007 12:26    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 c.schojer 10 Unities + Antwort hilfreich

Hallo Chris,

warum erzeugst du nicht gleich eine Polylinie.
Hab das mal ein wenig zusammenkopiert.
Klappt aber 

Code:
Option Explicit
Type Fpunkttyp
    Rechtswert As Double
    Hochwert As Double
End Type

Sub Bogensegment()

    Dim p1 As Variant
    Dim p2 As Variant
    Dim p3 As Variant
   
    Dim Punkte(0 To 3) As Double
    Dim FPunkte(1 To 3) As Fpunkttyp
   
    Dim a As Double, b As Double, c As Double
    Dim p As Double, h As Double
    Dim bulge As Double
   
    Dim Bogen As AcadLWPolyline
   
    On Error GoTo exit_sub
    p1 = ThisDrawing.Utility.GetPoint(, Chr$(10) & "1. Punkt:")
    p2 = ThisDrawing.Utility.GetPoint(, Chr$(10) & "2. Punkt:")
    p3 = ThisDrawing.Utility.GetPoint(, Chr$(10) & "3. Punkt:")
    On Error GoTo 0
   
    ' Strecken berechnen
    a = Sqr((p2(0) - p1(0)) ^ 2 + (p2(1) - p1(1)) ^ 2)
    b = Sqr((p3(0) - p2(0)) ^ 2 + (p3(1) - p2(1)) ^ 2)
    c = Sqr((p3(0) - p1(0)) ^ 2 + (p3(1) - p1(1)) ^ 2)
   
    ' Fusspunkt
    p = (c ^ 2 + a ^ 2 - b ^ 2) / (2 * c)
    ' Höhe von Strecke P1->P3 zum Punkt P2
    h = Sqr(a ^ 2 - p ^ 2)
   
    ' Koordinaten der Polylinie (P1->P3)
    Punkte(0) = p1(0)
    Punkte(1) = p1(1)
    Punkte(2) = p3(0)
    Punkte(3) = p3(1)
   
    Dim o As Double
    Dim x As Double
    Dim r As Double
    ' Versatz P1->P3 zum Kreismittelpunkt
    o = c / 2 - p
    x = (c ^ 2 / 4 - h ^ 2 - o ^ 2) / (2 * h)
    r = Sqr((h + x) ^ 2 + o ^ 2)
    ' R-x = Höhe des Bogens zum Scheitelpunkt
   
    ' Punkte für Flächenberechnung
    FPunkte(1).Rechtswert = p1(0)
    FPunkte(1).Hochwert = p1(1)
    FPunkte(2).Rechtswert = p2(0)
    FPunkte(2).Hochwert = p2(1)
    FPunkte(3).Rechtswert = p3(0)
    FPunkte(3).Hochwert = p3(1)
   
    ' Ausbiegung gleich Verhältnis Höhe zur halben Sehne
    bulge = (r - x) / (c / 2)
    ' Richtung (Fläche positiv liegt der Punkt links, negativ leigt der Punkt rechts)
    bulge = bulge * Sgn(gauss_area(FPunkte)) * -1
    ' Polylinie Zeichnen
    Set Bogen = ThisDrawing.ModelSpace.AddLightWeightPolyline(Punkte)
    Bogen.color = acBlue
    Bogen.SetBulge 0, bulge
    Bogen.Update
   
exit_sub:
End Sub

Public Function gauss_area(Punkte() As Fpunkttyp) As Double
  ' Berechnet die Fläche eines Polygons, das durch
  ' Punktkoordinaten gegeben ist
  Dim i As Integer
  Dim Area As Double
  Dim Punktanzahl As Long
  Dim xs As Double, ys As Double, xa As Double, ya As Double
   
  Punktanzahl = UBound(Punkte)
  xs = Punkte(1).Hochwert
  ys = Punkte(1).Rechtswert

  For i = 1 To Punktanzahl
    xa = Punkte(i).Hochwert
    ya = Punkte(i).Rechtswert
       
    Area = Area + (ys + ya) * (xs - xa)
       
    xs = xa
    ys = ya
  Next i
   
  ' der letzte Punkt ist wieder der erste Punkt
  xa = Punkte(1).Hochwert
  ya = Punkte(1).Rechtswert
   
  Area = Area + (ys + ya) * (xs - xa)
   
  ' Rückgabewert
  gauss_area = Area / 2
End Function



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

c.schojer
Mitglied



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

Beiträge: 299
Registriert: 23.05.2007

Autocad 2018

erstellt am: 19. Jul. 2007 09:42    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

Ui danke Vielmals das mit den Polylinien hätte ich eh gebraucht!!

Mfg Chris

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)2023 CAD.de | Impressum | Datenschutz