Problemi LISP

micgiul

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

Ho dei problemi con il Lisp che non riesco a risolvere.

Ho trovato su un sito un programmino LISP, per visualizzare dei campi aggiuntivi sull'elenco struttura.

Ora volevo aggiungere dei miei campi ad esempio il peso della parte, una volta nota la densità.

Ho allora copiato del codice e scritta la seguente funzione:

(defun browser-display-contents-weight (node)
(let ((node-item (sd-pathname-to-obj (BrowserNode-objPath node))))
(if (and (sd-inq-part-p node-item) (sd-inq-part-density node-item :instance))
(sd-call-cmds (get_vol_prop :for_part :part node-item :tol :percent_tol 10 :mass))
"n/a"
)
);let
)

Mi dà errore quando va a valutare questa linea (sd-call-cmds (get_vol_prop :for_part :part node-item :tol :percent_tol 10 :mass)).

Non è un errore di sintatssi tipo mancanza di parentisi mi dice che non riesce a valutare il codice.
Premetto questa linea mi funziona in un'altra funzione LISP,e mi dà proprio il peso!

Non so come posso fare se potete aiutarmi vi ringrazio in anticipo.

Grazie
Michele
 

Andy-manager

Utente Standard
Professione: cad manager
Software: CoCreate
Regione: veneto
#2
dall'elenco struttura visualizzi gli attirbuti della parte (vedi densità) il peso mi sà che è un pò difficile farglielo leggere.
 

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#3
La risposta di Andy-manager mi ha messo la pulce nell'orecchio....

e quindi ho forzato un pò il sistema e trovato la soluzione di cui allego il file .lsp.

Praticamente carico la nuova tabella di visualizzaione,e poi dal menu strumenti lancio la funzione "aggiungere peso" che una volta selezionata tutte le parti con il menù di selezione (ad esempio tutto radice cliccando su ricorsivo) mi calcola in automatico il peso nota la densità....

Funzionicchia è un primo passo per me nella direzione di capire qualcosa di LISP...

ciao e spero che questo file possa essere di aiuto a qualcuno.
 

Allegati

Shaba

Utente Standard
Professione: Disegnatore
Software: Me10 The Best! OSD 19, KeyCreator 13.5, SolidWorks 2017, NX
Regione: Lazio+Veneto
#4
L'ho provata
Molto carina :)
Bravo!
 

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#5
Ciao Shaba, visto che la prima volta hai apprezzato il mio lavoro, sono riuscito ad aggiornare la macro.

Ora calcola anche i pesi.

Ho fatto una piccola verifica su dei miei disegni (premesso con circa 4000 oggetti tra parti e assiemi) e mi dà un errore sotto al 1 per mille paragonadolo con il peso che mi dà la funzione calcolo parte!

E questa volta mi ritengo soddisfatto.

Ciao
Michele
 

Allegati

Shaba

Utente Standard
Professione: Disegnatore
Software: Me10 The Best! OSD 19, KeyCreator 13.5, SolidWorks 2017, NX
Regione: Lazio+Veneto
#6
Grazie!
Ho 2 piccole richieste:
Riusciresti a scrivere nella tabella il peso specifico *1000?
Quindi al posto di 0.00786 => 7.86
E si puo' cambiare il titolo della colonna?
Vorrei cambiare "Modificabile" in "Mod"
THANKS!
 

Allegati

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#7
Dalla immagine che hai non stai usando la "mia" macro.

Se vuoi fare quello che mi chiedi o mi mandi il file della macro che stai usando....

Ciao
Michele
 

Shaba

Utente Standard
Professione: Disegnatore
Software: Me10 The Best! OSD 19, KeyCreator 13.5, SolidWorks 2017, NX
Regione: Lazio+Veneto
#8
Eccola!
Ho provato a modificarla con scarsi risultati
Il problema è che non trovo la documentazione dei comandi.. :/
Ad esempio questo "sd-create-column-definition"
Sull'help non c'è nulla
 

Allegati

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#9
Come vedi nel file, la parola "Modificabile" non c'è, si vede infatti che richiama qualche altro browser... però non ho guardato con attezione il codice...

Invece ti ho aggiunto i comandi per moltiplicare per 1000 la densità e ti ho fatto un appunto con scritto modficata...

Spero di averti risolto la questione....

Per quanto riguarda la documentazione è sulla guida in linea...
Solo che è da qualche mese che ci sto sbattendo il muso e spero prima o poi di capirci qualcosa di più...

Ciao
Michele
 

Allegati

Shaba

Utente Standard
Professione: Disegnatore
Software: Me10 The Best! OSD 19, KeyCreator 13.5, SolidWorks 2017, NX
Regione: Lazio+Veneto
#10
Grazie del file!
Avevo intuito anche io di fare il * 1000 ma mi davare errore

:detail-config ':)contents-name :doc-uid-column :modifiable :contents-density :instance-density)

Il "Modificabile" lo prende da :modifiable

Bisognerebbe creare una colonna pesonalizzata con "sd-create-column-definition"
Quindi così si riesce a dare il nome personalizzato
Pero' mi serve in comando tipo inq che mi dica se la parte o il gruppo è modificabile
Una cosa simile per quanto è stato fatto per il :contents-density
 

Shaba

Utente Standard
Professione: Disegnatore
Software: Me10 The Best! OSD 19, KeyCreator 13.5, SolidWorks 2017, NX
Regione: Lazio+Veneto
#11
Ma non avendo una documentazione.... :/

Tu trovi dove spiega il comando "sd-create-column-definition"
Io no
 

Shaba

Utente Standard
Professione: Disegnatore
Software: Me10 The Best! OSD 19, KeyCreator 13.5, SolidWorks 2017, NX
Regione: Lazio+Veneto
#12
PHP:
(oli:sd-num-to-string (* (oli::sd-sys-to-user-units :density (sd-inq-part-density node-item :contents)) 1000))
Anche nel tuo file mancava una parentesi.
Ora fuziona ^__^

(scusate il triple post)
 

micgiul

Utente Junior
Professione: Ingegnere
Software: CoCreate
Regione: Marche
#13
Scusami per la parentesi...

L'informazioni che cerchi... si trovano nel manuale in linea ed integration kit, e trovi con un pò di pazienza tutto quello che ti dovrebbe servire.

Ciao
Michele
 

Shaba

Utente Standard
Professione: Disegnatore
Software: Me10 The Best! OSD 19, KeyCreator 13.5, SolidWorks 2017, NX
Regione: Lazio+Veneto
#14
Per caso hai aggiornato la Macro?
custom_browser_views.lsp
So' che dovevi aggiungere la funziona per dare i pesi anche ai gruppi e sottogruppi
TNX!
 

Wolfman

Utente Junior
Professione: Project Manager
Software: OSD
Regione: Emilia
#15
Ti ho aggiunto i pesi per i gruppi. La macro non è perfetta ma il risultato lo dà.
Non capisco perchè ti serve una macro di questo tipo visto che c'è il comando apposito che ti visualizza il peso.
Per chi utilizza Model Manager non la utilizzate in quanto su ogni parte non riservata vi dà un errore.
Caricarla da >File>Carica>Selezionare il file nella cartella. Altrimenti vi dà un errore.
Per utilizzarla selezionare con una finestra i componenti, e selezionare dalla struttura i gruppi.
 

Allegati

Shaba

Utente Standard
Professione: Disegnatore
Software: Me10 The Best! OSD 19, KeyCreator 13.5, SolidWorks 2017, NX
Regione: Lazio+Veneto
#16
Non capisco perchè ti serve una macro di questo tipo visto che c'è il comando apposito che ti visualizza il peso.
Ti ringrazio della macro
Beh sinceramente avere i pesi nella struttura è piu' comodo
Specialmente per il mio capo che lo usa sporadicamente...

Sto provando anche altre macro del tipo, ad esempio ne ho trovata una che da il peso solo toccando l'oggetto..