Aller au contenu

Convertir DROITE (xline) en polyligne


fauxsuisse

Messages recommandés

Bonjour tout le monde.

 

J'ai une petite question concernant les droite (xline)

Je les utilises souvent pour commencer mes tracés de ligne qui eux sont en polyligne mais in n'est pas possible de faire un raccord ou chanfrein entre une polyligne et une droite ce n'est pas possible, il faut commencer par couper la droite à ces deux extrémités pour pouvoir faire un chanfrein avec celle-ci.

Ma question y a t'il un moyen de convertir une DROITE en une ligne ou polyligne. ;)

 

ps. mes notifications sur cadxp ne fonctionnent toujours pas :(

Lien vers le commentaire
Partager sur d’autres sites

il doit y avoir moyen de coder un truc, mais avec cet énoncé c'est délicat...

 

La direction ça va, mais on coupe ou?

comment déterminer le point de départ et d’arrivée de ta ligne?

 

Je comprends tes questions, c'est ce que je me suis aussi demander, mias si on part du principe que la droite devient une ligne ou une polyligne la coupure se fera à l'intersection avec la première poyligne sélectionnée, si je mets deux trait par exemple et l'un deux fait 300m de plus depuis sont intersection avec l'autre trait ben la coupure se fera sans problème depuis cette intersection donc la longueur n'a pas vraiment d'importance ?

Lien vers le commentaire
Partager sur d’autres sites

hum hum...

 

le pb c'est qu'en programmation "pas vraiment d'importance" c'est pas suffisamment explicite...

Si on imagine le fonctionnement... le prog doit demander la sélection d'une Xligne et couper autour du point de sélection, ou peut être tracer une ligne sur la Xligne et et l’effacer...

mais quel autour? +- 10m? 100?

 

j'ai pas trop de temps en journée, mais le soir je bricole volontiers...

Lien vers le commentaire
Partager sur d’autres sites

hum hum...

 

le pb c'est qu'en programmation "pas vraiment d'importance" c'est pas suffisamment explicite...

Si on imagine le fonctionnement... le prog doit demander la sélection d'une Xligne et couper autour du point de sélection, ou peut être tracer une ligne sur la Xligne et et l’effacer...

mais quel autour? +- 10m? 100?

 

j'ai pas trop de temps en journée, mais le soir je bricole volontiers...

 

Ok je te remercie, mais perd pas trop de temps, c'était un utilitaire que j'aurai trouvé pratique mais je peux continuer comme je fais pour l'instant, mais merci quand même.

Lien vers le commentaire
Partager sur d’autres sites

..., mias si on part du principe que la droite devient une ligne ou une polyligne la coupure se fera à l'intersection avec la première poyligne sélectionnée, ...

 

Salut,

 

La commande ajuster fait déjà ce travail; pas besoin de programmer quoi que ce soit !

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

La commande ajuster fait déjà ce travail; pas besoin de programmer quoi que ce soit !

 

Ben c'est ce que j'utilise mais pour pouvoir joindre à une polyligne il faut que la DROITE aie été ajusté des deux côté, s'il n'y a qu'un côté d'ajuster la polyligne ne le reconnais pas comme étant un trait car ça devient une DEMI-DROITE

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Comme dit plus haut, le problème est qu'une droite (ou une demi-droite) est infinie et une ligne est qu'une ligne (un segment de droite) a deux extrémités. Donc la question est où placer ces extrémités sur la droite.

Je te propose un petit LISP qui coupe les droites au delà des limites du dessin, ça devrait être suffisant pour faire un raccord ou un chanfrein.

 

(defun c:ToLine	(/ ss dist n elst)
 (if (setq ss (ssget '((0 . "RAY,XLINE"))))
   (progn
     (repeat (setq n (sslength ss))
(setq ent  (ssname ss (setq n (1- n)))
      elst (entget ent)
      pt   (cdr (assoc 10 elst))
      dist (distance (mapcar 'min pt (getvar 'extmin)) (mapcar 'max pt (getvar 'extmax)))
      vec  (mapcar '(lambda (x) (* x dist)) (cdr (assoc 11 elst)))
)
(entdel ent)
(entmake
  (list
    '(0 . "LINE")
    (assoc 8 elst)
    (if	(= (cdr (assoc 0 elst)) "RAY")
      (assoc 10 elst)
      (cons 10 (mapcar '- (cdr (assoc 10 elst)) vec))
    )
    (cons 11 (mapcar '+ (cdr (assoc 10 elst)) vec))
  )
)
     )
   )
 )
 (princ)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é