Aus einer Datenmigration bekomme ich ASCII-Daten (kein DXF-Code), die ich einlesen muss.
Viele Definitionen betreffen Attribute (ATTDEF), und davon sind viele so angegeben, dass sie CENTER sind und einen Einfügepunkt liefern.
Die Online-Hilfe mk:@MSITStore:C:\Program%20Files\ACAD2002\help\acad_dxf.chm::/dxf_067.html schreibt:
Wenn die Werte der Gruppe 72 und/oder 74 nicht gleich Null sind, werden die Werte für den ersten Ausrichtungspunkt ignoriert. In diesem Fall berechnet AutoCAD neue Werte anhand des zweiten Ausrichtungspunkts sowie der Länge und Höhe der Zeichenkette (nach Zuweisung des Textstils). Wenn die Werte der Gruppen 72 und 74 fehlen oder gleich Null sind, ist der zweite Ausrichtungspunkt ohne Bedeutung.
Jetzt versuche ich, ein ENTMAKE zu generieren, in dem ich den Gruppencode 72 auf 4 setze ("Zentriert") und als Einfügepunkt den Code 11 aktiviere (die Werte "gcxx" kommen aus dem Programm):
(entmake (list
'(0 . "ATTDEF")
(cons 1 gc01) ; Vorgabetext
'(100 . "AcDbEntity")
'(100 . "AcDbText")
'(100 . "AcDbAttributeDefinition") ; Subklassenmarkierung
(cons 72 gc72) ; Horizontale Ausrichtung
(list gc10 x-wert y-wert 0.0)
(cons 2 gc02) ; Attributbezeichnung
'(3 . "") ; Eingabeaufforderung
(cons 40 gc40) ; Texthöhe
'(410 . "Model")
'(70 . 0) ; Attributflags
)) ; Ende Attdef machen
Wenn ich die Variable gc10 auf 10 setze ("erster Einfügepunkt"), wird das Attribut gemacht (aber leider nicht zentriert..). Wenn ich die Variable auf 11 setze (zweiter Ausrichtungspunkt), geht es nicht.
Wie ist jetzt die "Umrechnung" der Online-Hilfe zu verstehen?
Peter
------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP