Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Buchstaben im Attributnamen

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:  Buchstaben im Attributnamen (468 mal gelesen)
Andrina08
Mitglied
Vermessung


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

Beiträge: 11
Registriert: 17.06.2019

AutoCAD 2020

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


Block.dwg

 
Hallo zusammen!
Ich habe einen Punktimport erstellt, welcher aus einer Datei einen Block einfügt und die Punktnummer, sowie die Höhen als Attribute abfüllt.
Eine Zeile im File sieht wie folgt aus:
PT          203 S  153 2687839.100 1249973.784    438.404

Die 203 wird in diesem Fall die Punktnummer.

Nun möchte ich gerne auch Buchstaben importieren können, das gibt aber im Moment noch einen Fehler...
Könnt ihr mir da weiterhelfen?

Auszug, aus meinem Lisp, wo die Punkte importiert werden:
(if file
    (progn
      (setq file (open file "r"))
      (while (setq zeile (read-line file))

(setq LISTE (read(strcat "(" (vl-string-left-trim "0" zeile) ")")))
(cond
  ((= (nth 3 LISTE) 140)
(progn
  (setq ztw (strcat (rtos (nth 6 LISTE) 2 2)))
  (setq ztw3 (strcat (rtos (nth 6 LISTE) 2 3)))
    (command  "_.Insert" (strcat "V_Punkt_" col140)
  (list
    (nth 4 LISTE)
      (nth 5 LISTE)
      (nth 6 LISTE) )
    1 0(nth 1 LISTE) "" ztw "" ztw3 "" ) ; command
) ;progn
)
); cond
(princ)

Den Block selbst habe ich im Anhang in der DWG-Datei.

Vielen Dank für eure Tipps!! 

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

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

Alles

erstellt am: 04. Aug. 2021 09:30    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 Andrina08 10 Unities + Antwort hilfreich

Hi,

wo benötigst du denn Hilfe? Da keine Importdatei dabei ist habe ich es nur angeschaut,
als erstes blieb ich bei "rtos" hängen.

  (setq ztw (strcat (rtos (nth 6 LISTE) 2 2)))
  (setq ztw3 (strcat (rtos (nth 6 LISTE) 2 3)))

sollte nur ausgeführt werden wenn (nth 6 LISTE) eine Zahl ist,
also lasse es weg (wenn man von IMMER Buchstabe ausgehen kann,
oder prüfe einfach zuvor mit TYPE um was es sich bei (nth 6 LISTE) handelt.
IF oder COND dazu, dann wird es was.


OT Q1: Warum hast du bei diesem Block Mehrzeilige Attribute angedacht,
die nimmt man dóch nur aus der Not, als Hack, oder um jemanden zu ärgern  

edit<
OT Q2: Attributnamen sollte man ausschließelich in Großbuchstaben verwenden
(um Probleme mit einigen Funktionen/Zusatzprogrammen zu vermeiden)
>
OT Tip: Benenne Dateianhänge auf CAD.de EINdeutig, als zB Datum+Text optional +lfdNr - 210804_Block1
Dein Account hat nur einen UploadOrdner am Server und "Block" ist zu allgemein, die Chance zukünftig
den Dateinamen zu verwenden und alte Dateien zu überschreiben zu hoch,
dabei würde man auch unbemerkt alte Threads ganz oder teilweise unbrachbar machen.

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

Andrina08
Mitglied
Vermessung


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

Beiträge: 11
Registriert: 17.06.2019

AutoCAD 2020

erstellt am: 04. Aug. 2021 13:27    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


20210804_Test_Import.txt

 
Hallo cadffm

Vielen Dank für Deine schnelle Antwort.

nth 6 LISTE bezieht sich auf die Höhe, welche ich jeweils mit 2 oder 3 Komma-Stellen ausgeben möchte.

Mein Problem liegt aber an der Stelle nth 1 LISTE..
Hab dieses Mal eine Datei angehängt. Mein Problem ist nur bei der Punktnummern, nicht bei der Höhe... Da kürze ich ja nix.. glaub 

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

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

Alles

erstellt am: 04. Aug. 2021 14:16    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 Andrina08 10 Unities + Antwort hilfreich

Hi,

okay:

Mit dem READ/STRCAT..  (setq LISTE (read(strcat "(" (vl-string-left-trim "0" zeile) ")")))
erzeugst du so eine List:
(PT          D201 S  153 2687840.850 1249976.246    438.406)

In Datentypen ausgedrückt:
(SYM SYM SYM INT REAL REAL REAL)

Wenn du jetzt bei der Attributwert-Abfrage (nth 1 LISTE) angibst, dann versucht AutoCAD
das Symbol D201  (oder nenne es Variable wenn du möchtest) zu evaluieren und dir den
gebundenen/verknüpften Wert zurückzugeben, in dem Fall ist das aber nil
weil du ja nirgends (setq D201 "Katzenklo") angegeben hast / nehme ich an.

Das Problem ist also: Der Befehl INSERT hätte gerne eine Zeichenkette oder Zahl, du lieferst aber "nichts" -> nil
da crashed das Ganze also an der Stelle (nth 1 LISTE)

Lösung: Mache daraus eine Zeichenkette.. vl-princ-to-string wäre eine Möglichkeit.

(vl-princ-to-string (nth 1 LISTE))


--

TIP: Das nächste Mal BITTE vollständige und zusammenpassende Daten..
Der Code ist nicht plug&play ausführbar: Warum sollte sich jemand ohne diesem (deinem) Problem die Mühe machen?
Also zumindes tsoweit möglich "plug&play" machen das Beispiel.
col140 ist nicht definiert..
die Importdatei fehlte..
die Importdatei passt nicht zum Codebeispiel (153 statt 140)..
und nach unten hin fehlen dann ja auch noch ein paar Anweisungen wie (close file) und ein paar klammern,
am Anfang attreq attdia osnapccord..

Die Bitte ist in deinem Sinn, denn auf soetwas mögen deutlich weniger Leute antworten wie auf ein ordentlich geschnürtes Paket
und damit sinkender Anzahl potentieller Helfer sind auch die Tatsächliche Zalh und damit auch die
Reaktionszeit und Chance auf die Lösung deines Problems.

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 04. Aug. 2021 14: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 Nur für Andrina08 10 Unities + Antwort hilfreich

Hi,

noch eine Möglichkeit aus dem SYMBOL eine Zeichenkette zu machen wäre

(vl-symbol-name (nth 1 liste))

Gruß
Thomas

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