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

Die Länge einer Linie finden

  • Ersteller Ersteller joe
  • Erstellt am Erstellt am

joe

Guest
Guten Morgen, bitte, um die Arbeit zu beschleunigen, einer Lise, die alle Zeilen einer bestimmten Länge wählt, die ich in die Befehlszeile einfügen würde.
Wenn es nützlich sein kann, setze ich die Dezimals auf "0", weil ich die Länge ohne Dezimals brauche, aber natürlich alle Linien im Design haben Dezimals.
Danke.
 
den Wert entsprechend der gewünschten Dezimalapplikation ändern:
....ls "Länge" l 0,1 mg/kg)
Code:
(defun c:sl ( / Liste lin n)
(Setq-Liste (ssadd))
(Sectq l)
(Geist (Strcat "\nlunghezza delle linea" (if l (strcat " <" (rtos l 2 0) ">: ")"):
(l)
)
(setq lin)
(Repeat)
(setq ls (ssname lin (setq n (1-n)))
(falls (gleich (getpropertyvalue ls "length") l 0.1)
(Sectq-Liste)
)
)
(falls Liste)
(princ)
)
 
Vor einiger Zeit habe ich diese Listing in der Lage gemacht, "katalogue" die Linien von verschiedenen Länge: im Wesentlichen fordert, ihm eine Reihe von Zahlen in 2 Weisen geben

1) sie in einer Zeit eingeben und als Separator z.B. 100.120.5.200.93.300 verwenden

2) oder durch Klicken auf so viele Texte, die Längen angeben

dann wird gebeten, die Zeilen auszuwählen (es ist ein bisschen 'rau' und filtert nicht nur die Zeilen... sondern akzeptiert nur die und nicht Polylinienbogen etc.)

Schließlich wird die Tabelle aufgefordert, platziert zu werden (nach Angabe der Texthöhe)

die Tabelle, die herauskommt, wird zeigen, dass es (unter Verwendung des Beispiels von vorn):

10 Linien kleiner oder gleich 100
2 zwischen Minderjährigen oder gleich 120,5 ....
usw.
bis 300.
 

Anhänge

Danke.
selerapid ist in Ordnung, aber ich habe versucht, die Arbeit zu beschleunigen
Ich versuchte jedoch sl, den Wert von 0,0 auf 0,8 weiter zu ändern, weil er in meinem Fall nicht sehr gut funktioniert: Meine Einstellung ist "Unit:Precision 0" und alle Linien, im Raum 3d, haben verschiedene Längen in mm; z.B. 2502.155 wird 2502; 3457.875 wird 3458.
wenn ich 2502 einlege, wird die Linie gewählt, im anderen Fall nicht. aber die Chancen, mit denen diese Bedingung auftritt, sind 70% und stellen Sie mir keine Arbeit ohne Fehler sicher
 
automatische Rundung.
Code:
(defun c:sl ( / elenco lin n)
(setq elenco)
(setq l)
(getdist (strcat "\nlunghezza delle linee" (if l (strcated " <" (rtos l 2 0) ">: ")"))
( l )
)
(setq lin (ssget "_x" ((0 . "line"))))))
(Repeat)
(setq ls (ssname lin (setq n (1-n)))))
(wenn (gleich (fix (+) (getpropertyvalue ls "length") 0,5) l
(setq elenco)
)
)
(falls elenco (sssetfirst nil elenco))
(princ)
)
 
Vielen Dank für die vorherige Routine: Es funktioniert wie ich wollte und ich gehe schneller.
Ich würde einen anderen brauchen, um einen Text zu finden, könnten Sie mir bitte die Antwort geben?
Danke.
 
Ich benutze immer findt.lsp (was ich vor vielen Jahren gemacht habe), was es erlaubt, durch Klicken in einem leeren Bereich des Designs Linien zu starten, die alle gefundenen Texte erreichen.
 

Anhänge

Ich danke Ihnen für die Antwort, aber ich brauche etwas nicht so aufwändig; der zu findende Text besteht aus Codes Typ a22, b28, c100 usw. die in der Zeichnung neben der entsprechenden Linie eingefügt sind. In dem Beispiel, das ich Ihnen anhefte, gibt es Typ b. Ich muss jeden Code finden und wissen, wie viele ich bin, wenn ich tippe, auf Anfrage, "b30", die Routine sollte alle wählen "b30".
so ist es einfacher und schneller als mit "qselect"
 

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