Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Block einfügen mit geänderten Attributen?

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 wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Block einfügen mit geänderten Attributen? (2565 mal gelesen)
OlliBaer
Mitglied
Dipl. Ing. TGA


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

Beiträge: 19
Registriert: 06.08.2003

erstellt am: 19. Aug. 2003 11:10    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 noch mal...

ich hab mir ein programm geschrieben, welches mir alle blöcke in der Zeichnung anzeigt, die attribute besitzen. bei bedarf kann man die attribute aller blöcke an excel übergeben, ändern und zurücklesen.
manchmal kommt es vor, das ich z.B. eine Teilstrecke (Ts1, 80kg/h, 100Pa/m) vergessen habe und diese nun beim zurücklesen in die zeichnung einsetzen möchte.
(bis dahin klappt auch alles)
der eizusetzende block müsste aber die geänderten attribute haben.

die Frage:
wie kann ich einen block mit geänderten attributen einsetzen?
1. block auswählen
2. Attribute setzen
3. in zeichnung einfuegen

danke, bis dahin Olli

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

Revit 2019, ACMep2019, F360

erstellt am: 19. Aug. 2003 12:32    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 OlliBaer 10 Unities + Antwort hilfreich

hi,
also Du hast die Blöcke nach Excel ausgelesen, berechnest meinetwegen irgendwas ond möchtest die Werte oder was auch immer zurück in den Block schreiben? Wenn ja dann hier der Lösungsansatz:
Beim auslesen das Handle (objBlock.Handle) mit in die Exceltabelle schreiben, über dieses Handle kannst Du den Block schnell wiederfinden und die neuen Werte zuweisen
Set objBlock = ThisDrawing.HandleToObject("Handle")
objBlock.GetAttributes usw....

May it helps!

Harry

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

OlliBaer
Mitglied
Dipl. Ing. TGA


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

Beiträge: 19
Registriert: 06.08.2003

erstellt am: 19. Aug. 2003 12:56    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 für schnelle antwort,

also das zurückschreiben der geänderten attribute in die in der Zeichnungs vorhandenen blöcke funktioniert.
ich übergebe an die exceltabelle den blockname und die momentane ID,
dadurch kann ich jeden block identifizieren.
Ungefähr so (Excel)
Blockname  Objekt-ID [KG/H] [WATT] [TEMP] [NR]
NR3   1074456800 51,55 600 20°C 1
NR3   1074456248 25,78 300 20°C 2
NR3   1074456200 42,96 500 20°C 3
NR3        ->0815<-    0      0      15°C    4


aber wenn ich in der exceltabelle eine spalte einfüge, mit einem blocknamen und einer unbekannten id, soll dieser block mit den  entsprechenden attributen eingefügt werden.

I hope u can help me ;-)

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

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 19. Aug. 2003 13:32    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 OlliBaer 10 Unities + Antwort hilfreich

Wo ist das Problem?
Du mußt ja nur beim Einlesen schauen, ob eine ID in der Excel-Tabelle drin ist oder nicht. Wenn keine ID eingetragen ist, na dann setzt einfach einen Block ein und übertrag einfach die Werte. Noch schöner wäre es, wenn du die neue ID gleich in die Excel-Tabelle reinschreiben würdest.

------------------
Roland

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

OlliBaer
Mitglied
Dipl. Ing. TGA


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

Beiträge: 19
Registriert: 06.08.2003

erstellt am: 19. Aug. 2003 14: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

so, jetzt habens wir ja bald :-)
wenn ich mittels

Set blockref = ThisDrawing.ModelSpace.InsertBlock(einfuege, blockname, 1, 1, 1, 0)

einen block einfuege, wie kann ich im vorfeld (vor dem setzen) die attribute ändern??!!

Das war eigentlich die ursprünglich frage ;-)

gruß olli

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

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 19. Aug. 2003 14:31    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 OlliBaer 10 Unities + Antwort hilfreich

Gar nicht, du mußt ihn zuerst einfügen, dann kannst du die Attribute ausfüllen.

------------------
Roland

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

OlliBaer
Mitglied
Dipl. Ing. TGA


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

Beiträge: 19
Registriert: 06.08.2003

erstellt am: 19. Aug. 2003 15:05    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

das mach ich ja, aber wie kann ich den soeben eingesetzten block identifizieren?, so dass ich die attribute einlesen bzw. ändern kann.
das problem ist:
bei der übergabe von excel an acad, wird die tabelle von oben nach unten abgearbeitet.
wenn nun 30 blöcke in der tabelle stehen und an der stelle 10 ist ein block der nicht in der zeichnung ist!, wird dieser eingefügt und muss dann geändert werden.
danach müssen die blöcke 11-30 weiter geändert werden.

Hier werden sie geholfen

Olli :-)

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

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 19. Aug. 2003 15: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 Nur für OlliBaer 10 Unities + Antwort hilfreich

Das ist ja klar, einfach den Block einfügen und gleich die Attribute ausfüllen. Du hast ja mit Set blockref = ThisDrawing.ModelSpace.InsertBlock(einfuege, blockname, 1, 1, 1, 0) den Block schon eingefügt. Jetzt mußt du nur die Daten in die Attribute von blockref einsetzen, dann setzt du Set blockref = nothing, nun machst du einfach mit deiner Schleife weiter.

------------------
Roland

[Diese Nachricht wurde von RoSiNiNo am 19. August 2003 editiert.]

[Diese Nachricht wurde von RoSiNiNo am 19. August 2003 editiert.]

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 19. Aug. 2003 16:28    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 OlliBaer 10 Unities + Antwort hilfreich

jepp, jetzt kapier ich was Du meinst. Wie oben beschrieben gehts, aber ist der Block denn nicht etwas verloren an "irgendeiner" Koordinate?? Vielleicht wäre da noch eine Benutzeraktion in AutoCad angebracht. Las mal hören wie du Dir das vorgestellt hast, ist interessant.

Harry
Ps:irgendwas mit Kälte und oder Druckverlust?

[Diese Nachricht wurde von harryk am 19. August 2003 editiert.]

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

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 19. Aug. 2003 16: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 OlliBaer 10 Unities + Antwort hilfreich

Natürlich wäre es gescheit auch nach einem Einsetzpunkt zu fragen, bleibt aber Olli überlassen.

------------------
Roland

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

OlliBaer
Mitglied
Dipl. Ing. TGA


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

Beiträge: 19
Registriert: 06.08.2003

erstellt am: 19. Aug. 2003 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

Ui, was hat sich denn jetzt getan :-))
bin jetzt zu hause und kann es nicht mehr testen.

muss ich aber morgen mal ausprobiere.
danke schon mal.

an harryk:
natürlich wird beim einfügen nach dem einfugepunkt (einfuege) gefragt.:einfuege = ThisDrawing.Utility.GetPoint(, "Einfügepunkt wählen")
(s.Forum:block einfuegen?? einmal anders) ;-)

und ja, das ganze soll mit meinem raumbuch (EXCEL)verknüpft sein, wenn es denn mal klappt.
so soll es dann möglich sein, raumnummern zu vergeben und die anderen daten (temp.,m², raumname, etc)aus excel zu holen und entsprechend zuzuordnen... dito für Teilstrecken (heizung, kälte) und stücklisten (heizkörper)
im prinzip, für jeden block mit attributen.

tschau,bis morgen Olli

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

RoSiNiNo
Mitglied
Konstrukteur


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

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 20. Aug. 2003 06: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 Nur für OlliBaer 10 Unities + Antwort hilfreich

Hallo Olli,
kenn mich zwar in Access nicht so gut aus, aber das was du möchtest, wäre doch ideal dafür, glaubst du nicht.

------------------
Roland

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

OlliBaer
Mitglied
Dipl. Ing. TGA


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

Beiträge: 19
Registriert: 06.08.2003

erstellt am: 20. Aug. 2003 07:56    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

Hi Roland,
ne ich glaube excel ist die richtige wahl, da ich die ganzen berechnung auch damit automatisiere und für mich wesentlich flexibler ist.

tschau olli

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

Revit 2019, ACMep2019, F360

erstellt am: 20. Aug. 2003 08:32    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 OlliBaer 10 Unities + Antwort hilfreich

Obwohl Access ne Datenbankkrükke sein soll, gegenüber Excel ist das eine Rakete. Hab unsere Zeichnungs Projektverwaltung auf mdb umgestellt und spreche die mit ADO an, geht wie Schmitz's Katze. Jetzt folgt der mySql Server um noch mehr Dampf zu kriegen.

Allerdings lassen sich Excel Dateien auch als Datenbank ansprechen, in Verbindung mit dem Flexgrid Steuerelement kannst Du den grössten Teil direkt von AutoCad aus steuern und benutzt Excel nur noch zum Rechnen und für die Berichte.

Gruss,
Harry

[Diese Nachricht wurde von harryk am 20. August 2003 editiert.]

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

OlliBaer
Mitglied
Dipl. Ing. TGA


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

Beiträge: 19
Registriert: 06.08.2003

erstellt am: 20. Aug. 2003 10:00    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

ja, du hast ja recht im bezug auf ne datenbank

aber ich brauch excel nicht als datenbank, sondern als berechnungstool...

tschau olli

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



Anzeige:Infos zum Werbeplatz >>

AVC Properties Palette CAD APP für Allgemeine Werkzeuge, Möbel, Messestände

Plugin AVC_Palette for AutoCAD and BricsCAD The plugin adds to the properties of all objects in the drawing the NAME property, like blocks. Also a new section Metric will be added to the properties of solids. Density and price of materials. Editing covers and edge bandings.

OlliBaer
Mitglied
Dipl. Ing. TGA


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

Beiträge: 19
Registriert: 06.08.2003

erstellt am: 21. Aug. 2003 07: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

@RoSiNiNo

Das war genau der Hinweis, der mir fehlte und so einfach...
jetzt klappt alles:

einfuege = ThisDrawing.Utility.GetPoint(, "Bitte den Einfügepunkt für Block " & name & " wählen")
Set blockref = ThisDrawing.ModelSpace.InsertBlock(einfuege, name, 1, 1, 1, 0)

Tatts3 = blockref.GetAttributes

'alle in Merker2 (Excel) gespeicherten Werte an Tatts3 übergeben 
'in count2 ist die Menge der Attribute gespeichert

  I = 0
  For I = 0 To count2 - 1
  Tatts3(I).TextString = Merker2(I + 2)
  Next
 
    blockref.Update
    blockref = Nothing

danke an alle,

  Olli

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