Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Schriftfelder

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:  Schriftfelder (1634 mal gelesen)
Philipp-M
Mitglied
Bauzeichner


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

Beiträge: 157
Registriert: 15.06.2004

AutoCAD LT 2021
Windows 7
Plotter HP-DJ-T1100
Drucker Olivetti 200MF
Drucker Olivetti mf201

erstellt am: 13. Aug. 2009 08:54    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,
stelle mir gerade einen automatischen Schriftkopf zusammen. Frage: wenn ich bei einem Layout bei Revisionsdatum und Revisionsnummer nichts ausfülle, da es noch keine Revision gibt kommt beim Schriftfeld Revisionsdatum und Rev.nummer ----. Diese werden auch gedruckt. Kann ich das irgendwie verhindern, es sollte einfach nicht gedruckt werden.

Danke schon mal im Voraus

------------------
Philipp

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: 13. Aug. 2009 13:58    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 Philipp-M 10 Unities + Antwort hilfreich

Hi,
so ganz weiß ich nicht, was Du tust/vorhast.
Woraus holt sich Dein Schriftfeld seine Info?
Warum benutzt Du überhaupt ein Schriftfeld und nicht (für diese 2 Einträge) ein "normales" Attribut?

Weil bislang keine Antwort kam, ne Schmiererei, weil ich derzeit ein bißchen mit VBA rumspiele:

Code:
Sub FelderOhneInhaltWeiss()
Dim a%
Dim lay As AcadLayout
Dim blk As AcadEntity
Dim ent As AcadEntity
Dim varAttributRef
Dim color As AcadAcCmColor
Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.18")
Call color.SetRGB(255, 255, 255)

For Each lay In ThisDrawing.Layouts
If lay.Name <> "Model" Then
    For Each blk In lay.Block
        If TypeOf blk Is AcadBlockReference Then
            If blk.HasAttributes Then varAttributRef = blk.GetAttributes
            For a = LBound(varAttributRef) To UBound(varAttributRef)
                If varAttributRef(a).TextString = "----" Then
                    varAttributRef(a).TrueColor = color
                    Else: varAttributRef(a).color = acByBlock
                End If
            Next a
        End If
    Next blk
End If
Next lay
End Sub



Setzt Dir die TrueColor von allen Attributen in allen Blöcken in allen Layouts auf 255,255,255 (also weiße Schrift auf weißem Grund), wenn der Inhalt = "----" ist.
Aber das ist nicht wirklich sinnvoll in meinen Augen zumindest:
a) weil der "code" nicht schön sein wird, ich bitte hier ausdrücklich um Mäkeleien/Verbesserungesvorschläge 
b) weil Programmierkrücken immer blöde sind >
c) weil man das vielleicht doch besser anders lösen sollte (s.o. Vorschlag mit "normalem" Attribut ohne Feld)
d) weil das aus meinen Testdaten entstanden ist und damit wahrscheinlich nicht auf Deine Bedürfnisse zugeschnitten ist.

Hab jetzt auch lang überlegt, ob ich es überhaupt reinstellen soll, erhoffe mir aber konstruktive Kritik an meinem Geschmiere, so haben wir vielleicht beide was von Deiner Frage 

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

System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

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


Ex-Mitglied

erstellt am: 13. Aug. 2009 14:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi runkelruebe,

kleine Korrektur und dann noch ein Vorschlag. Der zu tauschende Teil wäre:

Code:
If blk.HasAttributes Then
  varAttributRef = blk.GetAttributes
  For a = LBound(varAttributRef) To UBound(varAttributRef)
      If varAttributRef(a).TextString = "----" Then
        varAttributRef(a).TrueColor = color
      Else
        varAttributRef(a).color = acByBlock
      End If
  Next a
End If
...sodaß die 'For...Next'-Schleife nicht angesprungen wird, wenn die BlockReference keine Attribute hat.

Und der Vorschlag wäre dann noch, nicht die Farbe des Attributs auf RGB(255,255,255) zu setzen (denn in diesem Fall ist die Originalfarbe verloren und ob diese dann auf acByBlock zu setzen ist oder nicht?), sondern die Eigenschaft '.Visible' zu verwenden, also:
varAttributRef(a).Visible = False  'bzw. zum Sichtbarmachen auf True

Nachteil dieser Variante allerdings: diese Eigenschaft ('.Visible') kann nicht von AutoCAD aus gesteuert werden, damit kann man ohne Programmierung den Wert nicht mehr umsetzen.

- alfred -

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 13. Aug. 2009 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 Philipp-M 10 Unities + Antwort hilfreich

geht es hier denn um Acad oder um Mech ?

------------------
die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk)

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

Philipp-M
Mitglied
Bauzeichner


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

Beiträge: 157
Registriert: 15.06.2004

erstellt am: 13. Aug. 2009 14: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

erstmal danke.

die infos werden aus den Planeigenschaften im Manager für Planungsunterlagen, die ich zuvor dort eingebe. Ich möchte nur einen Plankopf erarbeiten, bei den ich mehrere Schriftfelder einfüge. Sollte ein Schriffeld leer bleiben weil nicht ausgefüllt wurde soll da eben nicht ---- stehen sonder nichts. Habe jetzt aber gesehen dass wenn ich einfach ein Leerzeichen eingebe ich den gewünschten Effekt habe. Solltet ihr noch einen anderen Vorschlag haben bin ich trotzdem dankbar, beim Programmieren kenne ich mich nähmlich nicht so aus und dann müsste ich es auch bei meinen Kollegen einstellen und das möchte ich nicht.

------------------
Philipp

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


Ex-Mitglied

erstellt am: 13. Aug. 2009 14:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Phillip, 
Zitat:
Habe jetzt aber gesehen dass wenn ich einfach ein Leerzeichen eingebe ich den gewünschten Effekt habe
...wenn Du WO einen Leerschritt eingibst?

Wenn Du mit 'Leerschritt eingeben' meinst, dass Du diesen Leerschritt im Attributswert eingibst, dann ist Deine Beschriftungsfunktion dieses Attributs aber auch aufgehoben! Sprich wird später mal eine Revision/Datum vergeben, wird das Attribut nicht mehr befüllt.

- alfred -

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

Philipp-M
Mitglied
Bauzeichner


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

Beiträge: 157
Registriert: 15.06.2004

erstellt am: 13. Aug. 2009 15:24    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

nein, ich gebe das Leerzeichen beim Plansatz unter Rev.nummer und Rev.datum ein. ist zwar mehrarbeit, aber zumindest bleibt das Attribut erhalten.

------------------
Philipp

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



Simulationsingenieur (m/w/d) Insassenschutz
Die besten Köpfe für die unterschiedlichsten Aufgaben finden. Menschen und Technologien verbinden, und zwar täglich aufs Neue - dafür schätzen unsere Kunden FERCHAU. Unterstütze uns: als ambitionierte:r Mitarbeiter:in für einen unserer Kunden, der wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte OEMs und Zulieferer der Automobilindustrie und überzeugen täglich mit fundierter Expertise und fachlichem Know-how....
Anzeige ansehenWeitere: Ingenieure und technische Berufe
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: 13. Aug. 2009 21:43    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 Philipp-M 10 Unities + Antwort hilfreich


2009-08-13-vba-attr.txt

 
N'Abend,
Also abfliegen tut das Ding auch ohne die kleine Korrektur im Bereich der Attributsschleife nicht, aber nur, weil ich das array nicht leer mache und wenn der Block ohne Attribute nicht der erste ist, der kommt, sonst tschüß 
Also: Korrektur natürlich sinnvoll!

>>  varAttributRef(a).Visible = False  'bzw. zum Sichtbarmachen auf True
>>  Nachteil dieser Variante allerdings: diese Eigenschaft ('.Visible') kann nicht von AutoCAD aus gesteuert werden,
>>  damit kann man ohne Programmierung den Wert nicht mehr umsetzen.

Für mich damit Ausschlußkriterium. Funktionieren tut es aber selbstverständlich trotzdem, dann auch gleich mit ner kleinen Umstellung, so dass Werte <> "----" immer wieder sichtbar/acByBlock werden.

Per PM kam noch :

>>  Set color = new AcadAcCmColor  -> nicht so versionsanfällig

OK, das andere kam aus dem ACAD-Hilfe-Beispiel ;-)

>>  auf isLayout prüfen, erspart dieses lay.Name <> "Model" und läßt XRefs außen vor

Ich verstehe jetzt den Vorteil einer Änderung nicht. Ich frage doch mit For Each lay In ThisDrawing.Layouts schon nur die Layouts ab und dort mit TypeOf blk Is AcadBlockReference sollte auch alles ausreichen? Allerdings werden XRefs trotzdem mit angesprochen. hmm, denk ich nochmal drüber nach, es werden ja wohl keine blocklosen Attribute drin sein. ;-)

Nachdem es aber mehr oder weniger OffTopic ist, denn Philipps Frage ist ja gelöst, breche ich hier ab. Vielen Dank für alle Ratschläge! Einarbeitungen anbei.

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

System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

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