• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

問題 lisp

  • Thread starter Thread starter micgiul
  • Start date Start date

micgiul

Guest
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
 
dall'elenco struttura visualizzi gli attirbuti della parte (vedi densità) il peso mi sà che è un pò difficile farglielo leggere.
 
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.
 

Attachments

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
 

Attachments

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!
 

Attachments

  • Image4.png
    Image4.png
    1.6 KB · Views: 21
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
 
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
 

Attachments

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
 

Attachments

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
 
ma non avendo una documentazione.... :/

tu trovi dove spiega il comando "sd-create-column-definition"
io no
 
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)
 
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
 
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!
 
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.
 

Attachments

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..
 
non mi funziona.... il calcolo pesi .... modeling v.18
sapete perche
cioè non ti funziona proprio il comando calcola pesi di modeling o una lisp a parte, io ne avevo una che ti trovava le parti con desità 1 etc
 
non mi funziona.... il calcolo pesi .... modeling v.18
sapete perche
potrebbe essere che qualche comando sia diventato obsoleto, onestamente con la 18 non avevo trovato grossi problemi, cosa che con la 19 non posso dire, le lisp che usavo fino alla 18 non funzionavano praticamente più.

per controllare sta cosa prova a farti comparire le varie righe coi risultati a video col comando (display (funzione che vuoi vedere))
 
per alcune lisp che funzionavano fino alla versione 17, basta aggiungere ":toolbox-button t"
all'inizio della lisp

(sd-defdialog 'iwg-teil-mehrfach-eigenstaendig-dialog
:dialog-title "mehrfach eigenstaendig"
:toolbox-button t
;;:dialog-control :sequential
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top