• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Erstellen Sie eine Tabelle der Inhalte der Texte in den Blöcken

  • Ersteller Ersteller Riccardo_Ferrari
  • Erstellt am Erstellt am

Riccardo_Ferrari

Guest
Ich habe die Programmzahl versucht. Gliederung http://www.lee-mac.com/blockcounter.html von lee mac.
Ich habe wenig Wissen über Autolisp und versucht, die Software für meinen persönlichen Gebrauch wie folgt zu ändern, aber ich habe versagt:
Ich habe viele Blöcke (viele, letztes Mal hatte ich 3.000 Blöcke) jeder von ihnen enthält drei mtexte (sehr einfache mtext, es könnte ein Text sein, aber sie mtext) auf drei verschiedenen Schichten (Beispiel I siehe jetzt: 968, pf, 2.337, zwei sind numerisch, ein alphabetisch) und ein Punkt, die Koordinaten des Punktes sind auch die Insertion des Blocks.
Ich stecke den Dwg des Beispiels an.
Ich muss eine Tabelle in jeder Zeile die drei Texte und Koordinaten des Punktes erstellen.
ist es möglich?
danke, reicher ferrari
 

Anhänge

wenn statt mtext zu verwenden Ich benutzte Blockattribute, alles wurde einfach mit Auslöschungen gemacht
 
wenn statt mtext zu verwenden Ich benutzte Blockattribute, alles wurde einfach mit Auslöschungen gemacht
Vielen Dank für die Antwort, aber wenn ich das tat, hätte ich diesen Block nicht getan, den ich nicht mag und ihn schlecht handhabe. m oft kommen dwg mit diesen Blöcken innen, nur weil ich die Daten extrahieren möchte, um an mein System zu übergeben. Denn jetzt habe ich es von Hand getan, den Block explodiert und versucht, eine Lippe zu machen. Wenn Sie eine Ahnung haben, wie Sie Sie tun, wäre ich dankbar. Ich bitte Sie jedoch um den Namen des ursprünglichen Befehls, dessen Übersetzung ausgestorben ist. Danke.
 
... alles wurde einfach mit Auslöschung gemacht
Danke für die Anzeige. Ich fand den Namen des Befehls, dessen Übersetzung ausgestorben ist, Befehl eattext. extrahiert die von mir gestellten Daten. Text oder mtext-Extrakte gleichermaßen. Es ist nicht genau das, was ich brauche, weil es eine Datei mit vielen Daten erzeugt, die ich filtern muss, aber es ist ein großer Schritt nach vorne. Präventive Filter, die der Befehl auch die Daten filtert, die ich brauche. so extrahiere ich alles und filter nach unten. Danke.
 
und du schienst, als hätte ich nichts vergessen...
rpor66, zuerst dachte ich, du hättest eine fertige Lispe, die auch für mich arbeitete. Lesen Sie den Code, statt, ich erkannte, dass Sie es speziell geschrieben. Danke. zu viel Ärger.

Ich erlaube mir, Ihren Code für meine einzige persönliche Verwendung in einigen einfachen Teilen zu ändern, die ich ändern kann. zum Beispiel die Auswahl bestimmter Blöcke und nicht von allen, und das Format des Ausgabetextes. Ich weiß nicht, was ich hinzufügen soll, wenn ich diese beiden Veränderungen mache.

ps.: Schreiben kam zu denken, was zu ergänzen: Änderung der Schichten, siehe unten

Stattdessen kann ich die folgenden zwei Probleme in Bezug auf Ihre Lispe nicht lösen und wiederholen, dass Sie zu viel getan haben, um sie zu markieren, wenn es möglich ist, sie zu lösen, vielleicht lerne ich etwas.

erstes Problem

ausreichend ist das Vorhandensein eines Blocks (z.B. der in dem angeschlossenen dwg umkreist), der das Programm mit der Nachricht stoppt

Fehler: schlechte Argumentart: stringp nil

passiert, dass einige Benutzer die Blöcke scannen und dann einen zusätzlichen Block in der gleichen Schicht erzeugen, außer dem Standard.

Es ist weder möglich zu denken, die explodierten nicht auszuwählen, sie sind fein gemischt. Es ist eine Frage der Vernachlässigung derer, die den Dwg gemacht haben, aber sobald der Dwg bereits getan ist, ist es notwendig, ihn zu verwalten.

Es reicht aus, dass der Deckel nicht standardmäßige Blöcke ignoriert, vielleicht Schichten aufeinander verändert, um besser an den richtigen Blöcken zu sein, wie “<nome_originario>_made” so es sich herausstellt und herauskommt, die tun

vielleicht kann ich es alleine machen, nachdem die Fehlerverwaltung überwunden wurde

zweites Problem

Ihre Lispe funktioniert egregiamente, wenn es keine Blöcke auf der gleichen Ebene gibt als der Standard-Block (falls es nicht die Lispe-Fehler, sondern von denen, die um diese Blöcke verlassen)

in einigen, glücklicherweise selten, Fälle haben ein abnormales Verhalten, aber ich kann nicht verstehen, warum:

in einigen dwg gibt es Blöcke, die redundante Listen generieren

Listenbeispiele, aus denen die lisp extrahiert Daten:

(-12.654 -12.654 Nagel 1300 -12.654 Nagel 1300)

(-17.696 -17.696 -17.696 -17.696 pf 1500 -17.696 pf 1500)

die lisp extrahiert die erste, zweite und dritte, so dass einige Daten vernachlässigt werden

Ich verstehe.

-4.74203926,-2.94334927,0|quota:-12.654|quota:-12.654

-4.13995449,-5.0876663,0.

Ich stelle auch einen Dwg an dieser Situation fest

Dieses zweite Problem beunruhigt mich weniger, weil es selten ist und weil ich denke, dass ich es lösen kann, indem ich stromabwärts die Liste, aus der Ihre Lisp extrahiert die Daten (d.h. Änderung der Lisp, ich schreibe alle Daten und dann siehe), aber die Frage bleibt, wie es passieren kann. wenn Sie interessiert sind.

umgekehrt die erste ich verstanden, warum es passiert (nicht-Standard-Block), aber ich kann es nicht lösen.

Nochmals vielen Dank für Ihre Arbeit

reicher</nome_originario>
 

Anhänge

Ich habe das Bugproblem überprüft1; Blöcke enthalten mtexts kopiert mehrmals auf sich selbst. Sobald ich sehen kann, das Problem zu beheben.
Bye
 
Okay, lösen Sie die 2 Probleme
Überlappungstexte mit gleichem Wert werden einmal gespeichert, Blöcke ohne mtext werden nicht exportiert.
mit Mitglied analysiert die Liste und wenn der Wert nicht vorhanden ist, speichert sie sie.
wenn nach der Analyse des Blocks die Textliste leer ist, werden die in der Datei zu schreibenden Daten nicht verarbeitet.
Bye
 

Anhänge

ok, risolti i 2 Probleme
Aber wer bist du, Baby?
Danke.
Ich weiß nicht, was ich sagen soll.
Ich habe es versucht und es ist okay.
mit Mitglied analysiert die Liste und wenn der Wert nicht vorhanden ist, speichert sie sie.
wenn nach der Analyse des Blocks die Textliste leer ist, werden die in der Datei zu schreibenden Daten nicht verarbeitet.
Jetzt versuche ich etwas tiefer, besonders dieses Mitgliedsding, also verstehe ich es nicht.
Ich arbeite daran.
Nochmals vielen Dank.
 
ok, risolti i 2 Probleme
daher, liebe rpor66

das Mitglied, das ich noch nicht verstanden habe, auch weil ich es nicht studiert habe, habe ich zwei Änderungen an Ihrem Lisp gemacht. oder besser eine Änderung und eine Ergänzung. allego der modifizierten lisp

1) hier entfernte ich x
(wenn (setq ss (ssget "x" (cons 0 "insert") (cons 8 "point"))))
nur einige Blöcke auswählen

2) I addierte folgende Zeile
(entmod (subst (cons 8 "point-done") (assoc 8 (entget sn)))
um die bereits ausgeführten Blöcke in einer Schicht auseinanderzusenden

zur Änderung 1 wieder, die 2 Ich nahm von einem Code gefunden im Netz, aber ich habe nicht verstanden, was ich tat, aber es funktioniert. Was für ein Lamer

Grüße und danke für die Aufmerksamkeit

reicher
 

Anhänge

Ich konnte den Code nicht gründlich ausprobieren, aber es gibt etwas falsch.
Ich habe noch nicht verstanden, was, ich versuche zu verstehen und dann ruhen.
Es ist klar, dass das Problem sehr dicke Blöcke und nicht Ihr Code sein wird.

Warum hast du dann geschrieben? Du fragst zu Recht. denn in der Zwischenzeit habe ich völlig verschiedene Blöcke, die besser gemacht werden scheinen. sind auch mit Attributen, wenn Sie so sagen.

Ich stelle mir vor, dass ein Lisp, der den Text schreibt, wie der andere von oben neu geschrieben werden soll.
Ich hänge die Datei mit verschiedenen Blöcken an, sehen Sie, was Sie tun können, danke.

reicher
 

Anhänge

Ich spreche Rpor66, aber natürlich würde ich gerne mehr Interventionen lesen.so, es ist listdablock_mtext.lsp da Rpor66 veröffentlicht auf dem Forum am 8. Juli (link http://www.cad3d.it/forum1/attachments/listadablock_mtext-lsp.58658) der Code, für den ich danke, funktioniert nicht an allen Punkten, aber es ist Schuld der Punkte, oder besser als die dwg.

Einige Punkte sind Blöcke mit innerhalb von drei mtext (und der Code liest sie gut) andere Punkte sind Blöcke, aber innerhalb, statt drei mtext, gibt es andere drei Blöcke, die jeweils einen Text enthalten. Ich weiß nicht, warum der Unterschied: der Dwg kommt so an und du musst daran arbeiten. Ich bin ein gemischtes Beispiel. Dwg

um dies zu verstehen, nahm ich eine Weile, wie eine Menge herauszufinden, wo das Problem im Code ist. Ich habe gesehen, dass bei Zeile 20 die Bedingung (eq (vla-get-objectname x) "acdbmtext") nur mtext richtig filtert, während für andere Punkte (vla-get-objectname x) "acdbblockreference zurückkehrt.

mehr oder weniger unlautere Versuche, den Code zu ändern waren vergeblich, natürlich für meine Unwissenheit. Wenn Sie neben dem mtext auch andere einen Fehler zu dem Zeitpunkt, zu dem Sie sich bewerben (vla-get-textstring x), Ich versuchte alles: nichts zu tun. Sie müssen in den geschachtelten Block, es ist ein Wort...

nach vielen Versuchen Ich wollte einen anderen Weg suchen. Ich weiß nicht, wie, aber es funktioniert. Ich habe den Blockcountv1-5.lsp-Code geändert, den ich hier gefunden habe. http://www.lee-mac.com/nestedblockcounter.html Ich schließe meine Modifikation an, lese die geschachtelten Blöcke, aber nicht diese mtexte, vielleicht arbeiten sehr hart auch mit dem mtext (maybe) aber ich würde das Gegenteil bevorzugen, das heißt, den Code zu beenden, der von Rpor66. was ich modifizierte (aber auch die ursprüngliche Lispe) ist sehr langsam, mit 1.000 Punkten dauert ein paar Minuten, mit 3.000 ich gestoppt vor dem Ende)

dann, fasst es zusammen, es gibt vier Dateien:
1) Liste codedablock_mtext.lsp (http://www.cad3d.it/forum1/attachments/listadablock_mtext-lsp.58658/)
2) codice blockcountv1-5.lsp (http://www.lee-mac.com/lisp/blockcountv1-5.lsp)
3) meine vorherige Änderung (count.lsp hier angebracht)
4) dwg-Test (misti.dwg hier angebracht)

Grüße

reicher Ferrari
 

Anhänge

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben