Aller au contenu

[RESOLU] Décalage avec parametres


youpla

Messages recommandés

hello

 

+ 1 ( fois 100 000 000 ) avec Lecrabe

 

d'ou est ce que deja ca vient cette idée de vouloir dessiner sur un calque qui s'appelle "zero" = 0 = rien = que dalle

 

y'en a meme qui dessine sur "defpoint"

 

meme les entités d'un bloc sur "zero" ca signifie que l'on ne sait pas ce que l'on dessine.

 

quand vous récuperer les fichers des autres le nom du calque vous renseigne de se a quoi ce trait correspond.

surtout quand certains se chevauche.

 

quand on bossait sur calque, le type de trait, son épaisseur, signifiait quelque chose.

 

et surtout ramener un fichier en xref, le calque zero du fils se superpose avec le calque zero du pere

alors quand vous avez 25 xref, geler le calque zero, se répercute sur 25 fichiers, vrai ou faux ?

 

 

petit coup de chaud du matin

 

detendu B) haaa ca va mieux

 

bonne journée

 

Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

hello Youpla

 

 

petit lisp

 

le premier copie

le deuxieme décale

 

sur le calque "0" et force en "jaune"

 

tu rentres la liste des décalages et tappe "0" pour en sortir

 

 

;;;;------------------
;;;; copier des entites suivant une liste de valeur qui s'additionne
;;;;------------------

(defun c:licpazerojaune ()
 (prompt "COPIE DES ENTITES SUIVANT UNE LISTE DONNEES QUI S'ADDITIONNENT :")
 (setvar "cmdecho" 0)
 (setq osm (getvar "osmode"))
 (listedecalage)
 (prompt "DONNER DEUX POINT POUR LA DIRECTION DES COPIES :")
 (initget 1)
 (setq p1 (getpoint "\nPOINT DE LA BASE DE LA DIRECTION :"))
 (initget 1)
 (setq p2 (getpoint p1 "\nPOINT DE DIRECTION :"))
 (setq direct (angle p1 p2))
 (prompt "\nCLIQUER SUR LES OBJETS A COPIER :")
 (setq entites nil)
 (while (null entites) (setq entites (ssget)))
 (setvar "osmode" 0)
 (setq compt 0)
 (setq com (sslength entites))
 (while (< compt com)
   (progn (setq obj (ssname entites compt))
          (setq decalageadd 0)
          (foreach elem listedeca
            (setq decalageadd (+ decalageadd elem))
            (command-s "COPIER" obj "" p1 (polar p1 direct decalageadd))
            (vla-put-layer (vlax-ename->vla-object (entlast)) "0")
            (vla-put-color (vlax-ename->vla-object (entlast)) 2)
          )
   )
   (setq compt (1+ compt))
 )
 (setvar "osmode" osm)
 (princ)
)




;;;;------------------
;;;; decaler des entites suivant une liste valeur de decalage qui s'additionne et un point de direction en changeant la calque
;;;;------------------


(defun c:likpazerojaune ()
 (prompt "DECALE DES ENTITES SUIVANT UNE LISTE DONNEES QUI S'ADDITIONNENT ET CHANGEANT LA CALQUE:")
 (setvar "cmdecho" 0)
 (setq osm (getvar "osmode"))
 (listedecalage)
 (prompt "\nCLIQUER SUR LES OBJETS A DECALER :")
 (setq entites nil)
 (while (null entites) (setq entites (ssget)))
 (setvar "osmode" 0)
 (setq poi1 nil)
 (while (null poi1) (setq poi1 (getpoint "\nPOINT DE DECALAGE")))
 (setq compt 0)
 (setq com (sslength entites))
 (while (< compt com)
   (progn (setq obj (ssname entites compt))
          (setq decalageadd 0)
          (foreach elem listedeca
            (setq decalageadd (+ decalageadd elem))
            (command "DECALER" decalageadd obj poi1 "")
            (vla-put-layer (vlax-ename->vla-object (entlast)) "0")
            (vla-put-color (vlax-ename->vla-object (entlast)) 2)
          )
   )
   (setq compt (1+ compt))
 )
 (setvar "osmode" osm)
 (princ)
)




(defun listedecalage ()
 (setq sortie 1)
 (setq listedeca nil)
 (setq element nil)
 (setq compt1 1)
 (setq decalage1 (atof (getcfg "APPDATA/DECALAGE1")))
 (while (/= sortie 0)
   (setq element (getreal
                   (strcat "\nENTRER LA VALEUR DE DECALAGE [ 0 pour sortir ]" (rtos compt1 2 0) " <" (rtos decalage1 2 8) ">: ")
                 )
   )
   (if (= element 0)
     (setq sortie 0)
     (progn (if (/= element nil)
              (setq decalage1 element)
            )
            (setq listedeca (cons decalage1 listedeca))
     )
   )
   (setq compt1 (1+ compt1))
 )
 (setcfg "APPDATA/DECALAGE1" (rtos decalage1 2 8))
 (setq listedeca (reverse listedeca))
)

 

 

phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Phil tu m'a envoyé l'artillerie lourde ! <img src='http://cadxp.com/public/style_emoticons/<#EMO_DIR#>/laugh.gif' class='bbc_emoticon' alt=':(rires forts):' />

 

je voyais plutôt une commande bien plus simple avec exactement le fonctionnement de la commande "décaler" d'AutoCAD avec juste en plus le changement de calque, de couleur, et de type de ligne...

(0, jaune, continuous)

 

bah oui je suis chiant , je sais...

j'essai de trifouiller le lisp mais j'ai jamais été doué en programmation...

Lien vers le commentaire
Partager sur d’autres sites

hello Youpla

 

on ne sait pas de combien tu veux décalé, et combien de fois aussi

 

j'avoue dans le lisp je n'ai pas forcé la ligne en continuous, il te suffit de mettre le calque "0" en continuous, les entités dedans qui doivent etre en "ducalque" seront en continuous de fait

 

a+

Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Je ne vais pas rentrer dans la polémique du calque 0 et du forçage des entités

D'ailleurs on ne sait pas, c'est récurrent les explications partielles, si ce JAUNE est la couleur du calque 0 (zéro) ou si c'est un forçage, idem pour le type de ligne

Du coup YOUPLA je te propose de l’ultra simple de chez basique

Tu décales de la valeur que tu veux ton entité avec la commande classique d'autoCAD

Puis tu lances cette routine juste après

Le nom de la commande est ZJC comme ZéroJauneContinuous

En souhaitant rendre service...

 

(defun c:zjc () (command "_chprop" (entlast) "" "CA" "0" "CO" "jaune" "T" "continuous" "")

)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour didier,

 

Comme dit plus haut, ce que j'aurais aimer, c'est la commande "décaler" d'origine Autocad, avec en plus le fait que l'objet décalé soit dans le calque 0 forcé en jaune et forcé en continuous.

en une seule commande car des décalages j'en ai des dizaines et des dizaines à faire.

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

On reste dans le simplissime

Pour moi n'est pas de la programmation mais à la limite du fichier batch mais si ça te va ça m'ira aussi

Avec cette commande DZJC

DécalerZéroJauneContinuous on va te demander les renseignements classiques de la commande décaler

Une fois qu'elle est terminée l'entité décalée va se trouver dans le calque 0 (zéro) de couleur forcée Jaune et de type de ligne forcé Continuous

 

Tiens-moi au courant.

(defun c:dzjc ()

(command "_offset" pause pause pause pause)

(command "_chprop" (entlast) "" "CA" "0" "CO" "jaune" "T" "continuous" "")

)

Lien vers le commentaire
Partager sur d’autres sites

Salut.

Les quatre "pause" signifient que le LISP attend quatre saisis (chaine, clique...) dans AutoCAD.

  • Upvote 1

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

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é