Aller au contenu

erreur: type d\'argument incorrect: point 2D/3D: nil


Messages recommandés

Invité adri7786
Posté(e)

Bonjour à tous.

 

Je suis Nouveau sur ce forum et dans le monde du LISP.

Je suis actuellement en licence CAO DAO et travaille en alternance dans un bureau d'etude béton armé.

 

Voici mon souci,

Pour mon projet de fin d'année, je créer des routine sous Lisp pour autocad afin d'automatisé mes dessin d'armature.

 

Mon programme suivant créer des epingle a l'aide de 2 acier representer en section ( 2 cercle)

 

 

Mon programme marcher trés bien hier quand je les créer, il réaliser les epingle dans nimporte quel sens ( suivant les 2 acier selectioner) or aujourd'huit il me met l'erreur

 

"type d'argument incorrect: point 2D/3D: nil"

 

voici mon programe

 

(defun c:EP ()

 (command "calque" "ch" "G03 Armatures Coupes" "ac" "G03 Armatures Coupes" "")

 (setq LI (entsel "\nSélectionner un HA : "))
 (setq LI2 (entsel "\nSélectionner un HA : "))
 ;; (setq HA (getstring "\ndonner la nuance de l'epingle : "))


 (initget 1 "6 8 10 12 14 16")
 (setq choix (strcase (getkword "\ndonner la nuance de l'epingle : [6, 8, 10, 12, 14, 16] <10> ")))
 ;; Affiche un menu déroulant invitant l'utilisateur à choisir son réseau,
 (cond
   ((= choix "6"))
   ((= choix "8"))
   ((= choix "10"))
   ((= choix "12"))
   ((= choix "14"))
   ((= choix "16"))

 )
 (setq NomEntité (car LI))
 ;; Extrait le premier élément de la liste "LI" et l'attribut dans la variable "NomEntité",
 (setq NomEntité2 (car LI2))
 (setq LISTE (entget NomEntité))
 ;; Récupére les informations de la variable "NomEntité" et la place dans la variable "LISTE",
 (setq LISTE2 (entget NomEntité2))
 ;; Cherche dans la liste "LISTE" celle dont le code-clé est "10" (=point principale) et supprime le premier élément de celle-ci,
 (setq A1 (CDR (ASSOC 10 LISTE)))
 (setq A2 (CDR (ASSOC 10 LISTE2)))
 (setq Ray (cdr (assoc 40 LISTE)))
 (setq long2 (+ Ray 0.005))
 (setq long (distance A1 A2))
 ;; Même chose pour le code-clé "11" (=autre point),
 (setq long3 (* 0.35 long))
 ;; Attribut à la variable "angl" l'angle que décrit les points "A1" et "A2",
 (setq angl (angle A1 A2))

 (setq pt0 (polar A1 (+ angl (/ pi 2)) long2))
 (setq pt1 (polar A1 (+ angl (/ pi 2)) (- long2)))
 (setq pt2 (polar A2 (+ angl (/ pi 2)) (- long2)))
 (setq pt3 (polar pt0 angl long))
 (setq pt4 (polar pt1 angl long3))
 (setq pt5 (polar pt2 angl (- 0 long3)))
 (setq dist (distance pt0 pt1))
 (setq Ray2 (/ dist 2))
 (setq longTotalHA (+ (* 2 long3) long (* 2 (* pi Ray2))))
 (setq ptexte (polar schema2 0 (* long 0.35)))
 (setvar "cmdecho" 0)
 (setq avant (getvar "osmode"))
 (setvar "osmode" 0)


 (command "polylign" pt4 pt1 "arc" pt0 "Li" pt3 "arc" pt2 "Li" pt5 "")
 (setq schema (entlast))


 (setq texte (getpoint "n\donner le point de depart du texte : "))
 (command "calque" "ch" "G04 Rep Armatures" "ac" "G04 Rep Armatures" "")
 (command "texte" texte 0.05 0 (strcat "EpHA" choix "X" (rtos longTotalHA 2 2) " e:" E "cm"))
 (setq schema2 (getpoint "n\donner le point d'insertion du croquis : "))
 (command "copier" schema "" A1 schema2)
 (setq schema3 (entlast))
 (command "echelle" schema3 "" schema2 0.35)
 (command "texte" "j" "BC" ptexte 0.045 0 (rtos long 2 2))

 (setvar "osmode" avant)
) 

 

si quelqu'un aurais une solution à me proposer je suis preneur ;)

 

Merci à tous d'avance pour vos proposition.

 

Bonne journée

 

Posté(e)

Salut,

utilises l'éditeur visual lisp pour détecter tes erreurs.

 

Ici, tu utilises la variable shema2 sans l'avoir rempli avant :

 

(setq ptexte (polar schema2 0 (* long 0.35)))

 

Et pense à faire des tests afin déviter les erreur (si calque n'existe pas, si tu ne selectionnes pas une entité valide, etc....)

 

Et pour info, j'ai reçu cette pub aujourd'hui pas mail :

http://solidrcad.pagesperso-orange.fr/File_html/Version.html

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Invité adri7786
Posté(e)

Merci Beaucoup pour ton aide, le souci étai bien la variable schema2 qui gêné.

 

En ce qui concerne les calque, jutilise un gabari autocad ou il sont deja créer donc cela ne pouvai pas etre le soucis.

 

Merci encore de ton aide précieuse.

 

;) ;)

Posté(e)

Salut et bienvenue,

 

Je me suis permis d'éditer ton message (re-formatage du code) pour qu'il soit plus facilement lisible.

 

Je le déplacerai dans le forum Débuter en LISP où il sera mieux à sa place.

 

Je te recommande la lecture des 4 sujets "Mis en tête" de ce forum.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Invité adri7786
Posté(e)

Merci Gile pour t modifications et désolé pour les erreur, je suis nouveau dans le forum et connait pas bien les regles encore.

 

Comme on dit " c'est des erreur que l'on apprend " ;) merci encore et désolé

Posté(e)

Il ne s'agit pas de "règles", mais le forum LISP ayant 4 sous forums il est préférables que les sujet soient plus ou moins dans le forum adéquat pour faciliter les recherches.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é