Invité renac Posté(e) le 24 mars 2011 Posté(e) le 24 mars 2011 Bonsoir à tous, Je cherche une fonction lisp qui permettrait des infos sur un solide 3d (boite,long larg et haut). J'ai un bout de code lisp, mais qui n'est pas satisfaisant. code lisp: (vl-load-com) (setq objSel (entsel \"\\nMontrez l\'objet: \")) (setq 3dObj (vlax-ename->vla-object (car objSel))) (vlax-dump-object 3dObj ) merci pour vos réponses éventuelles
RhymOne Posté(e) le 24 mars 2011 Posté(e) le 24 mars 2011 Bonjour,j'ai sa dans ma bibliothèque je te l'envoie demain .et si tu t connais tu peux le modifier pour avoir plus d'info sur les solid 3DDonne moi ton adresse mail... Avis au amateurs DAO: AutoCAD(2D & 3D), CovadisCAO: 3D's MAX, Rhinoceros 3D, REVITGeoModeliSation: AutoCAD MEP, RhinoTerrainRendu: Vray for Rhino, Keyshot, LumionProgrammation: Grasshopper, Dynamo, VisualStudio C.V.Profil LinkedInBookSite web http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg
Invité renac Posté(e) le 24 mars 2011 Posté(e) le 24 mars 2011 merci de m'avoir répondu rapidement mon émail = jeanmarcbabilon@yahoo.fr a+ merci d'avance pour la réponse par @
(gile) Posté(e) le 24 mars 2011 Posté(e) le 24 mars 2011 renac, tu peux voir ce sujet. rhymone, Je pensais que CADxp était un site de partage.Tu pourrais peut-être poster ton code...Ça intéresserait certainement d'autres membres (dont moi). lecrabe, Si tu es bien modérateur du forum AutoCAD LT 2012 pourrais-tu déplacer ce message vers un forum LISP, merci Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 24 mars 2011 Posté(e) le 24 mars 2011 Hello Voici une excellente routine qui dessine la Bounding Box 2D ou 3D de l'objet selectionne Commande au clavier : BBOX C (comme souvent) une excellente routine de Gilles ! Cela pourra peut etre t'aider !? Le Decapode ;; Doug C. Broad, Jr. ;; can be used with vla-transformby to ;; transform objects from the UCS to the WCS (defun UCS2WCSMatrix () (vlax-tmatrix (append (mapcar '(lambda (vector origin) (append (trans vector 1 0 t) (list origin)) ) (list '(1 0 0) '(0 1 0) '(0 0 1)) (trans '(0 0 0) 0 1) ) (list '(0 0 0 1)) ) ) ) ;; transform objects from the WCS to the UCS (defun WCS2UCSMatrix () (vlax-tmatrix (append (mapcar '(lambda (vector origin) (append (trans vector 0 1 t) (list origin)) ) (list '(1 0 0) '(0 1 0) '(0 0 1)) (trans '(0 0 0) 1 0) ) (list '(0 0 0 1)) ) ) ) ;;; BBOX par GC ;;; Crée une entité (polyligne ou boite) figurant la "bounding box" de l'objet sélectionné. (defun c:bbox (/ bbox_err AcDoc Space obj bb minpoint maxpoint pt1 pt2 lst poly box cen norm) (vl-load-com) (defun bbox_err (msg) (if (or (= msg "Fonction annulée") (= msg "quitter / sortir abandon") ) (princ) (princ (strcat "\nErreur: " msg)) ) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)) ) (setq *error* m:err m:err nil ) (princ) ) (setq AcDoc (vla-get-activedocument (vlax-get-acad-object)) Space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) m:err *error* *error* bbox_err ) (vla-startUndoMark AcDoc) (while (not (setq obj (car (entsel))))) (setq obj (vlax-ename->vla-object obj)) (vla-TransformBy obj (UCS2WCSMatrix)) (setq bb (vl-catch-all-apply 'vla-getboundingbox (list obj 'minpoint 'maxpoint ) ) ) (if (vl-catch-all-error-p bb) (progn (princ (strcat "; erreur: " (vl-catch-all-error-message bb)) ) (vla-TransformBy obj (WCS2UCSMatrix)) ) (progn (setq pt1 (vlax-safearray->list minpoint) pt2 (vlax-safearray->list maxpoint) ) (if (or (equal (car pt1) (car pt2) 1e-007) (equal (cadr pt1) (cadr pt2) 1e-007) (equal (caddr pt1) (caddr pt2) 1e-007) ) (progn (cond ((equal (car pt1) (car pt2) 1e-007) (setq lst (list pt1 (list (car pt1) (cadr pt1) (caddr pt2)) pt2 (list (car pt1) (cadr pt2) (caddr pt1)) ) ) ) ((equal (cadr pt1) (cadr pt2) 1e-007) (setq lst (list pt1 (list (car pt1) (cadr pt1) (caddr pt2)) pt2 (list (car pt2) (cadr pt1) (caddr pt1)) ) ) ) ((equal (caddr pt1) (caddr pt2) 1e-007) (setq lst (list pt1 (list (car pt1) (cadr pt2) (caddr pt1)) pt2 (list (car pt2) (cadr pt1) (caddr pt1)) ) ) ) ) (setq box (vlax-invoke Space 'add3dPoly (apply 'append lst)) ) (vla-put-closed box :vlax-true) ) (progn (setq cen (mapcar '(lambda (x y) (/ (+ x y) 2)) pt1 pt2) pt2 (mapcar '- pt2 pt1) box (vla-addBox Space (vlax-3d-point cen) (car pt2) (cadr pt2) (caddr pt2) ) ) ) ) (if (= (vla-get-ObjectName obj) "AcDbText") (progn (setq norm (vlax-get obj 'Normal) ) (vla-Move box (vlax-3d-point (trans '(0 0 0) norm 0)) (vlax-3d-point (trans (list 0 0 (caddr (trans (vlax-get obj 'InsertionPoint) 0 norm ) ) ) norm 0 ) ) ) ) ) (mapcar '(lambda (x) (vla-TransformBy x (WCS2UCSMatrix))) (list obj box) ) ) ) (vla-endUndoMark AcDoc) (setq *error* m:err m:err nil ) (princ) ) Autodesk Expert Elite Team
PhilOctet Posté(e) le 14 avril 2011 Posté(e) le 14 avril 2011 Bonsoir, Il me semblait que l'on ne pouvait pas charger et lancer des commandes AutoLISP dans l'environnement d'AutoCAD LT. Qu'en es-t-il ? et existe-t-il une astuce pour le faire ?
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant