Hot News:
   

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  ACAD 2005 VBA

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

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
  
Exklusives EDU-Programm für RTX PRO Blackwell, eine Pressemitteilung
Autor Thema:  ACAD 2005 VBA (762 mal gelesen)
ToniM
Mitglied
Rekrut


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

Beiträge: 17
Registriert: 14.07.2005

AutoCAD 2005

erstellt am: 14. Jul. 2005 14: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

Hallo zusammen,

ich befasse mich seit 3 Tagen mit ACAD VBA und
hab noch ordentlich Schwierigkeiten damit.
Vielleicht könnte mir jemand bei der Bewältigung
meines/r Problems/e helfen?

Ich möchte gerne einen vorhandenen Block mit VB (u.a. mit Attributen)
in eine Datei einfügen und anschließend sämtliche mit meinen
Variablen die Attribute ausfüllen.

Wie man zu den Attributen kommt weiß ich (glaube ich zumindest).
Code:

Dim Var as Integer
Dim elem As Object
Dim blkdef As AcadBlock


Set blkdef = ThisDrawing.Blocks.Item("SCHRIFTKOPF_NEU")
For i = 0 To blkdef.Count
Set elem = blkdef.Item(i)
Var = StrComp(elem.EntityName, "AcDbAttributeDefinition")
Next i

Ich würde mich sehr über eine Hilfestellung/Anregung/etc. freuen.

Grüße Martin

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...,
einige AutoCADs 200x &
SWX 2kX

erstellt am: 14. Jul. 2005 21:53    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 ToniM 10 Unities + Antwort hilfreich

kannst du es genauer beschreiben ?

wenn du eine "externe" dwg datei einfügen willst, wird somit zum Block, (bitte mich nicht gleich zur sau machen, es ist ja in Wahrheit viel komplizierter) dann schau mal:

ThisDrawing.Import importFile, InsertPoint, scalefactor

, ansonsten:

ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "BLOCKNAME", 1#, 1#, 1#, 0)

------------------
MfG Proxy

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

ToniM
Mitglied
Rekrut


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

Beiträge: 17
Registriert: 14.07.2005

AutoCAD 2005

erstellt am: 15. Jul. 2005 08:20    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


Eigenschaften_Attribut_Text.JPG

 
Danke Proxy, das einfügen funktioniert jetzt!

Hier ist ein Teil von meinem Programm:

Private Sub cmd_testFile_Click()
   
    Dim insPnt(2) As Double
    Dim blkSK, blkEL, temp
    Dim i, k As Integer
   
    insPnt(0) = 0
    insPnt(1) = 0
    insPnt(2) = 0
   
    Set blkSK = ThisDrawing.ModelSpace.InsertBlock(insPnt, BlockName, 1#, 1#, 1#, 0)
    Set blkSK = ThisDrawing.Blocks.Item(BlockName)  '**????**'
   
    k = 0
    For i = 0 To blkSK.Count - 1 Step 1
        Set blkEL = blkSK.Item(i)
        If StrComp(blkEL.EntityName, "AcDbAttributeDefinition") = 0 Then _
            k = k + 1
    Next i
    MsgBox k
   
End Sub

Dieses Programm fügt einen Block ein.
Warum erhalte ich einen Fehler, wenn ich **???**-Zeile weglasse?

Entspricht "EntityName" dem Datentyp eines Items im Block?

Ich kann mit dieser Funktion (siehe Code) herausfinden, ob
ein Item ein Attribut ist oder nicht.
Gibt es eine bessere Variante?

Wie kann ich auf "Bezeichnung", "Eingabeaufforderung" und
"Wert" zugreifen? (Siehe Anhang)

Ich möchte, dass dann in meiner Zeichnung der Text der
einzelnen Variablen zu sehen ist.
Kann man überhaupt "Attribute" dahingehend bearbeiten,
oder muss ich sie durch Textfelder ersetzen?

MfG Martin

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

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