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

Vermeiden Sie den Fortschritt der Lispe

  • Ersteller Ersteller Angelo2449
  • Erstellt am Erstellt am

Angelo2449

Guest
Hallo alle,
Ich versuche, einen Code zu schreiben, der die Verwendung externer Programme in Lisp vorsieht:
Code:
(defunc c: referral (/ zweite Zeile Referenz und Flagcontrol txt1 txt2 lungnomebase name base lung cxbb cybb czbb stringa1 and1 notax station)

(falls)
(Progn)
(startapp "c:\autocadsupporto\liberty\rif.exe "c:\autocadsupport\\\liberty\\rif.tkn")
(Auszug)
)
)

(setq fc1 (findfile "c:\\\\\autocadsupport\\\\\datirilievo.dat"))

(falls fc)
(vl-file-delete "c:\\autocadsupport\dati\datirilievo.dat")
)

(setq fc2 (findfile "c:\\\autocadsupporto\dati\\resposta.dat"))

(falls fc)
(vl-file-delete "c:\\autocadsupport\\dati\resposta.dat")
)

(setq fc3 (findfile "c:\\\\\autocadsupporto\\note\\\\\\\\\\nota.dat"))

(falls fc)
(vl-file-delete "c:\\\autocadsupport\\\note\\\nota.dat")
)

(falls)
(Alert "die Referenzlinie wurde bereits eingefügt")
)

(startapp "c:\\autocadsupport\\\liberty\\datigps.exe "c:\\autocadsupport\\\\\\\datigps.tkn")

(Sectq und 1 nil)
(sing)
(= ed1 nil)
(setq ed1 (entsel "\nselect the reference line : ")))
)

(Sects flagged nil)

(while)
(seq markiert (findfile "c:\\\\\autocadsupporto\dati\\\datirilievo.dat"))
)

(wenn es markiert ist)
(Progn)
(setq fp3 (open "c:\\\autocadsupport\\\dati\datirilievo.dat" "r"))
(setq aktuelles Datum (read-line fp3))
(setq jetzt (read-line fp3))
(setq pdop (read-line fp3))
(Schließe fp)
)
)

(setq ed1 (entget (car ed1))
(setq txt1 (cdr 1 ed1)
(setq txt2 (cdr 10 ed1)

(setq lung (strlen txt1)
(- Lunge 77)
(Setq Basisname (substr txt1 1 lungnomebase))

(setq station nil)
(setq notax nil)

(startapp "c:\autocadsupporto\liberty\\stazione.exe "c:\\autocadsupport\\\liberty\\stazione.tkn")

(Sectq Flagcontrol nil)

(while)
(setq flagcontrol (findfile "c:\\\\\autocadsupporto\\note\\\\\\\nota.dat"))
)

(wenn Flagcontrol
(Progn)
(princ "\n")
(setq fp2 (open "c:\\\\\\autocadsupporto\note\\\\nota.dat" "r"))
(setq station (readline fp2))
(setq notax (read line fp2))
(Schließe fp)
)
)

(setq pos1 (- (strlen txt1) 58)
(setq xyz (substr txt1 pos1 34)
(Setq cxb (substr xyz 1 11)
(setq cyb (substr xyz 13 10)
(setq czb (substr xyz 24 11)
(setq cxbb (atof cxb))
(setq cybb (atof cyb))
(setq czbb)

(setq note2 (strcat name puntobase " - " notax " - " station))
(setq Referenz (strcat "1|" Station "0.000" xyz "0.0000,000| wgs84-rtf2000] " nota2 "")")
(setq secondlinea (strcat "6|l1|" heute Datum "-" jetzt "rtrtk|pdop=" pdop "")")

(sing)
(und (/= re "s") (/= re "n")
(s/n)
(setq re (getstring)
(seq re (strcase re)
)

(falls)
(Progn)
(setq fp1 (open "c:\\\autocadsupport\\\\librettopregeo.dat" "a"))
(Referenz der Schreibzeile fp1)
(writing line secondline fp1)
(Schließe fp)
(Start "c:\\autocadsupporto\liberty\ok.exe "c:\autocadsupport\\liberty\\ok.tkn")
(Sectq Referenz nil)
(zweite Zeile nil)
)
)

(falls)
(startapp "c:\\autocadsupporto\\liberty\no.exe "c:\autocadsupport\\\liberty\\\no.tkn")
)

(setq ind)
(setq index(strcat ind nomepuntobase))
(seq primariga) 1)
Ende
Ich habe Fehler, weil ich das Programm nicht stoppen kann, bevor das externe Programm seinen Job macht.
Ich werde es erklären.
Ich benutze Masken, die in einer Art visuellen Basis für Eingabe und Datenspeicher geschrieben werden, die Daten müssen dann von der Lisp gelesen werden, um fortzufahren.
Ich habe den Eindruck, dass die Datei, um die Daten auf der Festplatte zu extrahieren, bevor sie aus dem Grundprogramm gespeichert werden.
alle Versuche unternommen, die Weiterentwicklung der Lispe zu vermeiden, wenn nicht nach der Ausführung des Grunds, waren nutzlos.
Weiß irgendjemand davon?
Danke.
 
die Lisp hält nur bei Benutzereingabe an.
wenn Sie eine Daten eingeben möchten (setq e1 (entsel "\nselect the reference line : ")die lisp stops warten auf die Benutzereingabe, ansonsten die Liste weitergeht und Sie falsch gehen, wenn Sie die Daten nicht finden
 
Du kannst nicht aufhalten, aber du kannst ihm sagen, er soll es tun. Nichts. für einen Zeitraum.
z.B. macht diese Sequenz 2 Sekunden lang "zählen". .

(setq stop (+ 2000)
(while)
 
perfekt,
Verzögerung erlaubt den ordnungsgemäßen Betrieb, Synchronisation funktioniert jetzt, Variablen werden regelmäßig geladen.
Klasse ist kein Wasser!
 
Jetzt habe ich ein weiteres Problem gefunden! (Benedetto autolisp)
Dieser Code setzt regelmäßig die Farben, aber nicht die Linientypen, die an die aktuelle Schicht gebunden bleiben.
Code:
(cond)

((= Farblinie "rot")
(setvar "cecolor" "red")

((= "schwarz" Linie)
(setvar "cecolor" "weiß")

((= Farblinie "grün")
(setvar "cecolor" "grün")

(= Zeile "Fortsetzung")
(setvar "celtype" "continue")

((= Art der Zeile "tracked")
(setvar "celtype" "hidden")

((= typeline "pointed")
(setvar "celtype" "puntox2")

)
Muss ich die ganze Zeit den Plan setzen, oder gibt es einen einfacheren Weg? .
Danke.
 
die Funktion stoppt, wenn es den ersten korrekten Ausdruck findet, müssen Sie zwei erstellen, eine für die Farbe und eine für die Typeline.
 
danke gp, ich hatte das Problem verstanden und es bereits in Platz gesetzt.
Aber es gibt noch etwas, das nicht funktioniert.
die Anweisungen :
(setvar "celtype" "continue")
(setvar "celtype".........)
Sie werden durch die automatische Meldung des Fehlers abgelehnt, ich weiß nicht, wie ich dieses Problem lösen kann.
Danke.
 
Ich verstehe nicht.
die Farben werden auf Italienisch ausgedrückt, die Arten der Linie in Englisch
Jedoch funktioniert die "kontinuierliche" Linie, die "versteckt" nein.
der Tag, an dem ich auf Italienisch zu Autocad ging!
 

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