densità 1

and

Utente Standard
Professione: progettista
Software: CoCreate
Regione: Emilia
#2
Ecco la macro
(in-package :custom)
(use-package :OLI)

(sd-defdialog 'Show_by_density

:dialog-title "Visualizza per Densita"
:toolbox-button nil
:variables
'(
(ASSY :value-type :assembly :modifies :nil :initial-value (sd-pathname-to-obj "/") :title "Gruppo")
(wiseerst :value-type :boolean :toggle-type :wide-toggle :title "Clear VP First" :initial-value t)
(mindens :value-type :number :initial-value 0.05 :Title "Min.Densita")
(maxdens :value-type :number :initial-value 999999999 :Title "Max.Densita")
(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)
(vis-risult :value-type :grouped-boolean :initial-value nil :title "Lista Densita")
("LISTA DENSITA ISTANZA")
(vis-risult_ist :value-type :grouped-boolean :initial-value t :title "Lista Istanza")
)

:local-functions
'(
(doit ()
(if wiseerst (clear_vp (oli:sd-inq-current-vp)) ())
;(setf ASSY (sd-pathname-to-obj "/"))
(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-inq-part-density obj))
(setf dens_ist (sd-inq-part-density obj :instance))
;;(display dens_ist)
;(display (sd-inq-obj-pathname obj))
(if (equal dens NIL) (setf dens 0)())
(if (and (> dens mindens) (< dens maxdens)) (add_to_vp_drawlist (oli:sd-inq-current-vp) obj)())

(if vis-risult
(if (and (> dens mindens) (< dens maxdens))
(display (format nil "BASE = ~a : ~10F" (sd-inq-obj-basename obj) dens)))
t
);;if vis-risult

(if vis-risult_ist
(if (not (equal dens_ist NIL))
(display (format nil "ISTANZA = ~a : ~A" (sd-inq-obj-basename obj) dens_ist)))
t
);;if vis-risult_ist
)())
)
(fit_vp (oli:sd-inq-current-vp))
(update_screen)
)
)

;:mutual-exclusion
;'(ASSY)

:eek:k-action
'(doit)
:help-action '(sd-display-message "Visualizza Densita")
)


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

mguerra

Utente Junior
Professione: impiegato
Software: Creo
Regione: Romagna
#3
ti ringrazio, come faccio a creare il comando?
o meglio dove incollo la macro?


(ho la versione 17 di Modeling)
 

Kaji

Utente Standard
Professione: Disegnatore CAD e progettista meccanico
Software: PTC Modeling 19.0 PE2 CdM, poco Inventor e Documenta
Regione: Emilia Romagna
#4
Credo che per fare una marco basti semplicemente:

- aprire un file di testo nuovo
- copiare ed incollare il testo che rappresenta la macro
- salvare il file con estensione .lsp
- caricare il file in OSD.

IL fatto che tu abbia la 17 è meglio anche perché molte lisp vecchie, se non sbaglio, hanno iniziato ad aver problemi dalla 18 in poi