Aller au contenu

Messages recommandés

Posté(e)

Voici un lisp qui fonctionne bien pour insérer mes blocs mais en plus de ça je voudrais simplement qu'il trace un trait entre P1 et P2, je ne maitrise pas du tout le langage donc si une bonne âme pouvait me venir en aide.

 

Merci

 

 

;Insertion de tubes en diagonale

(defun c:T ()

 

;Supprimer l'echo du deroulement de commande

(setvar "cmdecho" 0)

;Mise a nil de la longueur de deplacement

(setq LD nil)

;Scu general

(command "scu" "g")

;Cliquer 1er et 2eme point

(setq P1 (getpoint "\n1er point : "))

(setq P2 (getpoint "\n2eme point : "))

 

;Recuperation des x,y,z, des points d'insertion

(setq X1 (car P1))

(setq X2 (car P2))

(setq Y1 (cadr P1))

(setq Y2 (cadr P2))

(setq Z1 (caddr P1))

(setq Z2 (caddr P2))

 

;Calcul de la distance entre p1 et p2 dans le scu courant

(setq D (distance (trans P1 0 1) (trans P2 0 1)))

;Memorisation et Mise a zero de l'accrochage

(setq accro (getvar "osmode"))

(setvar "osmode" 0)

;Condition du calcul des tubes en fonction de la distance entre p1 et p2

(cond

((< D 0.40)

(changscu)

(command "inserer" "UC05" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 0.50 D) 2))

)

((and (>= D 0.40) (< D 0.90))

(changscu)

(command "inserer" "UC10" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 1.00 D) 2))

)

((and (>= D 0.90) (< D 1.40))

(changscu)

(command "inserer" "UC15" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 1.50 D) 2))

)

((and (>= D 1.40) (< D 1.90))

(changscu)

(command "inserer" "UC20" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 2.00 D) 2))

)

((and (>= D 1.90) (< D 2.40))

(changscu)

(command "inserer" "UC25" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 2.50 D) 2))

)

((and (>= D 2.40) (< D 2.90))

(changscu)

(command "inserer" "UC30" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 3.00 D) 2))

)

((and (>= D 2.90) (< D 3.40))

(changscu)

(command "inserer" "UC35" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 3.50 D) 2))

)

((and (>= D 3.40) (< D 3.90))

(changscu)

(command "inserer" "UC40" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 4.00 D) 2))

)

((and (>= D 3.90) (< D 4.40))

(changscu)

(command "inserer" "UC45" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 4.50 D) 2))

)

((and (>= D 4.40) (< D 4.90))

(changscu)

(command "inserer" "UC50" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 5.00 D) 2))

)

((and (>= D 4.90) (< D 5.40))

(changscu)

(command "inserer" "UC55" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 5.50 D) 2))

)

((and (>= D 5.40) (< D 5.90))

(changscu)

(command "inserer" "UC60" (trans P1 0 1) "" "" 0)

(setq LD (/ (- 6.00 D) 2))

)

)

;Si on passe dans une des conditions on deplace la planche sinon

;message d'erreur

(if (/= LD nil)

(command "deplacer" "d" "" (trans P1 0 1) (polar (trans P1 0 1) 0 ( - LD)))

(alert "Tube trop long")

)

;Rebasculement sur le scu general et sur l'accrochage en memoire

(command "scu" "g")

(setvar "osmode" accro)

;Supprimer le message de fin du programme

(princ)

)

Autocad 2015 - Lumion 3D - SCIA Engineer

I7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.

Posté(e)

Vaut mieux un qui sait que 10 qui cherchent. Merci

 

Tu saurais la mettre dans un calque spécifique également ? Idéalement le calque "Tube" ?

 

Et alors le top ce serait qu'il forme un nouveau bloc avec le bloc inséré.

 

PS : J'étais pas loin il me manquait les derniers " "

Autocad 2015 - Lumion 3D - SCIA Engineer

I7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.

Posté(e)

Vaut mieux un qui sait que 10 qui cherchent. Merci

 

Tu saurais la mettre dans un calque spécifique également ? Idéalement le calque "Tube" ?

 

PS : J'étais pas loin il me manquait les derniers " "

 

(command "line" p1 p2 "")

(command "chprop" (entlast) "" "layer" "Tube" "")

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Posté(e)

Merci merci, la dernière solution me plais parce quelle fait tout d'un coup est crée même le calque Tube qui n'existe pas.

Autocad 2015 - Lumion 3D - SCIA Engineer

I7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.

Posté(e)

Et il y a moyen d’attribuer une couleur au calque Tube créé ?

 

Une petite idée pour faire un seul et même bloc de ce trait et du bloc inséré ?

Autocad 2015 - Lumion 3D - SCIA Engineer

I7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.

  • 4 mois après...
Posté(e)

Un petit up pour ce problème toujours d'actualité.

 

Merci

Autocad 2015 - Lumion 3D - SCIA Engineer

I7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.

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é