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

密度 1

  • Thread starter Thread starter mguerra
  • Start date Start date

mguerra

Guest
qualcuno sa come individuare rapidamente le parti a densità 1 all'interno di un gruppo?
 
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)

:ok-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)
)
)
)
)
 
ti ringrazio, come faccio a creare il comando?
o meglio dove incollo la macro?


(ho la versione 17 di modeling)
 
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
 

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