Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Dynamische Blöcke mit dynamischen 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
Autor Thema:  Dynamische Blöcke mit dynamischen Attributen (9366 mal gelesen)
Plenz
Mitglied



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

Beiträge: 71
Registriert: 01.09.2010

ACAD Archi 2015

erstellt am: 01. Sep. 2010 10:38    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

Ich beschäftige mich seit kurzem mit dynamischen Blöcken und erwarte vielleicht zu viel, aber vielleicht geht es ja doch irgendwie?

1.) Ich habe eine Schraube konstruiert, deren Abstand zwischen Kopf und Mutter ich stufenlos einstellen kann (je nach Stärke der zu verschraubenden Teile). Aus diesem Abstand errechnet sich die Gesamtlänge der Schraube, die ich in einem Attribut anzeigen lasse. Das klappt auch so weit. Nun möchte ich den Längenwert aber in 5mm-Schritten gerundet haben. Offensichtlich kann man für Attributwerte auch Formeln benutzen, aber über deren Syntax schweigt sich die AutoCAD-Hilfe aus. Wo kann ich mehr darüber lesen?

2.) Ist es möglich, Attributinhalte zu übertragen? Ich habe eine Schnittlinie gezeichnet (also links und rechts jeweils ein Pfeil, eine gestrichelte Linie und ein Attribut mit dem Schnittbuchstaben) und wenn ich z.B. den linken Schnittbuchstaben ändere, soll der rechte automatisch den gleichen Inhalt bekommen.

3.) Gibt es ein Ereignis "Block wurde geändert", das eine VBA-Routine triggern kann? (Eine solche Routine könnte dann z.B. Werte runden oder Attribute kopieren etc.)

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


Ex-Mitglied

erstellt am: 01. Sep. 2010 10:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

herzlich willkommen bei CAD-de! 

>> Offensichtlich kann man für Attributwerte auch Formeln benutzen

Über Schriftfeld geht das und in Schriftfeldern kannst Du dann auch Formeln verwenden.


>> Nun möchte ich den Längenwert aber in 5mm-Schritten gerundet haben

Das kannst Du im Parameter definieren, den Parameter anklicken und im Eigenschaftsfenster den Abstands-Typ auf 'Inkrement' umstellen, dann darfst Du Deine 5mm als Inkrement mitgeben.


>> Ist es möglich, Attributinhalte zu übertragen?

Ja, geht schon, auch wieder über Schriftfeld, aber Du wirst Dich vor Anwendern schützen müssen (z.B. durch eindeutige Hinweise in der Attributsdefinition, dass die nicht das falsche Feld modifizieren, denn dann wäre Deine Schriftfelddefinition weg.


>> Gibt es ein Ereignis "Block wurde geändert", das eine VBA-Routine triggern kann?

Ja ==> ObjectModified.


- alfred -

------------------
www.hollaus.at

Plenz
Mitglied



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

Beiträge: 71
Registriert: 01.09.2010

ACAD Archi 2015

erstellt am: 01. Sep. 2010 14:12    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

>> herzlich willkommen bei CAD-de!  

Danke und auch danke für die schnelle Antwort.

>>Über Schriftfeld geht das und in Schriftfeldern kannst Du dann auch Formeln verwenden.

Kurios: wenn ich SCHRIFTFELD eingebe und in der Auswahlliste "Formel" anklicke, kommt der Hinweis "nur im Blockeditor möglich". Ich bin aber im Blockeditor!

Was aber geht: ATTDEF und dort ein Schriftfeld einbauen. Wobei mir aber immer noch der Syntax für Formeln fehlt. Runden mit int() scheint jedenfalls nicht zu funktionieren. Oder kann der Formelrechner nur Grundrechenarten?


>>Das kannst Du im Parameter definieren, den Parameter anklicken und im Eigenschaftsfenster den Abstands-Typ auf 'Inkrement' umstellen, dann darfst Du Deine 5mm als Inkrement mitgeben.

Nein, so geht das nicht. Ich will ja nicht den dargestellten Abstand staffeln, denn der muss haargenau der Stärke der zu verschraubenden Teile entsprechen. Ich will diesen krummen Abstand als aufgerundete Zahl darstellen.


>> Ja, geht schon, auch wieder über Schriftfeld, aber Du wirst Dich vor Anwendern schützen müssen (z.B. durch eindeutige Hinweise in der Attributsdefinition, dass die nicht das falsche Feld modifizieren, denn dann wäre Deine Schriftfelddefinition weg.

Keine Ahnung, wie das gehen könnte. In einem Schriftfeld kann ich doch nichts per Hand eingeben, wo sollte ich denn Buchstaben ändern? Manuell ändern kann ich nur den Inhalt eines Attributs. Aber wie greife ich darauf zu? Wenn ich ein Schriftfeld erstelle und "Blockplatzhalter" auswähle, erscheinen weder Attribute noch deren Inhalte, sondern nur allgemeine Sachen und dynamische Parameter.


>> Ja ==> ObjectModified.

Danke, das wäre immerhin eine Möglichkeit, wenn nichts anderes klappt.

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


Ex-Mitglied

erstellt am: 01. Sep. 2010 19:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Oder kann der Formelrechner nur Grundrechenarten?

Ziemlich genau dieses, leider. Es gehen schon mathematische Funktionen wie z.B. ABS oder SIN, ... Round oder vergleichbares wüsste ich nicht.


>> Nein, so geht das nicht. Ich will ja nicht den dargestellten Abstand staffeln, denn der muss haargenau der Stärke
>> der zu verschraubenden Teile entsprechen. Ich will diesen krummen Abstand als aufgerundete Zahl darstellen.

Dann leider nein, probier da aber vielleicht mal eine Bemassung einzusetzen statt eines Attributs, das den ermittelten Wert hinschreiben soll.


>> Manuell ändern kann ich nur den Inhalt eines Attributs. Aber wie greife ich darauf zu?

Im Blockeditor erstellst Du ein zweites Attribut und gibst dann dem Inhalt des zweiten Attributs (mit der rechten Maustaste) ein Schriftfeld als Inhalt (und da den Wert des ersten Attributs).


- alfred -

------------------
www.hollaus.at

Plenz
Mitglied



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

Beiträge: 71
Registriert: 01.09.2010

ACAD Archi 2015

erstellt am: 02. Sep. 2010 08: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

>>>> Oder kann der Formelrechner nur Grundrechenarten?

>> Ziemlich genau dieses, leider. Es gehen schon mathematische Funktionen wie z.B. ABS oder SIN, ... Round oder vergleichbares wüsste ich nicht.

Woher weißt du, dass diese Funktionen gehen? Try and Error, oder gibt es eine Doku?


Der Rest mit den Attributen war mir schon klar, aber diese erschienen nicht im Schriftfeld-Editor. Inzwischen weiß ich aber, warum: ich hatte ihnen die gleichen Namen gegeben wie einigen dynamischen Parametern 

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

runkelruebe
Moderator
Straßen- / Tiefbau




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

Beiträge: 8075
Registriert: 09.03.2006

Kinder, kauft Kämme!
Es kommen lausige Zeiten.

erstellt am: 02. Sep. 2010 08: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 Nur für Plenz 10 Unities + Antwort hilfreich

Moin,

>> Woher weißt du, dass diese Funktionen gehen? Try and Error, oder gibt es eine Doku?

>> hier << hat sich mal jmd. die Mühe gemacht, so etwas aufzustellen.
HTH

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
16 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2017 SP1 - deutsch

erstellt am: 02. Sep. 2010 09:12    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 Plenz 10 Unities + Antwort hilfreich

hallo zusammen!

In diesem Zweig gibt es eine tabellarische Auflistung verwendbarer Funktionen, u.a. auch "trunc" und "round".

mfg, Ingo 

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

Plenz
Mitglied



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

Beiträge: 71
Registriert: 01.09.2010

ACAD Archi 2015

erstellt am: 02. Sep. 2010 11:50    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, mit den Formeln komme ich jetzt endlich klar 
trunc(UpdatedDistance/5)*5+5 macht genau das, was ich wollte.

Nur die Sache mit den zwei Buchstaben-Attributen klappt (noch?) nicht. Ich kann beim Erstellen des zweiten Attributs auf den Wert des ersten zugreifen, der Buchstabe erscheint dann auch korrekt, aber das war's. Wenn ich anschließend den ersten Buchstaben ändere, bleibt der zweite unverändert, auch nicht nach REFRESH.

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


Ex-Mitglied

erstellt am: 02. Sep. 2010 11:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

meinst Du mit 'REFRESH' den Befehl '_REGEN'?

Wenn ja, dann mach mal eine Musterzeichnung mit einem solchen eingefügten Block (Beschreibung, wenn viele Attribute drin sind, welche Du meinst) und dann hier ein upload, dann wird aus 'ahnen' ==> 'sehen'. Hilfe zum Upload gibt's >>>hier<<<.

- alfred -

------------------
www.hollaus.at

Plenz
Mitglied



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

Beiträge: 71
Registriert: 01.09.2010

ACAD Archi 2015

erstellt am: 02. Sep. 2010 15:47    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

>> In diesem Zweig[/URL] gibt es eine tabellarische Auflistung verwendbarer Funktionen

Heureka! Die Antwort ist ganz einfach: der Formeleditor funktioniert genau so wie der Taschenrechner KAL, dessen Syntax und Fähigkeiten in der AutoCAD-Hilfe beschrieben ist. (Bei mir in ACAD2006 allerdings mit einem Fehler: rnd() statt round().)

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

Plenz
Mitglied



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

Beiträge: 71
Registriert: 01.09.2010

ACAD Archi 2015

erstellt am: 02. Sep. 2010 15:57    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

>> mach mal eine Musterzeichnung mit einem solchen eingefügten Block (Beschreibung, wenn viele Attribute drin sind, welche Du meinst) und dann hier ein upload

Danke für das Angebot, aber bringt das was? So wie ich das sehe, kann man Schriftfelder in Attributen nur während ATTDEF definieren. Nachträglich hat man über die Eigenschaften des Attributs keinen Zugriff mehr auf das Schriftfeld. Wenn man etwas ändern will, muss man das Attribut löschen und neu machen. Du könntest bei meiner Musterzeichnung also nicht sehen, was ich wie definiert habe. Oder irre ich mich?

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

Plenz
Mitglied



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

Beiträge: 71
Registriert: 01.09.2010

ACAD Archi 2015

erstellt am: 03. Sep. 2010 09:29    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

Nun noch mal zum Thema Attribute aktualisieren.

Ich habe mir eine VBA-Routine geschrieben, die durch ObjectModified getriggert wird. Sie überprüft, ob das übergebene Objekt eine Blockreferenz ist, und wenn ja, wird die Zeichnung regeneriert. Dadurch wird das dynamische Schriftfeld in dem Block aktualisiert.

Dummerweise löst diese Aktualisierung wieder ObjectModified aus, und die Zeichnung wird noch mal regeneriert. Geht das nicht irgendwie eleganter?

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

Ingo Struck
Mitglied
Holztechniker


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

Beiträge: 459
Registriert: 08.01.2010

Intel Core i7-3770
16 GB RAM
AMD FirePro V3900 (FireGL V)
Windows 7 Pro SP1
AutoCAD 2017 SP1 - deutsch

erstellt am: 23. Sep. 2010 07: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 Nur für Plenz 10 Unities + Antwort hilfreich

Hallo Plenz,

Auch Heureka! >10U's 

mfg, Ingo 

------------------
"Umwege erhöhen die Ortskenntnisse!"

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

Jovo
Mitglied


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

Beiträge: 3
Registriert: 15.04.2011

erstellt am: 15. Apr. 2011 15: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 Nur für Plenz 10 Unities + Antwort hilfreich

Hallo zusammen!

Ich versuche gerade in AutoCAD einen dynamischen Block zu erstellen, der folgendes erfüllen soll.

Ich möchte nebeneinander Kreise darstellen, die zueinander einen bestimmten Abstand haben. Wenn ich mit der Maus dan Block "auseinanderziehe, sollten es entsprechend mehr Kreise werden.(das habe ich soweit schon geschafft   ).
Jetzt möchte ich diesen Abstand variieren können (am besten mit einer Eingabemaske oder sowas).
Außerdem würde ich gerne den Durchmesser der Kreise (am besten mit der selben Eingabemaske) ändern können.

Das ganze soll also so ähnlich funktionieren, wie Stabstahlverlegungen von "SOFiCAD" (im Schnitt dargestellt) - nur halt ohne Stabstahlverlegung  

Hoffe, ich habe mein Problem verständlich dargestellt. Für Hilfen schonmal vielen, vielen Dank!

Grüße, Jovo

[Diese Nachricht wurde von Jovo am 15. Apr. 2011 editiert.]

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