fabcad Posté(e) le 12 février 2014 Posté(e) le 12 février 2014 Bonjour amis Lispeurs, J'ai créé une routine pour "monter" des polylignes en solides 3d.Pour les RDC et Niveaux pas de problème, mais pour les attiques, je suis obligé de décaler via vla-offset avec une distance de 2.8m, mais sur certaines polylignes le décalage est impossible car la distance d'un segment est trop petite. Mes interrogations sont :- Savoir si le décalage a bien fonctionné auquel cas je peux récupérer la dernière polyligne décalée sinon message d'erreur. Merci pour votre aide, Fabcad Le Rennais Métropolitain. (defun Attique (Pline_en_cours /) (setq vlaobjet_pline (vlax-ename->vla-object Pline_en_cours)) (setq code_attique (nth 1 liste_elements) hauteur_rdc 3.5 hauteur_attique 2.8 altitude_attique 3.5 );fin setq variables ;Creation de l'attique (if (and (eq "AcDbPolyline" (vla-get-objectname vlaobjet_pline)) (LM:ListClockwise-p (_group (vlax-get vlaobjet_pline 'coordinates))) ) (setq tableau_attique (vla-offset vlaobjet_pline dist_attique)) (setq tableau_attique (vla-offset vlaobjet_pline (- dist_attique))) );fin if ;;; Etape 1 Récupération de la polyligne Attique. (setq objet_attique (vlax-safearray-get-element (vlax-variant-value tableau_attique) 0)) ;;; Affectation du calque et la couleur à la polyligne en cours (vla-put-color objet_attique acRed) (vla-put-Layer objet_attique calque_Attiques) (vla-put-Elevation objet_attique altitude_attique) ;;; Etape 2 Changer l'épaisseur (pseudo-extrusion) (vla-put-Thickness objet_attique 2.8) ;;; Etape 3 Conversion de l'objet Attique epaissi en objet Attique solide ;;; Conversion de l'objet vlisp en objet AutoCAD et sa conversion en solide 3D (setq acad_objet_Attique (vlax-vla-object->ename objet_attique)) (command "_convtosolid" acad_objet_Attique "") );fin defun Attique
bryce Posté(e) le 13 février 2014 Posté(e) le 13 février 2014 Bonjour, Si tableau_attique est nil, c'est que le décalage n'a rien donné. ;) (defun Attique (Pline_en_cours / vlaobjet_pline tableau_attique objet_attique ) ; il vaut mieux déclarer certaines variables en local ! (setq vlaobjet_pline (vlax-ename->vla-object Pline_en_cours)) (setq code_attique (nth 1 liste_elements) ; variable inutilisée, et liste_elements n'existe pas ? hauteur_rdc 3.5 ; variable inutilisée ? hauteur_attique 2.8 altitude_attique 3.5 );fin setq variables ;Creation de l'attique (if (and (eq "AcDbPolyline" (vla-get-objectname vlaobjet_pline)) (LM:ListClockwise-p (_group (vlax-get vlaobjet_pline 'coordinates))) ) (setq tableau_attique (vla-offset vlaobjet_pline dist_attique)) (setq tableau_attique (vla-offset vlaobjet_pline (- dist_attique))) );fin if (if tableau_attique (progn ;;; Etape 1 Récupération de la polyligne Attique. (setq objet_attique (vlax-safearray-get-element (vlax-variant-value tableau_attique) 0)) ;;; Affectation du calque et la couleur à la polyligne en cours (vla-put-color objet_attique acRed) (vla-put-Layer objet_attique calque_Attiques) (vla-put-Elevation objet_attique altitude_attique) ;;; Etape 2 Changer l'épaisseur (pseudo-extrusion) (vla-put-Thickness objet_attique 2.8) ; remplacer 2.8 par hauteur_attique ? ;;; Etape 3 Conversion de l'objet Attique epaissi en objet Attique solide ;;; Conversion de l'objet vlisp en objet AutoCAD et sa conversion en solide 3D (setq acad_objet_Attique (vlax-vla-object->ename objet_attique)) (command "_convtosolid" acad_objet_Attique "") );fin progn (princ "\nLe décalage a échoué !") );fin if );fin defun Attique Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Olivier Eckmann Posté(e) le 13 février 2014 Posté(e) le 13 février 2014 Bonjour, Le décalage peut aussi générer plus d'un objet (par ex décalage d'un papillon vers l'intérieur => 2 polylignes). Donc en règle générale, je récupère la dernière entité de la base de données avec (entlast), puis je lance la fonction de création de nouvelles entités, puis je balaie depuis l'ancienne dernière entité jusqu'à la fin avec (entnext ) ce qui me donne toutes les nouvelles entités crées.C'est un peu barbare, mais ça marche assez bien. Olivier
fabcad Posté(e) le 13 février 2014 Auteur Posté(e) le 13 février 2014 Bonjour amis Lispeurs, Merci pour votre aide, c'est vrai que je n'avais pas pensé au phénomène du papillon mais les plines venant du SIG, je pense qu'ils ont fait des contrôles topologiques. Mais c'est à creuser. Fabcad Le Rennais Métropolitain.
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