dilack Posté(e) le 2 août 2016 Posté(e) le 2 août 2016 Bonjour à tous,Je dois me planter mais je sais pas où!J'essaie d'automatiser la _pedit par: (defun c:pp () (command "_pedit" "_m" sel "" "_i" "" ) (princ) ) Et j'ai le retour: Commande: PP Commande inconnue "PP". Appuyez sur F1 pour obtenir de l'aide. Commande: _i Commande inconnue "I". Appuyez sur F1 pour obtenir de l'aide. Commande: PP Commande inconnue "PP". Appuyez sur F1 pour obtenir de l'aide. Commande: Merci d'avance pour vos réponses. Citer
x_all Posté(e) le 2 août 2016 Posté(e) le 2 août 2016 as tu chargé ton lisp? Citer quelques trucs sur autocad
dilack Posté(e) le 2 août 2016 Auteur Posté(e) le 2 août 2016 Oui il se charge automatique à l'ouverture, il fait parti d'un lisp global qui fait appel à plusieurs fonctions. Citer
x_all Posté(e) le 2 août 2016 Posté(e) le 2 août 2016 c'est franchement bizarre qu'il réponde commande inconnue.Met le dans un .lsp à part et teste le seul. à tout hasard et si j'ai bien compris la finalité, (Gile) avait pondu un truc pour inverser les poly (du temps ou cette commande n'était pas implémenté dans Pedit ;;; R_PLINE -Gilles Chanteau- ;;; Inverse l'ordre de sommets d'une polyligne (2D, 3D ou optimis?e) ;;; Toutes les propri?t?s de la polyligne sont conserv?es (arcs, largeurs ...) ;; Inverse l'ordre de sommets d'une lwpolyligne, d'une polyligne 2D ou 3D (defun reverse_pline (ent / e_lst vtx v_lst p_lst l_vtx) (setq e_lst (entget ent)) (cond ((= (cdr (assoc 0 e_lst)) "POLYLINE") (setq vtx (entnext ent)) (while (= (cdr (assoc 0 (entget vtx))) "VERTEX") (setq v_lst (cons (entget vtx) v_lst) vtx (entnext vtx) ) ) ) ((= (cdr (assoc 0 e_lst)) "LWPOLYLINE") (setq p_lst (vl-remove-if-not '(lambda (x) (member (car x) '(10 40 41 42)) ) e_lst ) e_lst (vl-remove-if '(lambda (x) (member x p_lst) ) e_lst ) ) (while p_lst (setq v_lst (cons (list (car p_lst) (cadr p_lst) (caddr p_lst) (cadddr p_lst)) v_lst ) p_lst (member (assoc 10 (cdr p_lst)) (cdr p_lst)) ) ) ) ) (setq l_vtx (last v_lst) l_vtx (subst (cons 40 (cdr (assoc 41 (car v_lst)))) (assoc 40 l_vtx) l_vtx ) l_vtx (subst (cons 41 (cdr (assoc 40 (car v_lst)))) (assoc 41 l_vtx) l_vtx ) l_vtx (subst (cons 42 (- (cdr (assoc 42 (car v_lst))))) (assoc 42 l_vtx) l_vtx ) ) (setq v_lst (mapcar '(lambda (x y) (setq x (subst (cons 40 (cdr (assoc 41 y))) (assoc 40 x) x) x (subst (cons 41 (cdr (assoc 40 y))) (assoc 41 x) x) x (subst (cons 42 (- (cdr (assoc 42 y)))) (assoc 42 x) x) ) ) v_lst (cdr v_lst) ) ) (if (= (logand 1 (cdr (assoc 70 e_lst))) 1) (setq v_lst (append (list l_vtx) v_lst)) (setq v_lst (append v_lst (list l_vtx))) ) (cond ((= (cdr (assoc 0 e_lst)) "POLYLINE") (mapcar 'entmake (append (list e_lst) v_lst (list (entget vtx))) ) (entdel ent) ) ((= (cdr (assoc 0 e_lst)) "LWPOLYLINE") (setq e_lst (append e_lst (apply 'append v_lst))) (entmod e_lst) ) ) ) ;;; R_PLINE Fonction d'appel (defun c:r_pline (/ ent) (while (not (setq ent (car (entsel))))) (if (or (= (cdr (assoc 0 (entget ent))) "LWPOLYLINE") (and (= (cdr (assoc 0 (entget ent))) "POLYLINE") (zerop (logand 240 (cdr (assoc 70 (entget ent))))) ) ) (reverse_pline ent) (prompt "\nEntit? non valide") ) (princ) ) Citer quelques trucs sur autocad
dilack Posté(e) le 2 août 2016 Auteur Posté(e) le 2 août 2016 Sauf que je souhaite pas inverser le sens de la polyligne mais insérer des sommets. Citer
Patrick_35 Posté(e) le 2 août 2016 Posté(e) le 2 août 2016 Salut Avec AddVtx&DelVtx de (gile) @+ Citer Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
dilack Posté(e) le 2 août 2016 Auteur Posté(e) le 2 août 2016 Merci Patrick pour le lien, à première vue pas de soucis sous Map 2016 Citer
philsogood Posté(e) le 2 août 2016 Posté(e) le 2 août 2016 eRfje connais pas MAP 2016 mais je connais AutoCAD 2016 et en restant sur un sommet on peut en faisant un clic droit ajouter(ou supprimer) un sommet de manière simple et rapideet oué, les lisp ça sert plus à rien!! hihihiPhil Citer Projeteur Revit Indépendant - traitement des eaux/CVC
dilack Posté(e) le 2 août 2016 Auteur Posté(e) le 2 août 2016 Effectivement cela fonctionne, mais si tu es sur un arc map/atocad t’insère un segment et non un point sur ton arc cercle.Chose que le lisp de gille respect. Citer
Messages recommandés