Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Punktnummern und Koordinaten

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
  
PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
Autor Thema:  Punktnummern und Koordinaten (1152 mal gelesen)
feffi
Mitglied


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

Beiträge: 4
Registriert: 07.03.2007

erstellt am: 07. Mrz. 2007 08:48    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,

ich habe folgendes Problem.
Die jetzige Arbeitsweise ist folgende:
Es wird ein Block in der Zeichnung gesetzt. Dazu wird ein Text daneben gesetzt. Der Einfügepunkt ist aber nicht der gleiche wie der vom Block. Der Text heißt z.B "P1". Nun wird der Block und der Text in einer Art Matrix angeordnet. Also habe ich z.B. 7 Zeilen und 5 Spalten dieses Blockes und Textes. Als nächstes werden alle Texte ausgewählt und über einen Befehl hochgezählt. Befehl kenne ich leider nicht. Jetzt habe ich also eine fortlaufende Nummer. Diese Nummern und die Koordinate des zugehörigen Blockes werden dann per paste & copy in eine Datei geschrieben.

Dies vorgehensweise ist sehr zeitaufwendig.
Ich habe mir nun gedacht anstatt des Textes einen neuen Block zu definieren, der  das Attribut Punktnummer enthält. Nun diesen Block auslesen und in eine Datei schreiben. Mein Problem ist nun kann ich das kopierte Attribut auch hochzählen und dann über VBA auslesen und in eine Datei schreiben.
Ich kenne mich leider nicht so mit ACad aus. Benutzte selber nur Microstation.

Wie kann ich per VBA meine ausgewählten Objekte ansprechen? In der Hilfe hab ich nicht viel gefunden. Bitte mal ein kleines Beispiel zeigen. Zum Besipiel habe ich 5 Blöcke markiert. Ich will nun wissen, wie die Blöcke heißen, welche Koordinaten die Blöcke haben und ob dort Atribute dran hängen.

Vielen Dank
Stefan

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

Mike_mair
Mitglied
CAD&CAE Administrator


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

Beiträge: 53
Registriert: 09.07.2004

Software aktuell:
AutoCAD 2005
PitCup 7.0 SP 2 (ARX Stand: 20.Juni 2005)
Plancal
Microstation
Tricad
Software gerade in Umstellung:
AutoCAD MEP 2011
Betriebsystem:
Windows 7 64bit
Hardware:
Dell Precision T3500
Intel Xeon
4 GB Ram
NVIDIA Quadro FX1800

erstellt am: 17. Mrz. 2007 15:22    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 feffi 10 Unities + Antwort hilfreich

Bei dieser Funktion können nach auführen des Befehls nur Blöcke als Objekte gewählt werden. Dann wird für jedenblock der Blockname und und sofern der Block Attribute hat alle Attribut Tag's und eingegeben Attribut Texte ausgelese....

---------------------------------------------------------------

Option Explicit
Option Base 1
Public Sub GetBlockInfo()

'########### SELECT ANWEISUNG ##########
'Selection Set deklarieren
    Dim objSelection As AcadSelectionSet

'Fehlerbehandlung
On Error Resume Next
   
'########### Neuen SelectionSet erstellen bzw. bestenden verwenden ############
    Set objSelection = ThisDrawing.SelectionSets.Add("ssBlock")
        If Err Then
            Err.Clear

'Fehlerbehandlung
On Error GoTo Hell
            Set objSelection = ThisDrawing.SelectionSets.Item("ssBlock")
        End If
           
'########### Bestenden Objekte aus SelectionSet bereinigen ############
    objSelection.Clear
   
'Filtereinstellungen für Selectionset
'########### Definiert, dass nur Blöcke ausgewählt werden können ############
    Dim intType(1) As Integer
    Dim varValue(1) As Variant

    intType(1) = 0: varValue(1) = "insert"
         
    objSelection.SelectOnScreen intType, varValue
   
    Dim objBlockRef As AcadBlockReference
    Dim intCount As Integer
    Dim varAttribute As Variant
    Dim strMessage As String
   
   
'########### Schleife für jeden Block in der Auswahl ############
    For Each objBlockRef In objSelection
'########### Blockname auslesen ############
        strMessage = "Blockname: " & objBlockRef.Name
       
        If objBlockRef.HasAttributes Then
            varAttribute = objBlockRef.GetAttributes
'########### Abrufen aller Attribute mit Tag und Text ############
            For intCount = LBound(varAttribute) To UBound(varAttribute)
                strMessage = strMessage & vbCr & "Att. Tag: " & varAttribute(intCount).TagString _
                                & " --> Value: " & varAttribute(intCount).TextString
            Next
        End If
       
    MsgBox strMessage
               
    Next

Exit Sub
'Fehlerbehandlung
Hell:
    MsgBox Err.Number & vbCr & Err.Description
    Exit Sub
End Sub

------------------
Michael Mair

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

feffi
Mitglied


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

Beiträge: 4
Registriert: 07.03.2007

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

Vielen Dank für die Antwort. Hat prima geklappt.
Ich habe den code so umgebaut, dass ich jetzt die Attribute verändere und deren Koordinaten in eine Datei auslese. Das auslesen der Blöcke geschieht ja sehr durcheinander. Ich vermute mal das es die Reihenfolge der Datenbank entspricht. Ist es möglich die Blöcke von oben links nach unten rechts auszulesen?

Stefan

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

Mike_mair
Mitglied
CAD&CAE Administrator


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

Beiträge: 53
Registriert: 09.07.2004

Software aktuell:
AutoCAD 2005
PitCup 7.0 SP 2 (ARX Stand: 20.Juni 2005)
Plancal
Microstation
Tricad
Software gerade in Umstellung:
AutoCAD MEP 2011
Betriebsystem:
Windows 7 64bit
Hardware:
Dell Precision T3500
Intel Xeon
4 GB Ram
NVIDIA Quadro FX1800

erstellt am: 18. Mrz. 2007 20: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 Nur für feffi 10 Unities + Antwort hilfreich

Ja das stimmt! Wohin spielst du den deine Werte! ASCII, Excel, Access???

Weil wenn du es nach Excel oder Access ausliest dann würde ich mal sagen, das es sortieren dort wesentlich einfacher geht.

------------------
Michael Mair

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

feffi
Mitglied


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

Beiträge: 4
Registriert: 07.03.2007

erstellt am: 25. Mrz. 2007 15: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

Es soll eigentlich nur eine TXT-Datei sein, die in eine neue Zeichnungsdatei eingefügt werden soll. Ist es sonst auch einfach die Werte in einer XLS-Datei zu speichern. Müsste aber direkt aus ACAD erfolgen. Möglichkeit wäre ja eine csv-Datei. Die muss ich aber auch im Nachgang sortieren.

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