Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 01/04/2016 dans toutes les zones

  1. Avec DEPLACER, tu peux faire plus simple. Pas besoin de construire de chaînes de caractère pour spécifier les points et avec l'option "Déplacement" ("_Displacement") tu n'as qu'un vecteur à spécifier (pas de problème d'accrochage aux objets). ;;;Déplacement des blocs à l'altitude 0************ (princ "\nDéplacement des blocs à l'altitude 0..............") (if (setq ss (ssget "_X" '((0 . "INSERT")))) (progn (setq i 0) (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent) coordZ (cadddr (assoc 10 elst)) ) ;_ Fin de setq (command "_move" ent "" "_displacement" (list 0 0 (- coordZ))) ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if
    1 point
  2. Salut, un exemple en utilisant la fonction entmod qui modifie une entité à l'aide d'une liste DXF telle que retournée avec entget, et la fonction subst pour modifier la liste retournée par entget en substituant un des éléments de la liste. (if (setq ss (ssget "_X" '((0 . "INSERT,LWPOLYLINE")))) (progn (setq i 0) (while (setq ent (ssname ss i)) (setq i (1+ i) elst (entget ent)) (if (= (cdr (assoc 0 elst)) "INSERT") (progn (setq dxf10 (assoc 10 elst)) (entmod (subst (list 10 (cadr dxf10) (caddr dxf10) 0.0) dxf10 elst ) ) ) (entmod (subst (cons 38 0.0) (assoc 38 elst) elst)) ) ) ) ) Un autre exemple en utilisant les (nouvelles) fonctions LISP getpropertyvalue et setpropertyvalue pour directement obtenir ou attribuer les valeurs des propriétés d'une entité (utiliser dumpallproperties pour voir toutes les propriétés de l'entité). (if (setq ss (ssget "_X" '((0 . "INSERT,LWPOLYLINE")))) (progn (setq i 0) (while (setq ent (ssname ss i)) (setq i (1+ i)) (if (= (getpropertyvalue ent "LocalizedName") "Référence de bloc" ) (progn (setq insPt (getpropertyvalue ent "Position")) (setpropertyvalue ent "Position" (list (car inspt) (cadr insPt) 0.0) ) ) (setpropertyvalue ent "Elevation" 0.0) ) ) ) ) Une dernière en utilisant "Visual LISP" (if (ssget "_X" '((0 . "INSERT,LWPOLYLINE"))) (progn (vlax-for obj (setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object) ) ) ) (if (= (vla-get-ObjectName obj) "AcDbBlockReference") (progn (setq insPt (vlax-get obj 'InsertionPoint)) (vla-put-InsertionPoint obj (vlax-3d-point (list (car insPt) (cadr insPt) 0.0)) ) ) (vla-put-Elevation obj 0.0) ) ) (vla-Delete ss) ) )
    1 point
×
×
  • 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é