Maxime85 Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Bonjour, j'ai une polyligne contenant des droites et des arcs j'aimerais le convertir en droites (ligne) et cercles (cercle tangent a deux droites ) je ne sais comment faire existe t'il un utilitaire ou un lisp pouvant le faire ? Merci d' avance En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
lovecraft Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Bonjour, Il faut juste décomposer ta polyligne. Cordialement, Laurent PS: Sinon as tu reçu mon mail, je t'es donné les coordonnées d'une personne qui pourrait te faire une formation Civil 3D , car en ce qui me concerne je n'ai pas trop le temps (changement de Job de mon coté) http://www.youtube.com/user/CADMINATOR?feature=mhee
Maxime85 Posté(e) le 27 février 2012 Auteur Posté(e) le 27 février 2012 Bonjour Laurent, Justement j ai décomposé mais je ne veux pas des arcs et des droites je veux des cercles complet et des droites Amicalement Ps:j ai pas reçu le mail par ailleurs dans deux semaines es ce que tu pourra être libre En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
lovecraft Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Re, Voici une solution qui te permettra de convertir tes Arcs en cercle. 1/ Convertir l'arc en polyligne2/ une fois cet Arc en polyligne (Clore cette polyligne)3/ Ensuite tu décomposes cette polyligne (On va avoir deux Arcs)4/ Tu joins tes deux Arc qui vont devenir un cercle. Cordialement, Laurent http://www.youtube.com/user/CADMINATOR?feature=mhee
Fundream Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Ouai enfin tu prend la commande cercle, tu accroche le centre de l'arc et un point sur l'arc et tu as ton cercle. Je comprend pas bien la méthode de lovecraft. Autocad 2015 - Lumion 3D - SCIA EngineerI7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.
lovecraft Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Re, Encore plus simple ;) Pour convertir un arc en Cercle Commande _join puis tu sélectionnes ton arc puis options E pour fermer l'arc et la on obtient un cercle Laurent http://www.youtube.com/user/CADMINATOR?feature=mhee
bonuscad Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Copie-colle directement ce qui suit en ligne de commande pour voir si ça te convient... ((lambda ( / js borne ss suivant n ent dxf_code) (setq js (ssget "_+.:E:S" '((0 . "LWPOLYLINE")))) (cond (js (setvar "CMDECHO" 0) (command "_.point" (getvar "VIEWCTR")) (setq borne (entlast)) (command "_.explode" js) (setvar "CMDECHO" 1) (if (and borne (entget borne)) (progn (setq ss (ssadd)) (while (setq Suivant (entnext Borne)) (if (eq (cdr (assoc 0 (entget Suivant))) "ARC") (ssadd Suivant ss) ) (setq Borne Suivant) ) (cond (ss (repeat (setq n (sslength ss)) (setq dxf_code (entget (setq ent (ssname ss (setq n (1- n))))) dxf_code (subst '(0 . "CIRCLE") '(0 . "ARC") dxf_code) ) (foreach n (list '(100 . "AcDbArc") (assoc 50 dxf_code) (assoc 51 dxf_code)) (setq dxf_code (vl-remove n dxf_code)) ) (entdel ent) (entmake dxf_code) ) ) ) ) ) (entdel borne) ) ) (prin1) )) 1 Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
VDH-Bruno Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 (modifié) Bonjour, J’ai perdu bonuscad a été le plus rapide, ma proposition de code pour une sélection unique.. ;; Décompose une Polyligne (LWPOLYLINE): ;; Les lignes -> lignes ;; Les arcs -> cercle ;; Tapez lwp2cl pour lancer la commande (defun c:lwp2cl (/ space ent) (vl-load-com) (setq space (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (cond ((eq (cdr (assoc 0 (entget (setq ent (car (entsel)))))) "LWPOLYLINE") (foreach obj (vlax-invoke (vlax-ename->vla-object ent) 'Explode) (if (eq (vla-get-ObjectName obj) "AcDbArc") ((lambda (obj1 obj2) (foreach prop '(Layer Color LineType LinetypeScale Normal) (vlax-put obj2 prop (vlax-get obj1 prop)) ) (vla-Delete obj1) ) obj (vla-AddCircle space (vla-get-Center obj) (vla-get-Radius obj)) ) ) ) (entdel ent) ) ) (princ) ) EDIT: Intégration de la propriété Normal au code pour supporter d’éventuelles rotations du SCU sur ses axes X et Y. Modifié le 28 février 2012 par VDH-Bruno 1 Apprendre => Prendre => Rendre
Maxime85 Posté(e) le 27 février 2012 Auteur Posté(e) le 27 février 2012 Bonsoir, Merci Beaucoup à tous en particulier à Bonuscad et VDH-Bruno parfait, j obtient ce donc je recherchais mais je perds autre chose la tangence . Le cercle n est pas tangent aux droites j' aimerais qu'il le soit http://i42.servimg.com/u/f42/15/62/62/90/01110.jpg Amicalement En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
lovecraft Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Bonsoir Maxwell85, Pourquoi ne passes tu pas par la création d'axe avec ajustement optimal ? Car celui-ci va te reconstruire l'axe avec les bons points de tangence (Cf capture) http://img11.hostingpics.net/pics/122348Capture.jpg On peut constater sur cette image que Civil reconstruit un axe avec comme support la polyligne 2D...ensuite il respecte les points de tangences Cordialement, Laurent http://www.youtube.com/user/CADMINATOR?feature=mhee
Maxime85 Posté(e) le 27 février 2012 Auteur Posté(e) le 27 février 2012 Bonsoir Laurent, j ai justement entendu parler de cette méthode mais je m'y connais pas trop j ai essayé de bidouiller mais sans succès. Amicalement En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
lovecraft Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Peux tu joindre ton fichier afin de réaliser quelques tests Merci Laurent http://www.youtube.com/user/CADMINATOR?feature=mhee
Maxime85 Posté(e) le 27 février 2012 Auteur Posté(e) le 27 février 2012 Bonsoir Laurent, Voici le lien pour le fichier :Fichier Amicalement En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
(gile) Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Le cercle n est pas tangent aux droites j' aimerais qu'il le soitJe pense que les cercles sont bien tangents aux lignes, il peut difficilement en être autrement quand les cercles ont les mêmes centres et rayons que les arcs (si ces arcs sont eux-même tangents aux lignes). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lovecraft Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Bonsoir Maxwell, Ci-joint le fichier sous Civil 3D, J'ai optimisé ton axe avec la commande ajustement optimal Lien: C'est ici Merci de ton retour Cordialement, Laurent 1 http://www.youtube.com/user/CADMINATOR?feature=mhee
Maxime85 Posté(e) le 27 février 2012 Auteur Posté(e) le 27 février 2012 Bonsoir , voici le code que j' utilise pour créer un fichier de commande (defun c:axe ( / lparam fonc_long_clotho input typf oldRSCL sslin sscer orig) ;-------------------- ; Variables globales ;-------------------- (setq lparam '( (RSCL 240 "Rayon minimal sans clothoide (0 pour aucune clothoide) ") (KMAX 67 "Longueur maximale de clothoide en metres ") (PRECMP 5 "Nombre de decimales pour l'exportation vers Micropiste ") (EXTMAP "MAP" "Extension par defaut des fichiers d'axe en plan pour Micropiste ") )) (_param lparam) (setq PRECAXE 6 EXTAXE "XAP") ;----------------------------------------------------------------- ; fonction donnant la longueur de clotho en fonction du rayon 'ray' ; et KMAX, longueur maximale ;----------------------------------------------------------------- (setq fonc_long_clotho '(min (* 6.0 (expt (Abs ray) 0.4)) KMAX) ) ;-------------------- ; ;-------------------- (PrinC "\nCouche : <")(princ (GetVar "CLAYER"))(princ "> ") (setq lay (GetString)) (If (= lay "") (setq lay (GetVar "CLAYER")) ) (initget "O,o N,n") (setq input (getkword "\nVoulez-vous ordonner les cercles et les droites O/N <O> ")) (if (or (null input) (= input "O")) (_ordap)) ;-------------------- ; lecture des entites ;-------------------- (princ "\nLecture des entites en cours...") (SetQ sslin (ssget "x" (List '(0 . "LINE") (Cons 8 lay)) ) sscer (ssget "x" (List '(0 . "CIRCLE") (Cons 8 lay)) ) ) (princ "\nLecture des entites terminee.") (if (or (null sslin) (null sscer) (/= (sslength sscer) (1- (sslength sslin))) ) (progn (close f) (princ "\nIl doit y avoir (n+1) droites pour n cercles.") (exit) ) ) (princ "\n") (princ (sslength sslin)) (princ " droites.") (princ "\n") (princ (sslength sscer)) (princ " cercles.") (princ "\nOK.") (princ "\nPK du premier point ")(princ (cdr (assoc 10 (entget (ssname sslin (1- (sslength sslin))))))) (if (setq input (getreal " <0.000> ")) (setq orig input) (setq orig 0.0)) (initget "O N") (setq input (getkword "\nMettre des clothoides O/N <O> ")) (if (= input "N")(setq oldRSCL RSCL RSCL 0)(setq oldRSCL RSCL)) (initget "3 4 A Q") (setq typf (getkword "\nVoulez-vous generer un fichier (MicroPiste[3]/Piste+[4]/[Q]uitter) <4> ")) (if (/= typf "Q") (progn (cond ((null typf) (setq typf 'T)) ((= typf "3") (setq typf nil)) ) (cond ((= typf "A") (_genxap sslin sscer fonc_long_clotho orig)) (T (_genmap sslin sscer fonc_long_clotho orig typf)) ) ) ) (setq RSCL oldRSCL) (princ) ) (princ "AXE ") Mais ce qui me surprends c' est que j n'obtiens pas ce que je recherche pourtant les Lisp posté Précédemment par Bonuscad et Bruno semblaient résoudre le problème http://i42.servimg.com/u/f42/15/62/62/90/000010.jpg Ps: Merci pour la modification Laurent Amicalement En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
bonuscad Posté(e) le 27 février 2012 Posté(e) le 27 février 2012 Je pense que les cercles sont bien tangents aux lignes, il peut difficilement en être autrement quand les cercles ont les mêmes centres et rayons que les arcs (si ces arcs sont eux-même tangents aux lignes). Je pense aussi la même chose, mais le problème récurent est que les entités sont définies dans un système de coordonnées générale avec une mantisse importante qui "bouffent" la précision des décimales.En effet certains cercles deviennent impossible à ajuster aux tangentes, Autocad ne trouve plus les intersections. La solution (sans applicatifs supplémentaires) est de déplacer temporairement l'axe vers l'origine avant d'appliquer les routines proposées. En faisant cela on retrouve bien les points de tangences, et les ajustements peuvent se faire. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Maxime85 Posté(e) le 27 février 2012 Auteur Posté(e) le 27 février 2012 Bonsoir Bonuscad , J'ai effectivement déplacer l' axe vers l' origine mais le problème posté dans le précédent post ( à savoir quant je lance la commande "axe" sur la polyligne converti la première droite disparaît par contre quand je crée 2 droites et un cercle avec la méthode 2points de tangence -rayon quand je relance la commande "axe" il crée le fichier de commande) persiste. Amicalement En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
VDH-Bruno Posté(e) le 28 février 2012 Posté(e) le 28 février 2012 Bonjour maxwell85 En utilisant le code que j’ai posté précédemment c:lwp2cl, tu ne devrais pas avoir ce problème, au passage j’ai inclus la propriété Normal, le code devrait maintenant pouvoir supporter les rotations de SCU. Je me fais en ce moment suffisamment de nœud au cerveau pour comprendre les notions de repères (SCO SCU SCG SCV), ainsi que sur les problèmes de transformation (rotations déplacements échelles) qu’il aurait été «criminel» pour moi de ne pas intégrer cette fonctionnalité dans le code que je diffuse. A+ Apprendre => Prendre => Rendre
Maxime85 Posté(e) le 28 février 2012 Auteur Posté(e) le 28 février 2012 Bonjour Bruno, Merci pour la Modification mais le problème persiste quant je lance la commande axe ayant au préalable converti la polyligne en cecle +droite la premier droite disparaît par contre quant je crée le cercle par la méthode (2 points de tangence +rayon) et je relance la commande axe ça marche , je ne comprends pas pourquoi Amicalement http://i42.servimg.com/u/f42/15/62/62/90/000010.jpg En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
VDH-Bruno Posté(e) le 29 février 2012 Posté(e) le 29 février 2012 Bonjour, Dans ma réponse précédente je n’ai pas répondu sur le fonctionnement de ta commande axe, mais sur la conversion de la polyligne en cercle+ligne car le disfonctionnement que tu as relevé, je l’avais reproduit en testant la version de bonuscad, je proposais d’éventuellement de tester avec l’autre code au cas ou.. A+(Ps : Pour axe difficile de tester et de répondre il manque les routines associées..) Apprendre => Prendre => Rendre
Maxime85 Posté(e) le 29 février 2012 Auteur Posté(e) le 29 février 2012 Bonsoir Bruno, J'ai essayé la commande Ajusté avec la mise a jour du code mais ça ne marche pas aussi. c:lwp2cl http://i42.servimg.com/u/f42/15/62/62/90/02222210.jpg Amicalement En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
VDH-Bruno Posté(e) le 1 mars 2012 Posté(e) le 1 mars 2012 Bonjour maxwell85, J'ai essayé la commande Ajustéavec la mise a jour du code mais ça ne marche pas aussi.c:lwp2clDéjà la première droite ne s’efface plus c’est un progrès ;-) Plus sérieusement j’ai essayé ta manip d’ajustement avec sur le fichier que tu as joint en exemple, alors effectivement il y a des cas où l’ajustement n’est pas possible.. La raison du pourquoi comment est brillamment expliqué en réponse n°17 par bonuscad, car maintenant si tu rapproches tes entités de dessin vers l’origine du SCG avant de lancer lwp2cl tu n’auras plus ce problème et tous tes cercles générés pourrons s’ajuster aux droites adjacentes. J’ai testé pour toi, au passage il y a une coquille dans ton fichier dessin au niveau des sommets 11, 12, 13, de ta polyligne, en théorie il manque une courbure au cas où le détail aurait son importance.. (lance la commande liste sur la polyligne pour t’en convaincre). Voilà en espérant ton problème résolu..A+ 1 Apprendre => Prendre => Rendre
Maxime85 Posté(e) le 1 mars 2012 Auteur Posté(e) le 1 mars 2012 Bonsoir Bruno, Problème Résolu, Merci. Amicalement. En devenant sincère, l'amour devient généreux. Autocad Map 2015 Covadis V16 et Mensura V9 MacBook Pro 2019 Win10 64 bits
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