Aller au contenu

conversion cercles 3d en polyline3d


Najibad

Messages recommandés

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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.3a

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité