CadXP: Continuer une polyligne - CadXP

Aller au contenu

  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Continuer une polyligne

#21 L'utilisateur est hors-ligne   Ra_Mamt 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 167
  • Inscrit(e) : 20-février 12

Posté 15 mars 2017 - 09:01

Bonjour à tous!
Je remonte un peu sur ce sujet vieux de 10ans!
ppl.lsp et copo2.lsp marche très bien sur les polylignes 2D mais j'aimerais savoir si on peut les adapter sur les polylignes 3D.
Merci
A+
AutoCad MAP 2020 - Covadis + Autopiste 17.1
www.colas-mayotte.fr
0

#22 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11 425
  • Inscrit(e) : 02-septembre 05

Posté 15 mars 2017 - 09:46

Salut,

PPL devrait marcher avec les polylignes et les polylignes 3d

(defun c:ppl (/ *error* err echo ptyp pl elst lw ent pt)
  (vl-load-com)

  (defun *error* (msg)
    (if	msg
      (progn
	(or (equal ent (entlast)) (entdel (entlast)))
	(or (= msg "Fonction annulée")
	    (princ (strcat "\nErreur: " msg))
	)
      )
    )
    (vla-EndUndoMark
      (vla-get-ActiveDocument (vlax-get-acad-object))
    )
    (setvar "CMDECHO" echo)
    (setvar "PLINETYPE" ptyp)
    (princ)
  )

  (setq	echo (getvar "CMDECHO")
	ptyp (getvar "PLINETYPE")
	ent (entlast)
  )
  (if
    (and (setq
	   pl (entsel "\nSélectionnez la polyligne à prolonger: ")
	 )
	 (setq elst (entget (car pl)))
	 (or
	   (setq lw (= (cdr (assoc 0 elst)) "LWPOLYLINE"))
	   (and	(= (cdr (assoc 0 elst)) "POLYLINE")
		(= 8 (logand 8 (cdr (assoc 70 elst))))
	   )
	 )
	 (zerop (logand 1 (cdr (assoc 70 elst))))
    )
     (progn
       (vla-StartUndoMark
	 (vla-get-ActiveDocument (vlax-get-acad-object))
       )
       (setq pt	 (trans (osnap (cadr pl) "_nea") 1 0))
       (if (< (- (vlax-curve-getDistAtPoint
		   (car pl)
		   (vlax-curve-getEndPoint (car pl))
		 )
		 (vlax-curve-getDistAtPoint (car pl) pt)
	      )
	      (vlax-curve-getDistAtPoint (car pl) pt)
	   )
	 (setq pt (trans (vlax-curve-getEndPoint (car pl)) 0 1))
	 (setq pt (trans (vlax-curve-getStartPoint (car pl)) 0 1))
       )
       (setvar "CMDECHO" 1)
       (setvar "PLINETYPE" 2)
       (if lw
	 (command "_.pline" pt)
	 (command "_.3dpoly" pt)
       )
       (while (/= 0 (getvar "CMDACTIVE"))
	 (command pause)
       )
       (setvar "CMDECHO" 0)
       (or (equal ent (entlast))
	   (command "_.pedit" pl "_j" (entlast) "" "")
       )
       (vla-EndUndoMark
	 (vla-get-ActiveDocument (vlax-get-acad-object))
       )
     )
  )
  (*error* nil)
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#23 L'utilisateur est hors-ligne   Ra_Mamt 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 167
  • Inscrit(e) : 20-février 12

Posté 15 mars 2017 - 11:18

Hello,
Ça marche sur les polylignes 3D sauf qu’il ne fait pas de jonction et ne ferme pas (option clore) sur la polyligne traité.
A+
AutoCad MAP 2020 - Covadis + Autopiste 17.1
www.colas-mayotte.fr
0

Partager ce sujet :


  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)