Ansys.com


Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 17

Discussione: Somma valori attributi

  1. #1
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    18
    Professione
    Progettazione
    Regione
    Lombardia
    Software
    Autocad

    Predefinito Somma valori attributi

    Premessa: scusate il doppio post (mi sono accorto più tardi dell'esistenza di questa sezione che penso sia la più appropriata)

    Salve a tutti, vorrei chiedervi se conoscete un lisp free che faccia la somma di valori contenuti in un determinato attributo.
    In pratica io ho una BOM con svariati attributi, molti di questi si chiamano WEIGHT ed hanno un valore oppure sono vuoti ed in alcuni casi contengono lettere (per es. "-")...vorrei in pratica che questa LISP sommi i valori numerici di questi attributi e lasci perdere valori nulli o caratteri.
    Qualcuno sa se esiste un programma free del genere?
    Grazie mille.

    Cristian

  2. #2
    Moderatore L'avatar di PlannerRoad
    Iscritto dal
    2007
    Messaggi
    4955
    Professione
    Variabile
    Regione
    Italia
    Software
    AutoCAD 2016

    Predefinito

    Vedi questo lisp contenuto qui:

    http://www.cadtutor.net/forum/archiv...hp/t-1148.html

    può essere magari una base da dove partire.

  3. #3
    Utente Standard L'avatar di carry
    Iscritto dal
    2008
    Messaggi
    159
    Professione
    progettista carpenteria
    Regione
    Lombardia
    Software
    Autocad-Prosteel 3d

    Predefinito

    Ho scitto questa routine qualche anno fa, credo sia quello che vai cercando lo dovresti
    adattare al tuo caso, te la descrivo velocemente

    (DEFUN DXF(code elist)
    (cdr (assoc code elist)))
    Questa funzione ti trova i valori DXF


    (DEFUN GET-DAT (/)
    (SETQ SS (SSGET "X" ' ((2 . "DAT-Pre") (8 . "0"))));seleziono tutti gli attributi di nome "dat-pre" sul piano "0"
    (if ss (progn (setq con 0 mas (sslength ss));se li trovo setto un contatore a 0 e li conto
    (while (< con mas) (setq S (ssname ss con);eseguo il ciclo per quanti sono
    S1 (entget s)
    S2 (entget (entnext (dxf -1 S1)))
    Po (cons (ATOi (DXF 1 S2)) po)
    S3 (entget (entnext (dxf -1 S2)))
    N-PEZ (DXF 1 S3) ;qui mi trova il N-PEZZI
    S4 (entget (entnext (dxf -1 S3)))
    PROF (DXF 1 S4);qui mi trova il PROFILO
    S5 (entget (entnext (dxf -1 S4)))
    LUNG (DXF 1 S5);qui mi trova la LUNGHEZZA
    S6 (entget (entnext (dxf -1 S5)))
    P-TOT (cons (atof (DXF 1 S6)) p-tot);qui il aggiungo il peso alla lista del peso totale
    S7 (entget (entnext (dxf -1 S6)))
    MATERALE (cons (atof (dxf 1 s7)) s-ver)
    CON (1+ CON))
    )))
    (setq p-tot (apply '+ p-tot));sommo tutti i valori della lista peso totale
    (setq pos (apply ' max po )))

    valuta e prova
    ciao

  4. #4
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    18
    Professione
    Progettazione
    Regione
    Lombardia
    Software
    Autocad

    Predefinito Somma valori attributi

    Grazie 1000 ragazzi, visto che l'appetito vien mangiando ;) non è che mi aiutereste a modificare il programma in modo che la somma venga restituita in un messaggio dentro una finestrella (funzione ALERT se non ricordo male) e presenti un tasto COPY che praticamente cliccandoci sopra copia il risultato nella clipboard e chiude la finestra?
    Ho già modificato il sorgente in modo che utilizzi l'attributo da me definito (WEIGHT) ma non riesco appunto a fare quello che vi ho chiesto sopra:

    (defun c:wgt2 (/ tm ss i en an ad at av vl)
    (initget 1)
    (setq tm (strcase "WEIGHT"))
    (and (setq ss
    (ssget "X" (list (cons 0 "INSERT")
    (cons 66 1)
    (cons 67 (if (= (getvar "TILEMODE") 1) 0 1)))))
    (setq i (sslength ss))
    (while (not (minusp (setq i (1- i))))
    (setq en (ssname ss i)
    an (entnext en))
    (while (= "ATTRIB" (cdr (assoc 0 (entget an))))
    (setq ad (entget an)
    at (strcase (cdr (assoc 2 ad)))
    av (cdr (assoc 1 ad)))
    (if (= at tm)
    (setq vl (cons (atof av) vl)))
    (setq an (entnext an)))))
    (apply '+ vl))

    Aspetto fiducioso....grazie ancora. :):):)
    Cristian

  5. #5
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    18
    Professione
    Progettazione
    Regione
    Lombardia
    Software
    Autocad

    Predefinito

    Qualcuno ha un idea di come fare?

    Grazie.
    Cristian

  6. #6
    Utente Senior L'avatar di Shape
    Iscritto dal
    2007
    Messaggi
    1220
    Professione
    Disegnatore Carpenteria
    Regione
    Friuli
    Software
    Autocad, VBA-AutoLisp, Tecnometal4D, GIMP

    Predefinito

    Citazione Originariamente Scritto da CristianC Visualizza Messaggio
    Qualcuno ha un idea di come fare?

    Grazie.
    Cristian
    Molto più semplice realizzarla in VBA con intrfaccia grafica..... ( a mio parere ) filtro sul blocco lettura attributi e memorizzazione risultato

  7. #7
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    18
    Professione
    Progettazione
    Regione
    Lombardia
    Software
    Autocad

    Predefinito

    Purtroppo non ho alcuna esperienza di programmazione in VBA....

  8. #8
    Utente Senior L'avatar di GP.
    Iscritto dal
    2008
    Messaggi
    1998
    Professione
    Nientologo
    Regione
    Vercelli
    Software
    uozapp

    Predefinito

    Non arrivando ad una soluzione e dovendo arrangiarmi farei così, senza DCL:

    supponedo che il tuo totale sia 300


    (setq TOTALE 300)
    (setq TOTALE (rtos TOTALE))
    (command "_TEXT" "0,0" "" "" TOTALE)
    (command "_COPYCLIP" "_L" "")
    (command "_ERASE" "_L" "")
    (setq RIEPILOGO (strcat "TOTALE VALORE ATTRIBUTI = " TOTALE))
    (alert RIEPILOGO)
    Ultima modifica di GP.; 24-05-2008 alle 18: 44

  9. #9
    Utente Junior
    Iscritto dal
    2008
    Messaggi
    18
    Professione
    Progettazione
    Regione
    Lombardia
    Software
    Autocad

    Predefinito

    va benissimo!
    Sei stato molto gentile!
    Grazie.

    Cristian

  10. #10
    Utente Senior L'avatar di GP.
    Iscritto dal
    2008
    Messaggi
    1998
    Professione
    Nientologo
    Regione
    Vercelli
    Software
    uozapp

    Predefinito

    Prego, mi piacerebbe però sapere se è proprio necessario questo giro contorto o se ci sono comandi specifici da inserire nel codice.


  • Pagina 1 di 2 12 UltimaUltima

    Discussioni Simili

    1. Memorizzare valori attributi
      Di fabr nel forum Lisp per Autocad
      Risposte: 5
      Ultimo Messaggio: 28-05-2010, 12: 54
    2. Pilotare i valori di sketch 2D con i valori in "Misura"
      Di cadmaster nel forum CATIA V5 CATPart
      Risposte: 1
      Ultimo Messaggio: 16-04-2008, 13: 28
    3. Risposte: 0
      Ultimo Messaggio: 18-01-2008, 09: 00
    4. Somma lunghezze
      Di arri nel forum Lisp per Autocad
      Risposte: 0
      Ultimo Messaggio: 27-12-2007, 00: 24

    Segnalibri

    Segnalibri

    Permessi di Scrittura

    • Tu non puoi inviare nuove discussioni
    • Tu non puoi inviare risposte
    • Tu non puoi inviare allegati
    • Tu non puoi modificare i tuoi messaggi
    •  



    CAD3D.it - la community dei progettisti