Nuove funzioni

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#1
Salve a tutti!

E' da qualche giorno che sto giocando con il LISP.

Ho trovato una macro, che mi esporta l'albero della struttura in excel.
Ho fatto anche qualche variazione ed hoc capito abbastanza come funziona.

Ora volevo anche aggiungere un campo con il peso.
Ho cercato nelle funzione del tipo sd-... nell'integration kit una che mi ritornasse il peso, ma ho trovato solo quella che mi ritorna la densità sd-inq-part-density.

Allora ho pensato che se ne trovavo una che ritornava il volume, bastava moltiplicare...

Non sono riuscito a trovarl, poi ho trovato una macro lisp che ritorna la densità e la massa di un gruppo.

Per trovare la densità usa la funzione suddetta, per trovare il peso invece usa:
(sd-call-cmds(get_vol_prop :for_part :part obj :tol :percent_tol 10 :mass))

La mia domanda è:
dove è saltata furoi la funzione get_vol_prop?

Allego la macro per completezza.

Grazie
Michele
 

Allegati

Andy-manager

Utente Standard
Professione: cad manager
Software: CoCreate
Regione: veneto
#2
in moedling nel menù di calcolo parte trovi il volume oltre che la massa densità baricentro e ltro...
 

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#3
Graize come sempre per la risposta.

Lo so che c'è la funzione calcolo della parte di Modeling, ma se voglio richiamare queste funzioni in Lisp, dove trovo, la descrizione dei vari comandi.

Perchè vorrei completare una Macro che sto facendo che oltre alla distinta mi tira fuori anche i relativi pesi.

Ciao e grazie
Michele
 

and

Utente Standard
Professione: progettista
Software: CoCreate
Regione: Emilia
#4
(in-package :prova)
(use-package :OLI)

(sd-defdialog 'List_density

:dialog-title "Lista di Massa e Densita"

:variables
'(
(ASSY :value-type :assembly :modifies :nil :initial-value (sd-pathname-to-obj "/") :title "Gruppo")
(COUNT_CSN :initial-value nil :multiple-items t)
(TOT :initial-value nil :multiple-items t)
(p-count :initial-value nil :multiple-items t)
(a-count :initial-value nil :multiple-items t)
(obj :modifies :nil)
)

:local-functions
'(
(doit ()
(display " MASSA : DENSITA : NOME PARTE ")
(display "====== ======= ===========")
(setf TOT (jb-inq-obj-tree-list ASSY))
(dolist (obj TOT "done")
(setf vlag 0)
(setf partje (equal (sel_item-type obj) *sd-part-seltype*))
(setf sampje (equal (sel_item-type obj) *sd-assembly-seltype*))
(if (equal partje T) (setf vlag 1)())
(if (equal sampje T) (setf vlag 0)())
(if (equal vlag 1)
(progn
(setf dens (sd-sys-to-user-units :density (sd-inq-part-density obj)))
(setf mas (sd-sys-to-user-units :mass (sd-call-cmds(get_vol_prop :for_part obj :tol :percent_tol 10 :mass))))
(display (format nil "~6,6F : ~6,6F : ~a" mas dens (sd-inq-obj-basename obj)))
(display " ")
)())
)
;(fit_vp "vport1")
(update_screen)
)
)

;:mutual-exclusion
;'(ASSY)

:eek:k-action
'(doit)
)

(defun jb-inq-obj-tree-list (obj)
(cons obj
(apply #'nconc
(mapcar #'jb-inq-obj-tree-list
(sd-inq-obj-children obj)
)
)
)
)