Najibad Posté(e) le 29 juillet 2009 Posté(e) le 29 juillet 2009 Bonjour à tous, je voudrais convertir des cercles 3d en polyline 3d est ce quelqu'un pourrait me donner un coup de main ? Merci d'avance
rebcao Posté(e) le 29 juillet 2009 Posté(e) le 29 juillet 2009 Bonjour, C'est quoi un cercle 3D ? Avec une altitude Z ? Transformer en POLYARC ou POLYGONE à multiples cotés ? Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Tramber Posté(e) le 29 juillet 2009 Posté(e) le 29 juillet 2009 A l'arrach' : Charge ce code dans un fichier fichier.lsp et lance c2po3 (defun c:c2po3() (setq vent(vlax-ename->vla-object(car(entsel)))) (setq varia 0.0 listpoints nil) (setq delta(/(vlax-curve-getEndParam vent)16.0)) (repeat 16 (setq listpoints(append listpoints(list(vlax-curve-getPointatParam vent varia)))) (setq varia(+ varia delta)) ) (vla-put-closed (vlax-invoke(vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) 'add3dPoly (apply 'append listpoints)) T) ) Ca marche chez moi sur un cercle tourné dans l'espace. Le code n'efface pas le cercle et fonctionne dans le SCG. Non texté dans le SCU. EditéMieux, la poly3D est fermée. [Edité le 29/7/2009 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Najibad Posté(e) le 29 juillet 2009 Auteur Posté(e) le 29 juillet 2009 salut Il s'agit des cercles avec une altitude Z que je veux convertir en polyline fermées en conservant l'altitude. J'ai testé le code mais ça plante, j'obtient : erreur: fonction null(VLAX-ENAME->VLA-OBJECT (CAR (ENTSEL)))(SETQ VENT (VLAX-ENAME->VLA-OBJECT (CAR (ENTSEL))))(C:C2PO3) est ce qu'il y a une autre solution ?
lili2006 Posté(e) le 29 juillet 2009 Posté(e) le 29 juillet 2009 Bonjour à toutes et tous, Et avec l'expression : (vl-load-com) en début de lisp ? C'est à dire => (defun c:c2po3() (vl-load-com) (setq vent(vlax-ename->vla-object(car(entsel)))) (setq varia 0.0 listpoints nil) (setq delta(/(vlax-curve-getEndParam vent)16.0)) (repeat 16 (setq listpoints(append listpoints(list(vlax-curve-getPointatParam vent varia)))) (setq varia(+ varia delta)) ) (vla-put-closed (vlax-invoke(vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) 'add3dPoly (apply 'append listpoints)) T) ) En attendant que Tramber, repasse par là,... :P Civil 3D 2025 - COVADIS_18.3c https://www.linkedin...3%ABt-95313341/
Najibad Posté(e) le 29 juillet 2009 Auteur Posté(e) le 29 juillet 2009 salut J'ai essayé en intégrant (vl-load-com) mais ça ne marche toujours pas ?
(gile) Posté(e) le 29 juillet 2009 Posté(e) le 29 juillet 2009 Salut, Pourquoi des polylignes 3d ? avec des polylignes "normales" (dites optimisées) on peut faire 2 arcs, avec une poly 3d, tu auras toujours un polygone. Pour une polyligne(defun Circle2Pline (circle / acdoc center radius elev norm pt0 pt1 pline) (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) center (vlax-get circle 'Center) norm (vlax-get circle 'Normal) center (trans center 0 norm) elev (caddr center) radius (vla-get-Radius circle) pt0 (polar center 0 radius) pt1 (polar center pi radius) pline (vlax-invoke (vla-objectIdToObject acdoc (vla-get-OwnerId circle)) 'addLightWeightPolyline (list (car pt0) (cadr pt0) (car pt1) (cadr pt1)) ) ) (vla-put-Normal pline (vlax-3d-point norm)) (vla-put-elevation pline elev) (vla-put-Closed pline :vlax-true) (vla-setBulge pline 0 1.0) (vla-setBulge pline 1 1.0) ) (defun c:C2PL (/ ss) (vl-load-com) (if (ssget '((0 . "CIRCLE"))) (progn (vlax-for circle (setq ss (vla-get-ActiveSelectionSet acdoc)) (Circle2Pline circle) (vla-delete circle) ; Supprimer ou commenter cette ligne pour conserver les cercles ) (vla-delete ss) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 29 juillet 2009 Posté(e) le 29 juillet 2009 En attendant que Tramber, repasse par là,... :P Coucou ! Bête et discipliné, j'ai donné de quoi faire une poly3D !Le code est robuste normalement sauf le filtrage des entités à la selection. Je suis pour que chacun regarde ce qui compose un code et demande ensuite des amelio. le "function null" me semble bizarre..... Je continue de bosser (7h30 ce matin jusqu'à maintenant, bientôt le tour d'horloge), detestable période de vacances. Au 35h avec le même bulletin de salaire j'aurais un taux horaire fabuleux ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Najibad Posté(e) le 29 juillet 2009 Auteur Posté(e) le 29 juillet 2009 salut, en utilsant le code de gile j'obtiens le message suivant après la sélection d'objets :; erreur: type d'argument incorrect: VLA-OBJECT nil ?
(gile) Posté(e) le 29 juillet 2009 Posté(e) le 29 juillet 2009 J'avais oublié le (vl-load-com).J'ai modifié le code tu peux re-essayer.PS : j'ai essayé le code Tramber, il fonctionne aussi. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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