Aller au contenu

[RESOLU] Décalage avec parametres


Messages recommandés

Posté(e)

Bonjour à tous

 

Je recherche un LISP qui permet de décaler un objet en attribuant à l'objet décalé, le calque 0, la couleur jaune, et le type de ligne continuous.

 

Merci

:)

Posté(e)

Hello

 

SVP il ne faut jamais RIEN dessiner ou inserer sur le calque ZERO !

Ou alors juste temporairement ...

 

Bye, lecrabe "triste"

Autodesk Expert Elite Team

Posté(e)

Hello

 

SVP il ne faut jamais RIEN dessiner ou inserer sur le calque ZERO !

Ou alors juste temporairement ...

 

Bye, lecrabe "triste"

 

Salut oui calme toi !!! c'est temporaire sur un fichier temporaire meme ca va aller on se détent :)

Posté(e)

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

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

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

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

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...

Posté(e)

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

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

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" "")

)

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

Posté(e)

Salut,

 

Oui c'est du forcage (tout ce qu'il faut pas faire) j'en vois les cheveux qui se dressent :(rires forts):

Mais comme dit c'est pour faire une manip bien particulière sur un fichier temporaire.

 

Merci pour votre aide je vais me débrouiller avec tout ca :)

Posté(e)

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.

Posté(e)

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" "")

)

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

Posté(e)

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)

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é