Aller au contenu

Méthodes pour étirer polylignes rectangles


Messages recommandés

Posté(e)

Je ne suis pas dans mon assiette ce matin et j'ai l'impression de débuter sur autocad... :question:

 

J'ai plein de polylignes rectangles non parallèles au scu. J'ai besoin d'étirer la longueur de ces rectangles tout en conservant la largeur et l'alignement. Et je m'embête car je ne trouve pas de moyen vraiment facile .

 

Y-a-t'il plus facile que de

-mettre le scu parallèle au rectangle que je traite

-me mettre en ortho

-sélectionner 2 poignées (ou commande étirer)

-étirer

?

 

Je comprends maintenant Patrick qui regrette l'absence de "vrais" rectangles.

 

Merci d'avance pour vos suggestions !

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Hello

 

Non ou peut-etre

droite de construction sur le coté à agrandir

commande etirer, selection

et etirer sur la droite en entrant la distance voulue !

 

[surligneur] accrochage : Extention[/surligneur]

@+

 

Posté(e)

ou sinon, un petit bouton

^C^Cscu;obj;\etirer 

et une bonne dose de café vu qu'il te faudra tourner la tête sans arrêt.

 

Tu peux régler UCSFOLLOW suivant tes prefs, si la regen n'est pas trop longue.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Merci pour vos réponses

 

esbe

Cela demande trop de manip, je voulais éviter d'avoir à tracer des lignes de construction

 

Tramber

Nickelle cette solution.

Je ne connaissais pas l'option "objet" pour la commande "scu", ni même la variable "ucsfollow". Avant, je changeais de scu puis j'utilisais "_plan". C'est dommage par contre qu'il fasse un zoom étendu à chaque fois. Il faudrait que je fasse un zoom sur l'objet qui a servi à caler le scu.

 

JR66

La commande échelle ne me permettrait pas de modifier la longueur sans changer la largeur.

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

:) Je t'ai construit un lisp rapidement à partir de mes vieilleries ,il manque la gestion des erreurs mais ça marche même sur un segment de polyligne ,en deux clics l'affaire est réglée ,du moins sous autocad 2002 , pour 2005 ? Si un objet reste en surbrillance suite arret manip, il suffit de le reselectionner avec les poignée puis faire échap.

 

 

 

ECR Etire Coté Rectangle 17-2-2006 avec autocad 2002

 

(defun mod_s ( ent lent typent pd pf / l1 s xs ys xp yp i)

(setq pd (trans pd 1 0))

(setq ok nil)

(if (= typent "POLYLINE")

(progn

(setq l1 (entget (entnext (cdr (assoc -1 lent)))))

;analyse sommets

(while (and (= ok nil) (/= "SEQEND" (cdr (assoc 0 l1))))

(setq s (cdr (assoc 10 l1)))

(setq xs (fix (car s)))

(setq ys (fix (cadr s)))

(setq xp (fix (car pd)))

(setq yp (fix (cadr pd)))

(if (and (equal xs xp)(equal ys yp))

;modif sommet

(progn

(setq ok T)

(setq pf (trans pf 1 0))

(setq l1 (subst (cons 10 pf) (assoc 10 l1) l1))

(entmod l1)

(entupd ent)

)

(setq l1 (entget (entnext (cdr (assoc -1 l1)))))

)

) ;fin while

) ;fin progn

(progn ;; pour LWPOLYLINE

(setq i 9)

(while (and (= ok nil) (nth (setq i (+ i 1)) lent))

(if (= 10 (car (nth i lent)))

(progn

(setq s (cdr (nth i lent)))

(setq xs (fix (car s)))

(setq ys (fix (cadr s)))

(setq xp (fix (car pd)))

(setq yp (fix (cadr pd)))

(if (and (equal xs xp)(equal ys yp))

;modif sommet

(progn

(setq ok T)

(setq pf (trans pf 1 0))

(setq lent (subst (cons 10 pf) (nth i lent) lent))

(entmod lent)

(entupd ent)

) ;fin progn

) ; fin if

) ;fin progn

) ; fin if

) ;fin while

) ;fin progn

)

)

 

 

(defun c:ECR (/ sel ent lent typent p0 p1 p2 p3 p4 snpg orthm otosnap snpstyl)

(setq otosnap (getvar "autosnap"))

(setq snpstyl (getvar "snapstyl"))

(setvar "snapstyl" 0)

(setq snpg (getvar "snapang"))

(setq orthm (getvar "orthomode"))

(setq sel (entsel "\n Choix Objet a Modifier :"))

(setq ent (car sel))

(setq lent (entget ent))

(setq typent (cdr (assoc 0 lent)))

(cond

((or (= typent "POLYLINE")(= typent "LWPOLYLINE"))

(redraw ent 3)

(setq p0 (cadr sel))

(setq p1 (osnap p0 "_endp"))

(setq p2 (osnap p0 "_mid"))

(setq ang (angle p1 p2))

(setq dis (distance p1 p2))

(setq p3 (polar p2 ang dis))

(setvar "snapang" ang)

(setvar "orthomode" 1)

 

(setq p4 (getpoint "\n nouvelle extremite:" p2))

(setq angetir (angle p2 p4))

(setq disetir (distance p2 p4))

(setq p5 (polar p1 angetir disetir))

(setq p6 (polar p3 angetir disetir))

(mod_s ent lent typent p1 p5) ;modif 1 er sommet

 

; mise a jour de la liste necessaire pour LWPOLYLIGNE avant modif 2 eme sommet

(setq ent (car sel))

(setq lent (entget ent))

 

(mod_s ent lent typent p3 p6) ; modif 2 eme sommet

(setvar "snapang" snpg)

(setvar "orthomode" orthm)

(setvar "snapstyl" snpstyl)

(setvar "autosnap" otosnap)

)

)

)

 

Posté(e)

*^C^Cscu;obj;\zoom;o;p;;zoom;0.6x;etirer

 

Ca peut le faire ? C'est en continu.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Impeccable ton programme. Ca déplace perpendiculairement le côté cliqué quelquesoit la polyligne, d'ailleurs (pas seulement rectangle).

Je l'embarque !

 

Merci...

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Je suis content qu'il vous convienne ,et qu'il fonctionne .Aussi je lui ai fait un brin de toilette.

 

;ECR Etire Coté Rectangle ou polyligne 21-2-2006

 

(defun err-ecr (msg)

(if ent (progn (redraw ent 4) (setq ent nil)))

(setvar "snapang" snpg)

(setvar "orthomode" orthm)

(setvar "snapstyl" snpstyl)

(setvar "autosnap" otosnap)

(setq *error* m:err-ecr m:err-ecr nil)

(princ )

)

 

(defun mod_s ( ent lent typent pd pf / l1 s xs ys xp yp i )

(setq pd (trans pd 1 0))

(setq ok nil)

(if (= typent "POLYLINE")

(progn

(setq l1 (entget (entnext (cdr (assoc -1 lent)))))

;analyse sommets

(while (and (= ok nil) (/= "SEQEND" (cdr (assoc 0 l1))))

(setq s (cdr (assoc 10 l1)))

(setq xs (fix (car s)))

(setq ys (fix (cadr s)))

(setq xp (fix (car pd)))

(setq yp (fix (cadr pd)))

(if (and (equal xs xp)(equal ys yp))

;modif sommet

(progn

(setq ok T)

(setq pf (trans pf 1 0))

(setq l1 (subst (cons 10 pf) (assoc 10 l1) l1))

(entmod l1)

(entupd ent)

)

(setq l1 (entget (entnext (cdr (assoc -1 l1)))))

)

) ;fin while

) ;fin progn

(progn ;; pour LWPOLYLINE

(setq i 9)

(while (and (= ok nil) (nth (setq i (+ i 1)) lent))

(if (= 10 (car (nth i lent)))

(progn

(setq s (cdr (nth i lent)))

(setq xs (fix (car s)))

(setq ys (fix (cadr s)))

(setq xp (fix (car pd)))

(setq yp (fix (cadr pd)))

(if (and (equal xs xp)(equal ys yp))

;modif sommet

(progn

(setq ok T)

(setq pf (trans pf 1 0))

(setq lent (subst (cons 10 pf) (nth i lent) lent))

(entmod lent)

(entupd ent)

) ;fin progn

) ; fin if

) ;fin progn

) ; fin if

) ;fin while

) ;fin progn

)

)

 

 

(defun c:ECR (/ sel lent typent p0 p1 p2 p3 p4 p5 p6 snpg orthm otosnap snpstyl

disetir angetir)

(setq m:err-ecr *error* *error* err-ecr)

(setq otosnap (getvar "autosnap"))

(setq snpstyl (getvar "snapstyl"))

(setvar "snapstyl" 0)

(setq snpg (getvar "snapang"))

(setq orthm (getvar "orthomode"))

(setq sel (entsel "\n Choix Polyligne à Modifier :"))

(setq ent (car sel))

(setq lent (entget ent))

(setq typent (cdr (assoc 0 lent)))

(cond

((or (= typent "POLYLINE")(= typent "LWPOLYLINE"))

(redraw ent 3)

(setq p0 (cadr sel))

(setq p1 (osnap p0 "_endp"))

(setq p2 (osnap p0 "_mid"))

(setq ang (angle p1 p2))

(setq dis (distance p1 p2))

(setq p3 (polar p2 ang dis))

(setvar "snapang" ang)

(setvar "orthomode" 1)

 

(setq p4 (getpoint "\n nouvelle extremite:" p2))

(setq angetir (angle p2 p4))

(setq disetir (distance p2 p4))

(setq p5 (polar p1 angetir disetir))

(setq p6 (polar p3 angetir disetir))

(mod_s ent lent typent p1 p5) ;modif 1 er sommet

 

; mise a jour de la liste necessaire pour LWPOLYLIGNE avant modif 2 eme sommet

(setq lent (entget ent))

 

(mod_s ent lent typent p3 p6) ; modif 2 eme sommet

(setq ent nil)

(setvar "snapang" snpg)

(setvar "orthomode" orthm)

(setvar "snapstyl" snpstyl)

(setvar "autosnap" otosnap)

(setq *error* m:err-ecr m:err-ecr nil)

(princ)

)

(T (setq ent nil) (prompt "CE N'EST PAS UNE POLYLIGNE ") (princ))

)

)

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é