« zurück zur Hauptseite...

Freistellung von Text über Schraffur


Autor: Carsten Engler (2003-12-17 14:45:47)

Hallo Newsgroup,

habe ein kleines Problem mit AutoCAD 2002. Kann ich den Text über
einer Schraffur irgendwie komfortabel freistellen?

Ich habe bisher immer zwischen Text und Schraffur ein Rechteck erzeugt
und mit einer entsprechenden Farbe gefüllt. Funktioniert allerdings
nicht so recht mit schwarzem Text, weil ich dann eine hellgraue
Füllfarbe für das Rechteck wählen muß...

Danke schon mal vorab für etwaige Tips...

Gruß
Carsten

Autor: "Dirk Reichstein" (2003-12-17 14:47:43)

"Carsten Engler" schrieb im Newsbeitrag
news:9gn0uvo1iodsuhvj4jkd8t3drr1l53u2jg@4ax.com...
> Hallo Newsgroup,
>
> habe ein kleines Problem mit AutoCAD 2002. Kann ich den Text über
> einer Schraffur irgendwie komfortabel freistellen?

Die Schraffur anklicken, Objekteigenschaften, Fenster "Inselerkennung" auf
Normal stellen.

Gruss Dirk

Autor: "Dirk Reichstein" (2003-12-17 14:47:43)


Autor: "Dirk Reichstein" (2003-12-17 14:47:43)

"Carsten Engler" schrieb im Newsbeitrag
news:9gn0uvo1iodsuhvj4jkd8t3drr1l53u2jg@4ax.com...
> Hallo Newsgroup,
>
> habe ein kleines Problem mit AutoCAD 2002. Kann ich den Text über
> einer Schraffur irgendwie komfortabel freistellen?

Die Schraffur anklicken, Objekteigenschaften, Fenster "Inselerkennung" auf
Normal stellen.

Gruss Dirk

Autor: "Thomas Kaulen" (2003-12-17 16:51:54)

"Carsten Engler" schrieb im Newsbeitrag
news:9gn0uvo1iodsuhvj4jkd8t3drr1l53u2jg@4ax.com...
> Hallo Newsgroup,
>
> habe ein kleines Problem mit AutoCAD 2002. Kann ich den Text über
> einer Schraffur irgendwie komfortabel freistellen?
>
> Ich habe bisher immer zwischen Text und Schraffur ein Rechteck erzeugt
> und mit einer entsprechenden Farbe gefüllt. Funktioniert allerdings
> nicht so recht mit schwarzem Text, weil ich dann eine hellgraue
> Füllfarbe für das Rechteck wählen muß...
>
> Danke schon mal vorab für etwaige Tips...
>
> Gruß
> Carsten

Hallo,

also zunächst mal die Frage existiert beides schon (also Text und die
darüber verlaufende Schraffur)? oder geht es um Text innerhalb noch zu
schraffierender Flächen ?
Wenn der Text vor der Schraffur erstellt wird ist im Schraffur Menüfenster
unter Optionen die Einstellung "Inselerkennung " "Normal" zu wählen. Wenn
dann die Schraffur erstellt wird beides (Text und Schraffurfläche anwählen
und das Programm stellt den Text frei, auch wenn der Text innerhlb der
Schraffur verschoben wird bleibt die Freistellung hinter dem Text erhalten
und die Verknüpfung funktioniert auch dann noch, wenn der Text
zwischenzeitlich aus der Schraffur herausgeschoben und anschließend wieder
in die Schraffurfläche geschoben wird.
Dies funktioniert allerdings nicht bei Objektbezogener Schraffur wie sie
z.B. beim ADT in Wänden erzeugt wird.
Vorgehensweise dann und sofern beides schon existiertist wie nachstehend, es
sei denn man kann die Schraffur schnell und ohne Probleme neu erzeugen -
dann wie oben beschrieben vorgehen.

Ich erzeuge mit nachstehendem Lisp-Programm ("recw") ein Rechteck hinter dem
Text, dessen Größe durch Anwahl diagonal gegenüberliegender Punkte definiert
wird.
Dieses Rechteck wird mit einer Solid-Schraffur gefüllt, deren Farbe beim
Plotten über die zugeordnete Plotstiltabelle die Rasterzuordnung 0% bekommt
(dass heißt sie ist zwar am Bildschirm sichtbar, wird aber faktisch nicht
geplottet.) Die umfassungslinie der Solid-Schraffur hat wiederum einen
Linientyp dessen Punktabstabd bei Standard-Textgrößen gerade mal noch als
Punktlinie erkennbar ist . Die zugeordnete Farbe ist wiederum über die
Plotstiltabelle mit Stiftstärke 0,01mm verknüpft, so dass man die Punkte der
Punktlinie im Plott nicht sieht, auf dem Bildschirm aber die Eckpunkte
fangen kann um die Geometrie der Solid-Schraffurfläche gegebenenfalls zu
verändern.
Beide Elemente landen auf dem selben Layer wie das Objekt (Text oder was
auch immer) welches freigestellt werden soll.muß nach Definition der
Eckpunkte angewählt werden, der Layer des angewählten Objekts wird ermittelt
und das Solid bzw. die Umfassungslinie desselben entsprechend erzeugt.
Damit die Anzeigereihenfolge zwischen Solid-Fläche und Text bzw.
freizustellendem Objekt stimmt wird das Objekt bzw. der Text dann nochmals
kopiert und das ursprünglich angewählte Objekt gelöscht.
Hört sich komplizierter an als es ist, denn im Endefekt muß nur dreimal
geklickt werden um eine Solche Fläche anzulegen.
Das Lispprogramm ist als Schleife ausgelet, weil ich in der Regel erst die
Texte oder Bemmassungen erzeige und sie dann in einem Rutsch freistelle
sowie erforderlich.

Probleme gibt es leider, weil Autocad sich manchmal die Reihenfolge der
Objekte nicht korrekt merkt und die Solidfläche auf einmal wieder vor den
Text bzw. das freizustellende Objekt stellt, so dass dieser nicht mehr zu
sehen ist.(Dies ist bei Autocad allgemein eine sehr schlecht gelöste Sache
aber leider nicht zu ändern)
Dafür habe ich mir die ebenfalls angehängte Lisproutine "kol" geschrieben,
welche das ausgewählte Objekt an die gleiche Stelle kopiert und das
ursprüngliche löscht. Dadurch wandert das kopierte Objekt in der
Objektdatenbank der *.dwg Datei nach Vorne (vor die Solidfläche) und wird
auch vor dieser dargestllt.) Der Befehl "Anzeigereihenfolge versagt leider
beim Plotten bzw. bei Xrefs und wird von mir daher nie hierfür benutzt.

Gruß
Thomas Kaulen

P.s.
Ich bin kein Lisp-Spezialist, die beschriebenen Funktionen funktionieren bes
timmt auch auf anderem Wege und lassen sich mit Abbruch-Routinen und
Kontrollen von Falscheingaben versehen, aber so wie beschrieben
funktionieren sie zumindest.
Verbesserungsvorschläge werden gern entgegengenommen.


Lisproutine "recw"

(defun c:Recw (/ pt1 pt2 pt3 pt4)
(setvar "cmdecho" 0)
(setvar "orthomode" 0)
(setvar "osmode" 0)
(setq oldlay (getvar "clayer"))
(setq pt1 (getpoint "Erste Ecke markieren: "))
(while (/= pt1 nil)
(princ "\nGegenüberliegende Ecke markieren: ")
(setq pt3 (getpoint))
(setq pt2 (list (car pt3) (cadr pt1)))
(setq pt4 (list (car pt1) (cadr pt3)))
(prompt "\nBitte Objekt auf Ziel-Layer für die Freistellung wählen ")
(setq zo (entget (car (entsel))))
(setq zl (cdr (assoc 8 zo)))
(setq Objekt (cdr (assoc -1 zo)))
(command ". LAYER" " set" zl "" "")
(setvar "cmdecho" 1)
(setvar "filedia" 0)
(command " -linetype" " load" "Punkt2" "acadiso.lin" "" " set" "Punkt2"
"")
(command ". pline" pt1 pt2 pt3 pt4 "s")
(setenv "MaxArray" "10000000")
(setvar "cecolor" "198")
(setenv "MaxHatch" "10000000")
(command ". bhatch" " a" " a" " y" "" " properties" "SOLID,N" " select"
" l" "" "")
(command ". copy" Objekt "" "0,0,0" "0,0,0")
(command ". erase" Objekt "")
(setvar "clayer" oldlay)
(setvar "cecolor" "bylayer")
(setvar "celtype" "bylayer")
(setvar "filedia" 1)
(setq pt1 (getpoint "Erste Ecke markieren ODER RETURN FÜR ABBRUCH: "))
)
)



Lisproutine "kol" mit dazugehöriger Routine "auswahl"

(defun c:kol ()
(AUSWAHL)
(command ". copy" ausw "" "0,0,0" "0,0,0")
(command ". erase" ausw "")
(setvar "osmode" os)
(princ)
)

(defun AUSWAHL ()
(princ "\nBitte die zu bearbeitenden Elemente auswählen" )
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setq ausw(ssget))
)

Autor: "Thorsten Meinecke" (2003-12-18 13:30:53)

"J

Autor: "Thomas Kaulen" (2003-12-18 22:02:28)

"Thorsten Meinecke" schrieb im Newsbeitrag
news:brs6m0$6sjml$1@ID-25429.news.uni-berlin.de...

>Warum fügt ihr die Texte nicht der Schraffurumgrenzung hinzu?
>Geht auch nachträglich. Siehe Lisp:

>(DEFUN C:FREISTELLEN (/ en ss obj n sa)
> (VL-LOAD-COM)
>(COND
> ((NOT (SETQ en (CAR (ENTSEL "\nSchraffur wählen: ")))))
> ((/= "HATCH" (CDR (ASSOC 0 (ENTGET en)))))
> ((NOT (SETQ ss (SSGET))))
> (T (SETQ obj (vlax-ename->vla-object en))
> (REPEAT (SETQ n (SSLENGTH ss))
> (SETQ n (1- n)
> sa (vlax-make-safearray vlax-vbObject (CONS 0 0))
> )
> (vlax-safearray-put-element sa 0 (vlax-ename->vla-object (SSNAME ss
n)))
> (vla-AppendInnerLoop obj sa)
> )
> (vla-Evaluate obj)
> (vla-Regen (vla-get-Document obj) acActiveViewport)
> )
> )
>)

>Das funktioniert auch mit Kreisen und geschlossenen Polylinien. Wenn man
>aber innere Umgrenzungen hat, die aus mehreren Elementen bestehen (Linien,
>Bögen ...), dann müssten diese gemeinsam an die Methode AppendInnerLoop
>übergeben werden.

Hallo Thorsten,
wenn man sowas programmieren kann ist das sehr praktisch, noch besser ist es
wenn man das Ergebnis dann, wie Du, auch anderen zur Verfügung stellt.
Vielen Dank !!! - wirklich sehr viel besser, einfacher und praktischer.
Mit Wipeout hatte ich es vorher übrigens auch mal probiert und beim Drucken
probleme mit einigen HP Laserdruckern, die dann an der Stelle des Wipeouts
immer eine Schwarze Fläche gedruckt haben, egal wie die Raster oder
Farbzuordnung aussah- daher mein Lisp-Programm.

Gruß
Thomas Kaulen

Autor: Carsten Engler (2003-12-19 00:04:45)

Vielen Dank für die Hilfe! Es ging hauptsächlich um die Erzeugung von
Schraffuren bei bestehendem Text und bestehender Fläche....

Gruß
Carsten


On Wed, 17 Dec 2003 17:45:14 +0100, Jürgen Palme
wrote:

>Thomas Kaulen schrieb:
>>
>> ...
>> Ich erzeuge mit nachstehendem Lisp-Programm ("recw") ein Rechteck hinter dem
>> Text, dessen Größe durch Anwahl diagonal gegenüberliegender Punkte definiert
>> wird.
>
>Falls die Express Tools vorhanden sind, geht das auch mit dem Befehl
>WIPEOUT. Selbiges erstellen und dann entweder "hinter" den Text legen
>(Anzeigereihenfolge) oder besser, weil dauerhaft, den Text nach "oben"
>kopieren (wie in kol.lsp beschrieben).
>
>
>> Probleme gibt es leider, weil Autocad sich manchmal die Reihenfolge der
>> Objekte nicht korrekt merkt
>
>FYI: In AutoCAD 2004 ist dieser Defekt nun endlich behoben - mit
>"Anzeigereihenf" erzeugtes Resultat bleibt dauerhaft erhalten.
>
>
>Jürgen

Autor: Tom Berger (2003-12-19 12:34:16)

Jürgen Palme schrieb:

>Meine Tool-Sammlung ist um ein Werkzeug reicher geworden. Danke Torsten.
>(Nur schade, daß die Schraffuren ihre Assoziativität verlieren, aber der
>Vorteil des NACHRTÄGLICHEN Einfügens von Schraffurinseln macht das
>dreimal wett)

Aber sie verlieren ja ihre Assoziativität gar nicht - jedenfalls nicht
bei mir mit A2002. Thomas Kaulens Begeisterung nach sollte ich so eine
Freistellfunktion vielleicht mal ArchTools integrieren.

Gruß
Tom Berger

--
ArchTools: Architektur-Werkzeuge für AutoCAD (TM)
ArchDIM - architekturgerechte Bemaßung und Höhenkoten
ArchAREA - Flächenermittlung und Raumbuch nach DIN 277
Info und Demo unter http://www.archtools.de

Autor: "Thomas Kaulen" (2003-12-19 13:48:25)

"Tom Berger" schrieb im Newsbeitrag
news:74o5uvcibfgeq3d1qjr88cc7ekmaq4s9id@4ax.com...
> Jürgen Palme schrieb:
>
>...
> Aber sie verlieren ja ihre Assoziativität gar nicht - jedenfalls nicht
> bei mir mit A2002. Thomas Kaulens Begeisterung nach sollte ich so eine
> Freistellfunktion vielleicht mal ArchTools integrieren.
>

Hallo Tom,
Ich hatte ja gestern schon vor Dir ein Mail zu schicken....wäre aber zu
banal gewesen
Da ich das Thema für archtools schon mal angesprochen hatte und auf Deiner
Seite kein großes Interesse bestand hab ich es gelassen, in dem Wissen, das
Du den thread eh lesen wirst.
Eine Integration einer solchen Funktion in Archdim und optional auch in
Archarea fände ich jedenfalls äußerst sinnvoll !

Gruß
Thomas Kaulen

 1    2    ›    »