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

Ersetzen Sie ein weiteres Element einer Liste

  • Ersteller Ersteller x11start
  • Erstellt am Erstellt am

x11start

Guest
Ich brauche Hilfe, um eine schnelle Methode zu finden, um das neue Element einer Liste zu ersetzen:
Datum einer Liste mit allen 0...
0 0 0 0
Ich möchte die verschiedenen Elemente einzeln erhöhen.... z.
(0 0 1 0) Erfolg (0 1 0) dann (0 2 1 0) etc.
bis Sie etwas erreichen wie (152 18 362 1258). ...
Ich kann es nicht mit Subst tun, da es alle 0 ersetzen würde...
Es gibt einen Befehl (vielleicht ein vl-xxx), der es schnell macht, da diese Liste als "Kontakt" fungiert und seine verschiedenen Elemente erhöht, um Hunderte von Einheiten zu zählen. Danke.
 
(setq list (vlax-make-safearray vlax-vblong '(0.3)))
; erstellt Liste (0 0 0 0)

; Änderungsliste basierend auf Index (von 0 bis 3) Hinzufügenswert
(defunctor(Wertindexliste)
(vlax-safearray-put-element index list (+ Wert (vlax-safearray-get-element index list)))
)

; Beispiel: (Liste 3 10 Kontakt) -> (0 0 0 10)
 
Ich habe versucht, die Befehle zu nutzen, die Sie mir empfohlen haben... Aber ich kann sie nicht arbeiten lassen!
setq list (vlax-make-safearray vlax-vblong '(0.3))
; macht mich nicht Liste (0 0 0).... aber durch Fehler: #safearray..
Ich sagte: Ich nutze meine alte Methode basierend auf (Append '(0) numelem))

aber auch
(vlax-safearray-put-element index list (+ Wert (vlax-safearray-get-element index list)))
Ich bin falsch.

natürlich habe ich auch auf die Startliste gesetzt (vl-load-com)
 
Code:
; Träger (0 0 0 0)
(setq list (vlax-make-safearray vlax-vblong '(0.3)))

; von Vektor zu Liste - nur um Daten zu sehen
(vlax-safearray->list list)

; Änderungsliste basierend auf Index (von 0 bis 3) Hinzufügenswert
(defunctor(Wertindexliste / v)
(vlax-safearray-put-element index list (+ Wert (vlax-safearray-get-element index list)))
)
erstellen Sie eine Datei lisp und fügen Sie uns den Code.
hochladen.

an diesem Punkt, geben Sie auf Befehl:
(Zählerliste 3 10)
(vlax-safearray->list list) zeigt Ihnen (0 0 0 10)
 
Ich tat, was du gesagt hast... und es funktioniert.
Jetzt werde ich aufhören, es in meinen Deckel zu stecken, und dann werde ich ihn mit euch teilen!

Danke für die Verfügbarkeit!
 
wie hier versprochen ist das Ergebnis meiner "Fakten" (mit der wertvollen Hilfe von rpor66!)

der contalung Befehl dient dazu, ausgewählte Zeilen zu zählen, die kürzere oder gleiche Längen haben zu einer Liste: wenn die Liste 10, 50, 200, 1000; sie würden gezählt werden (und in eine Tabelle eingefügt) alle Zeilen kürzer als 10, die zwischen 10 und 20 ... bis die länger als 1000.
die Liste kann ein String sein, bestehend aus Komma-separierten Zahlen (für Dezimals natürlich verwenden Sie den Punkt), oder Sie können Texte oder Multiline-Texte auswählen.
Letztere sind "sick", um die Daten zu erhalten.

Dieser Befehl wurde auf Autocad erstellt... aber er läuft glatt auf gstarcad.
 

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