Aller au contenu

Réparer LISP


yusukens82

Messages recommandés

Bonjour,

Depuis deux déclinés j'utilise un lisp pour créer mes isolations en polyligne

mais depuis que je suis passé sous Autocad 2022

Il arrive parfois que ce lips bug sur des gros fichier ou lorsque je bouge la souris durant la routine

Quelqu'un pourrait scruter cette routine, peut être que c'est l'effet du covid qui n'a pas supporté 🤣

 


(defun C:ISOv2 (/ 
svbm ;"BLIPMODE"
sv_osmode ;"OSMODE"
poi1 ;Points which calculate the arcs and lines of the 
;first batt. 
poi2
poi3
poi4
poi5
poi6
poi7
iang ;Angle. 
idis ;Approximate insulation length
iinc ;Increment distance.
;iwid ;Insulation width (global)
poic ;Center point of arc.
stpt ;Start point of insulation 
) 
(graphscr) 
(setvar "CMDECHO" 0)
(command "_UNDO" "_M")
(setq svbm (getvar "BLIPMODE"))
(setq sv_osmode (getvar "OSMODE"))
(setq stpt (getpoint "\nPoint de départ de l'isolant: ")) 
(if iwid 
(setq prom (strcat " <" (rtos iwid) ">")) 
(setq prom "") 
) 
(setq flag (getdist (strcat "\nEpaisseur de l'isolant" prom ": "))) 
(if flag 
(setq iwid flag) 
) 
(setq endp 
(getpoint stpt "\nPointer ou donner le point d'arrivée: ") 
)
(setq iang (angle stpt endp))
(setq idis (distance stpt endp))
(setvar "OSMODE" 0)
(princ "\nDessin de l'isolant en cours...")
(setvar "BLIPMODE" 0)
(setvar "TRACEWID" 0)
(setq poi1 (polar stpt iang (* iwid 0.05)))
(setq iinc (distance poi1 stpt))
(setq poi2 (polar poi1 (+ (dtor 90) iang) (* iwid 0.30)))
(setq poi2 (polar poi2 (+ (dtor 180) iang) (* iwid 0.05)))
(command "_PLINE" poi1 poi2)
(while (< iinc idis)
(setq poic (polar poi2 iang (* iwid 0.20)))
(setq iinc (+ (distance poic poi2) iinc))
(if (< iinc idis)
(progn
(setq poi3 (polar poic (+ (dtor 90) iang) (* iwid 0.20)))
(setq poi4 (polar poic iang (* iwid 0.20)))
(setq iinc (+ (distance poi4 poic) iinc))
(if (< iinc idis)
(progn
(command "_ARC" "CE" poic "A" "-180")
(setq poi5 (polar poi4 (+ (dtor -90) iang) (* iwid 0.60)))
(setq poi5 (polar poi5 (+ (dtor 180) iang) (* iwid 0.10)))
(command "_Line" poi5)
(setq poic (polar poi5 iang (* iwid 0.20)))
(setq iinc (+ (* iwid 0.10) iinc))
(if (< iinc idis)
(progn
(setq poi6 (polar poic (+ (dtor -90) iang) (* iwid 0.20)))
(setq poi7 (polar poic iang (* iwid 0.20)))
(setq iinc (+ (* iwid 0.20) iinc))
(if (< iinc idis)
(progn
(command "_ARC" "CE" poic poi7)
(setq poi2 (polar poi7 (+ (dtor 90) iang) (* iwid 0.60)))
(setq poi2 (polar poi2 (+ (dtor 180) iang) (* iwid 0.10)))
(command "_Line" poi2)
(setq iinc (- iinc (* iwid 0.10)))
)
(command "_ARC" "CE" poic poi6) 
)
)
)
)
(command "_ARC" "CE" poic "A" "-90")
)
)
)
)
(command "")
(princ "\nDessin isolant terminé...") 
(setvar "BLIPMODE" svbm) 
(setvar "OSMODE" sv_osmode)
(princ) 
) 
; 
;*** End of Program
;*** Support Programs
;*** Function DTOR
;Converts degrees to radians, where degr is degrees; returns a
;radian value.
;
(defun DTOR (degr)
(/ (* degr pi) 180)
)

 

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é