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

Löschen von Nachrichten während eines Lisp

  • Ersteller Ersteller x11start
  • Erstellt am Erstellt am

x11start

Guest
unter meiner Decke habe ich eine besonders komplexe (ich habe es nie mit dem Forum geteilt, da es sich um eine spezielle Lispe für das Unternehmen, für das ich arbeite), die zahlreiche Befehle für die Einführung von Texten, Zeilen und auch der Schaffung von Regionen hat.
während der Ausführung dieser Lispe werden Nachrichten im Zusammenhang mit der Befehlszeile geschrieben:

z.
wenn ein Text eingefügt wird:
aktuelle Angebotsart: annotative Panels: Nein.

wenn der aktuelle Textstil geändert wird:
Aktueller Textstil: "Standard" Texthöhe: 30 Anmerkung: nein

wenn eine Region geschaffen wird:
Kreation durchgeführt von 1 Region

Meine Frage ist:
welche Variable sollten Sie ändern, damit Sie diese Nachrichten nicht während der Ausführung der Lispe sehen?

Ich versuchte mit Nomutt, Experte, Cmdecho... aber keiner von diesen löst mein Problem. vor allem hat mich " enttäuscht" nomutt (!)

wir sagen, dass vielleicht, anstatt zu verwenden (Befehl "_text". .
Ich könnte die Entität mit Entmake schaffen, aber wenn ich vermeiden kann, alle diese Texte wieder herzustellen... Es würde nicht wehtun!

p.
Ich bin so masochistisch, dass ich auch akzeptieren würde, dass ich von einigen Benutzern (wie die letzten Tage) in den Salon gebracht werden würde... wenn dies notwendig wäre, um dieses Problem zu lösen...
 
sehen Sie wahrscheinlich verwendet Text in der Lippe und nicht _textein String des Typs (Befehl "_text"_j" "_tc" ptesto (* htesto (/ 10 scalaplot))) angolotxt testo) nicht zurückgeben Ausgabe auf Video

die Zeichenkette (Befehl "Text" pmtext1 "_h" (* htesto (/ 10 scalaplot)) "_r" angolotxt "_j" "tc" pmtext2 testo "") statt zurück zu Video die Nachricht Aktueller Textstil: "Standard" Texthöhe: 30 Anmerkung: nein Diese Nachricht, als informative Ausgabe des Befehls, wird nicht durch cmdecho oder durch Nomutt unterdrückt.
Dasselbe gilt für den Befehl der Region.

für den Dim Befehl, kein Problem.
die Zeichenkette (Befehl "_dimaligned" p1 p2 p1) wird ohne Zurück zu Video von jeder Nachricht ausgeführt, während es die Rücksendung der Nachricht (aktuelle Angebotsart: annotative Panels: Nein.) wenn Sie eine bestehende Quote aktualisieren.

Wenn diese Botschaften langweilig sind, denke ich, dass der einzige Weg ist, auf reine lisp (entmake und entupd-Funktionen) zu vertrauen.
Lassen Sie uns nicht vergessen, dass der Befehl eine Verknüpfung in der autolisp Sprache ist, und als solche hat seine Grenzen.

wahrscheinlich wird confutatis aus dem Zylinder ziehen eine seiner Magie in vlisp und wird mich leugnen:
 
Ich habe eigentlich einige normale Texte und andere Multiline-Texte... Aber ich brauche das im Programm!

Es wird bedeuten, dass die Mtisten sie durch Entmakes ersetzen. .

Dank Kristall.... mit dieser einfachen, präzisen und effektiven Antwort, Sie waren sehr hilfreich!
 
Aufmerksamkeit auf Texterklärungen mit vla-add Funktionen! Wenn Sie verschiedene Rechtfertigungen vom üblichen unteren linken Punkt verwenden, wird der Prozess des Einfügens des Textes sehr schlank. Ich bekenne, dass manchmal ich lieber den Befehl oder vl-cmdf Funktion verwenden, weil viel schneller. besser als jeder ist entmake.
 
nella vers.2013 (ma non posso controllare, non possedendola) esiste questa variabile di sistema, che forse ti farebbe comodo:
clipromptupdate (Systemvariable)
kontrolliert, ob die Befehlszeile den Fortschritt als Befehl oder Skript anzeigt.
Typ: Ganzzahlig
gespeichert in: Registrierung
Anfangswert: 0)

0 die Befehlszeile keine Nachrichten während eines Befehls oder einer Autolisp-Routine anzeigen.
1 zeigt die Befehlszeile den Fortschritt einer Befehls- oder Autolisp-Routine.
 
.... in der Tat, die meisten dieser Texte müssen die Insertion Punkt halb Mittel haben, so denke ich, ich werde für entmake entscheiden ...

.... was dann nur eine Frage "Ästhetik" ist: in dem Sinne, dass es schlecht schien, einen Splitter von Nachrichten auf der Kommandozeile fließen zu sehen: In dieser Hinsicht fragte ich mich auch die Idee, eine "\r" Aufforderung zu verwenden, um sicherzustellen, dass die verwendete Linie immer die gleiche ist ...
Vielleicht versuche ich es morgen.

für Joseph:
Leider bei der Arbeit verwenden wir 2010 (obwohl die Lizenz 2012 gekauft hat) ...

Vielen Dank.
 
.... nichts zu tun: Der "truck" zu verwenden (prompt "\r"), um in die vorherige Zeile zurückzukehren, hat keinen Effekt.

Ich "butto capofitto" in der Studie von entmake: Ich bemerkte, dass es nur die absoluten Koordinaten verwendet (d.h. auf die wcs und nicht auf die Ucts, wenn der Ursprung nicht auf 0,0,0).
 
Tut mir leid, aber leider sind die Dinge nicht genau so.
bis die Linien oder die Polylinie 3d die Koordinaten auf den wcs sind, aber für die Texte, Kreise, Bögen und Lwpolyline die Koordinaten, die mit (entget(car(entsel))))) erhalten werden, sind nicht auf den wcs wie es scheint, sondern auf den Uren der Einheit. bis sie auf die Wcs gezogen wurden, kein Problem. das Problem besteht zu dem Zeitpunkt, zu dem sie auf einer anderen und nicht parallel zu den wcs gezogen werden. der Vogel der Einheit erhält es mit der Extrusionsrichtung auf den Code 210. das Trio der Zahlen, die Sie sehen, sind der letzte Punkt der Achse-z ab dem Ursprung 0.0.0. Du kannst dir einen solchen Vogel machen. ucs->asse-z->0,0,0->Koordinaten aus Code 210. Sie werden sehen, dass die Liste die gleichen Ergebnisse wie (enget(car(entsel)))
 
Sie können den Kontrollbereich mit der Befehlszeilenvariable verbergen und dann wieder mit der Befehlszeilenvariable (manuell mit ctrl+9, die den Bereich aktiviert/vertreibt).
oder die Textfarbe der Nachrichten vorübergehend die Hintergrundfarbe der Befehlszone überprüfen.
 
Ich habe einen Sub erstellt, der es mir erlaubt, einen Text oder einen mtext zu erstellen.

Ich experimentierte mit einem ucs mit einem Grundpunkt verschoben im Vergleich zu den wcs... aber die Rotation ist immer 0.
So ist es wahrscheinlich, dass, wie confutatis schlägt, wenn ich die Notwendigkeit hatte, "fremde" ucs zu verwalten, würde es mich auch berühren, um Code 210 zu betrachten.
in diesem Zusammenhang nehme ich bereitwillig Vorschläge an, um diese Situationen zu verwalten und die unter ... "universal"

um einen Text zu erstellen, müssen Sie den Sub mit einem Typ-Befehl anrufen:
(cmd:text "0" 20 start start 0.7 "text" 0 2)
(Anmerkung, dass zwischen den Parametern, die ich 2 mal eine Startvariable eingefügt habe: Sie können den gleichen Punkt verwenden, aber nur, wenn Sie nicht "geeignete" Texte verwenden).

mtexts erfordern weniger Parameter... die dann durch ein nil ersetzt werden:
(cmd:text "mtext" "0" 20 start nil "text to write" 4 nil)


;
;
;---------------------------------------------------------------------------------------------------------------------------------------------------
; erstellt einen Text oder u mtext mit entmake
---------------------------------------------------------------------------------------------------------------
;
; Typ 0 Text oder mtext
; legen 8 Schichten
; htex 40 Texthöhe
; Start 10 Koordinaten starten
; Ende 11 koordiniert fein (nur Text)
; Widh 41 Breite (in der Regel 0,7) (nur Text)
; stri 1 String zum Schreiben
; alli1 71/72 Ausrichtung (71 = mtext - 72 = text)
; alli2 73 type alignm (nur Text): 0=klassische Texte - 1-2-3 Low-Medium-High
;
(defun cmd:text (type lay htex start end widh stri alli1 alli2 / list)
(wenn (= Typ "mtext")
---- mtext ---
(Setq-Liste)
(Liste (cons 0 "mtext")
'(100. "Akku"
(cons 8 lay)
'(100 . "acdbmtext"
(cons 10 start)
(cons 40 htex)
(cons 1 stri)
(cons 71 alli1)
)
)
)
--- Text ---
(Setq-Liste)
(cons 0 "text")
'(100. "Akku"
(cons 8 lay)
'(100 . "acdbtext"
(cons 10 start)
(cons 11 end) 0,0.0
(cons 40 htex)
(cons 1 stri)
(cons 41 widh)
;;
(cons 72 alli1)
(cons 73 alli2); 0=sx-c-dx-allin-mezzo-adatta / 1=basso(sx-c-dx) / 2=mezzo(sx-c-dx) / 3=alto(sx-c-dx)
)
)
)
) ; Ende, wenn (wenn (= Typ "mtext"). .

(Zwischenrufliste)
)
 
(defun cmd:text (type lay htex start end widh stri alli1 alli2 / list)
(setq puntoz(ucszdir))
(wenn (= Typ "mtext")
---- mtext ---
(Setq-Liste)
(Liste (cons 0 "mtext")
'(100. "Akku"
(cons 8 lay)
'(100 . "acdbmtext"
(cons 10 start)
(cons 40 htex)
(cons 1 stri)
(cons 71 alli1)
(cons 210 pointz)
)
)
)
--- Text ---
(Setq-Liste)
(cons 0 "text")
'(100. "Akku"
(cons 8 lay)
'(100 . "acdbtext"
(cons 10 start)
(cons 11 end) 0,0.0
(cons 40 htex)
(cons 1 stri)
(cons 41 widh)
; (cons 71 0) ; für Text 71 ist immer 0
(cons 72 alli1)
(cons 73 alli2); 0=sx-c-dx-allin-mezzo-adatta / 1=basso(sx-c-dx) / 2=mezzo(sx-c-dx) / 3=alto(sx-c-dx)
(cons 210 pointz)
)
)
)
) ; Ende, wenn (wenn (= Typ "mtext"). .
(Zwischenrufliste)
(setq start2(trans start 1 0))
(vl-cmdf "ucs" "_w" "ucs" "asse-z" (list 0 0 0 0 0) puntoz)
(setq puntox (trans (list 1.0 0.0) 1 0)
(setq start1(trans (cdr(assoc 10 (entget (entlast))))) 1 0)
(vl-cmdf "ucs"
(vla-move (vlax-ename->vla-object (entlast))(vlax-3d-point start1)(vlax-3d-point start2))
(vl-cmdf "ucs" "p" "ucs" "p" "ucs" "p")
(Setq-Winx(Winkel (trans (Liste 0 0 0 0 0 0) 0 1) (trans-Punkt 0 1))))

(falls (> Winkel)
(- (* pi 2) Winkelx)
(- Winkel)
)

(vla-rotate (vlax-ename->vla-object (entlast))) (vlax-3d-point (trans start 1 0)) Winkel
(princ)
)

(defun ucszdir (/ Punkt 1 2 ucsz)
(setq point1 (trans (list 0 0 0 0 0) 0)
Punkt2 (Liste (Karte 1) (cadr Punkt1)(+))
ucsz (trans-point2 1 0)
)
)

Diese Routine sollte für jeden ucs gültig sein. die größte Schwierigkeit war die Einfügung in den Text uct mit den Koordinaten als Thema. Aber wenn ich den Text auf diese Weise stelle, waren die angegebenen Koordinaten nicht auf dem aktuellen Uct, sondern auf dem der Einheit. Deshalb musste ich eine Übertragung von Koordinaten von einem System zum anderen durchführen. gleiche Sprache für den Drehwinkel.
Ich habe nicht gesehen, ob auch unter mtext funktioniert, aber ich kann immer überlegen, den Text zu transformieren, den ich im mtext will, indem ich die Entmake-Funktion ausnutze, die Daten direkt aus Text und dann das Entity löschen. Es wäre nicht mehr nötig, ob es Text oder mtext gibt, aber es genügt eine Flagge am Ende der Funktion, die mir sagt, ob ich die Transformation betreiben muss.
 

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