Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Beginn der Führungslinie ermitteln

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:  Beginn der Führungslinie ermitteln (1207 mal gelesen)
pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 15. Nov. 2007 20:02    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


Problemstellung.jpg

 
Hallo Forum!

Ich habe eine Führungslinie und benötige den Endpunkt der Führunslinie der am Kanal liegt (rote Linie - siehe Grafik). Ich werde aus den zahlreichen Attributen des "AcadLeader"-Objekts nicht schlau, kann mir bitte jemand helfen?

Lg Peter

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

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 15. Nov. 2007 20:14    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 pistolpete1 10 Unities + Antwort hilfreich

Hi Peter,

Schau die mal die Eigenschaft der Coordinates an. Da findest du alle Punkte der Führungslinie.

Gruß, Carsten

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 15. Nov. 2007 20:34    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

Danke, hab ich fast befürchtet.
Also einen eindeutigen Anfangspunkt gibt es nicht? Habe gehofft, dass es evtl. so wie bei einer AcadLine ist, die einen End- und einen Startpunkt hat, nur dass bei der Führungslinie vielleicht die Seite mit der Annotation das "Ende" ist.

lg peter

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

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 16. Nov. 2007 07: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 pistolpete1 10 Unities + Antwort hilfreich

Hi Peter,

Die Coordinates geben dir die einzelnen Koordinaten vom Anfang (da wo der Pfeil sitzt) bis zum Ende der Führungslinie an. Im Prinzip ist das genau wie bei einer Polylinie, da du bei der Führungslinie ja auch mehrere Stützpunkte hast.

Gruß, Carsten

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 16. Nov. 2007 18: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


Problemstellung.jpg

 
Hallo Carsten!

Danke für deinen Tipp, jetzt funktioniert es. Allerdings taucht bereits das nächste Problem auf. Ich habe eine Führungslinie mit mehrere "Annotationen", einmal die Polykotierung ("0,8 m" - siehe Grafik) und noch zusätzlich "Stzg->Guss ohne Formstück".

Mit dem folgenden Codestück bekomme ich die "0,8 m" aber müsste da nicht eine Collection von Annotationen sein, die ich auslesen kann?

Code:

            Set leader = entry
            sp = getLeaderStartPoint(leader.coordinates)
            Set annotationObject = leader.Annotation
            If annotationObject.ObjectName = "AcDbMText" Then
                retval = True
                Set mtext = annotationObject
                k.point(0) = sp(0)
                k.point(1) = sp(1)
                k.wert = mtext.TextString
                kotierungen(UBound(kotierungen)) = k
                ReDim Preserve kotierungen(0 To UBound(kotierungen) + 1) As KOTIERUNG
            End If

Lg Peter

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 17. Nov. 2007 19:19    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


Problemstellung.zip

 
Ich habe die Führungslinie in eine eigene Datei kopiert und sie angehängt. Mit meiner Prozedur bekomme ich nur "0,5 m" heraus. Bitte um Hilfe! Ich benötige jedoch die vollständige Information, die dem Leader angehängt ist.

Code:

 
Sub TestLeader()

    Dim lineset As AcadSelectionSet
    Dim entry As AcadEntity
    Dim leader As AcadLeader
    Dim leaderCol As Collection
    Dim annotationObject As AcadObject
    Dim mtext As AcadMText
   
    Set lineset = CreateSelectionSet("LINESET")
    lineset.SelectOnScreen
    For Each entry In lineset
        If TypeOf entry Is AcadLeader Then
            Set leader = entry
            Set annotationObject = leader.Annotation
            If TypeOf annotationObject Is AcadMText Then
                Set mtext = annotationObject
                MsgBox mtext.TextString
            End If
        End If
    Next entry
    lineset.Clear
End Sub

Public Function CreateSelectionSet(Optional ssName As String = "SS") As AcadSelectionSet
On Error GoTo ErrorHandler
    Dim objSelSet As AcadSelectionSet
    For Each objSelSet In ThisDrawing.SelectionSets
      If objSelSet.name = ssName Then
          ThisDrawing.SelectionSets.Item(ssName).Delete
          Exit For
      End If
    Next
    Set objSelSet = ThisDrawing.SelectionSets.Add(ssName)
    Set CreateSelectionSet = objSelSet
    Exit Function
ErrorHandler:
    Debug.Print Error(Err) & " " & Err.Source & " function: CreateSelectionSet"
    Err.Clear
    On Error GoTo 0
End Function


Liebe Grüße,
Peter

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

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 17. Nov. 2007 19: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 pistolpete1 10 Unities + Antwort hilfreich

Hallo Peter,

Das Problem ist, das der Text nicht wie zum Beispiel bei einem Block nicht wirklich zusammengehört. Kannst du da nicht über einen Selectionset mittels Koordinaten den dazugehörigen Mtext ermitteln (zb. den der am nächsten zum Führungstext sitzt) und dann zu dem Führunglinientext hinzufügen?!

Gruß, Carsten

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 17. Nov. 2007 19:37    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 Carsten.

Ja wird nichts nützen, aber woher weiß ich, dass genau zu dieser Führungslinie noch ein zusätzlicher Text gehört? Es könnte ja auch sein, dass es nur eine Meterangabe ist, die keinen weiteren Eintrag besitzt.

Lg Peter

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

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 18. Nov. 2007 13:36    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 pistolpete1 10 Unities + Antwort hilfreich

Hi Peter,

Eine Möglichkeit wäre, den zweiten Punkt der Führungslinie zu nehmen und zu schauen, ob eine Linie diesen als Startpunkt hat. Dann die darauffolgende Linie ermitteln und den Text zu nehmen, der dieser Linie am nächsten steht.
Am besten wäre es natürlich wenn du deine Daten schon vorab in eine Block packen könntest, dann hättest du alles beisammen.

Gruß, Carsten

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 18. Nov. 2007 17:01    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 Carsten,
danke für die Antwort. Ja das wäre optimal, aber leider zeichne ich die Pläne ja nicht.
Ich werde einfach jedes Element der Linie durchlaufen und auf einen Kreuzungspunkt überprüfen. Wenn einer existiert, suche ich weiter und nehme den nächsten Text. Allerdings wird sich da ein Problem ergeben, wenn ich  über Annotation das MText-Objekt hole und die Information über TextString auslese. Denn woher weiß ich, welche der Verzweigungen nicht bereits durch das Annotation-Objekt abgedeckt ist  ?

Ich könnte höchstens die Strings, die ich auf diesem Weg bekomme vergleichen und bei einer Übereinstimmung einen davon verwerfen. Was meinst du?

Liebe Grüße
Peter

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

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 18. Nov. 2007 17:17    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 pistolpete1 10 Unities + Antwort hilfreich

Hi Peter,

Du stellst Fragen. 
Ich denke, das wird die einzige Möglichkeit sein. Entscheiden musst du das aber selber, was du da wie machst, da nur du die verschiedene Möglichkeiten in deinen Zeichnungen kennst.
Soll das eigentlich eine komplette Applikation werden, oder was hast du vor?!

Gruß, Carsten

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 18. Nov. 2007 17:41    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


Problemstellung.jpg

 
Hallo Carsten!

Ich schulde dir ohnehin schon was, denn das halbe Know-How stammt von dir und Wilfried  , vielen Dank!
Ja es wird eine gesamte Applikation. Ich analysiere mit meinem Makro den gesamten Plan und erstelle eine Dokumentationsdatei, welche die Dokumentation jedes Schachtes enthält zb:

Analyse Kanal 1 in Fließrichtung

1.1 m  Schotterstelle
1.2 m  Reduzierung 200 auf 100
....
---------------------------------
Analyse Kanal 2....

Das exportiere ich in HTML genau an eine Wordseite angepasst. Somit kann man die ganze HTML-Seite ins Word kopieren und evtl noch weiter editieren. Ich komme auch nach anfänglichen Schwierigkeiten jetzt sehr gut voran.


Allerdings bei jedem Schritt vorwärts ist wieder einer nach hinten. Jetzt habe die Koordinaten der Führungslinie ausgelesen und dachte dass es so wie bei einer Polylinie ist. ZB. 3 Punkte zu der Grafik (da ja die Linien zu "ohne Formstück" damit nicht zusammenhängen). Allerdings bekomme ich nur den Startpunkt und den Endpunkt, rechts neben "1,2 m" (der obere Knick fehlt mir). Somit wird der Plan auch nicht funktionieren. Das ganze mit SelectionSet zu lösen wird auch schwierig, da ich nicht jede Linie einzeln auf Verzweigungen überprüfen kann  .

Hast du noch eine Idee?
Liebe Grüße
Peter

Code:

Public Function getAdditionalPolyKotierung(leader As AcadLeader, ByRef addInfo As Variant) As Boolean
On Error GoTo ErrorHandler
    Dim retval As Boolean
    Dim i As Integer
    Dim c As Variant
    Dim point1(0 To 2) As Variant
   
    retval = False
    c = leader.coordinates      'hole die Koordinaten
    Debug.Print "  ------"
    For i = 0 To ((UBound(c) - LBound(c) + 1) / 3) - 1
        point1(0) = c(i * 3)
        point1(1) = c(i * 3 + 1)
        point1(2) = c(i * 3 + 2)
        Debug.Print "  # " & point1(0) & " " & point1(1)
    Next i
    getAdditionalPolyKotierung = retval
    Exit Function
ErrorHandler:
    Err.Clear
    getAdditionalPolyKotierung = False
    On Error GoTo 0
End Function

Ausgabe:
  ------
  # 573,113230593814 581,258765323402
  # 570,159954423463 587,788775767831

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