Aller au contenu

Problème gisement + Abscisse sur une droite


mateus

Messages recommandés

Bonjour alala merci pour ton aide c'est vraiment sympas, malheureusement il faut que je passe activement à mon rapport de stage donc je pense que j'aurai pas assez de temps pour résolver mon problème de raccordement :(

 

S'il me reste un peu de temps j'essaierai de chercher une solution mais bon c'est mal parti...

 

 

Par contre j'ai un problème au niveau de mes insertions de blocs , dans ma boucle j'insère mes blocs qui s'appelle "candelabre1" avec la fonction "entmake" mais le problème c'est que je ne vois pas apparaitre mes blocs au point "PT" et lorsque ça fonctionne ils sont mal orienté car il ne suivent pas la variable "rot"

 

 

(entmake (list (cons 0 "BLOCK")
	   (cons 2 "candelabre1")
	   (cons 8 "ICI-RES-ECP-Candélabres")
	   (cons 10 PT)
	   (cons 50 rot)
              )
            )

 

 

 

 

J'ai essayé avec cette solution (ci dessous) mais l'erreur suivante s'affiche :

 

; erreur: groupe DXF incorrect: (10 . PT)

_2$

 

J'ai essayé sans le "." du "(10 . PT) rien n'y fait .

 

 

J'ai juste besoin d'une solution stable pour insérer mes candélabres à ces points PT

sachant que mon bloc est stocké dans un dossier support d'autocad et chargé au démarrage d'autocad.

 

 

(if (not (tblsearch "BLOCK" "candelabre"))
   (foreach n
       '(
	 (
	  (0 . "BLOCK")
	  (8 . "0")
	  (2 . "candelabre")
	  (70 . 0)
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (10 . PT)
	  (50 . rot)
	 )
	 (
	  (0 . "CIRCLE")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbCircle")
	  (10 0.0 0.0 0.0)
	  (40 . 0.053122)
	  (210 0.0 0.0 1.0)
	 )
	 (
	  (0 . "LWPOLYLINE")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbPolyline")
	  (90 . 6)
	  (70 . 1)
	  (43 . 0.0)
	  (38 . 0.0)
	  (39 . 0.0)
	  (10 0.0689761 0.0)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (10 0.034488 0.059735)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (10 -0.034488 0.059735)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (10 -0.0689761 0.0)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (10 -0.034488 -0.059735)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (10 0.034488 -0.059735)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (210 0.0 0.0 1.0)
	 )
	 (
	  (0 . "LWPOLYLINE")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbPolyline")
	  (90 . 5)
	  (70 . 0)
	  (43 . 0.0)
	  (38 . 0.0)
	  (39 . 0.0)
	  (10 -0.0260215 -0.0463123)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (10 0.0260215 -0.0463123)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (10 0.0260215 -0.294391)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (10 -0.0260215 -0.294391)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (10 -0.0260215 -0.0463123)
	  (40 . 0.0)
	  (41 . 0.0)
	  (42 . 0.0)
	  (91 . 0)
	  (210 0.0 0.0 1.0)
	 )
	 (
	  (0 . "ARC")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbCircle")
	  (10 0.652129 -0.647202 0.0)
	  (40 . 0.764437)
	  (210 0.0 0.0 1.0)
	  (100 . "AcDbArc")
	  (50 . 2.66187)
	  (51 . 3.49555)
	 )
	 (
	  (0 . "LINE")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbLine")
	  (10 0.0649177 -0.912168 0.0)
	  (11 -0.0649177 -0.912168 0.0)
	  (210 0.0 0.0 1.0)
	 )
	 (
	  (0 . "ARC")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbCircle")
	  (10 -0.652129 -0.647202 0.0)
	  (40 . 0.764437)
	  (210 0.0 0.0 1.0)
	  (100 . "AcDbArc")
	  (50 . 5.92922)
	  (51 . 0.479719)
	 )
	 (
	  (0 . "LINE")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbLine")
	  (10 -0.082228 -0.434874 0.0)
	  (11 0.082228 -0.434874 0.0)
	  (210 0.0 0.0 1.0)
	 )
	 (
	  (0 . "LINE")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbLine")
	  (10 -0.0897754 -0.462971 0.0)
	  (11 0.0897754 -0.462971 0.0)
	  (210 0.0 0.0 1.0)
	 )
	 (
	  (0 . "ARC")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbCircle")
	  (10 0.514429 -0.667768 0.0)
	  (40 . 0.656885)
	  (210 0.0 0.0 1.0)
	  (100 . "AcDbArc")
	  (50 . 2.53703)
	  (51 . 3.56935)
	 )
	 (
	  (0 . "LINE")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbLine")
	  (10 0.0832687 -0.940265 0.0)
	  (11 -0.0832687 -0.940265 0.0)
	  (210 0.0 0.0 1.0)
	 )
	 (
	  (0 . "ARC")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbCircle")
	  (10 -0.514429 -0.667768 0.0)
	  (40 . 0.656885)
	  (210 0.0 0.0 1.0)
	  (100 . "AcDbArc")
	  (50 . 5.85543)
	  (51 . 0.604567)
	 )
	 (
	  (0 . "LINE")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbLine")
	  (10 -0.0832687 -0.940265 0.0)
	  (11 -0.0649177 -0.912168 0.0)
	  (210 0.0 0.0 1.0)
	 )
	 (
	  (0 . "LINE")
	  (100 . "AcDbEntity")
	  (67 . 0)
	  (410 . "Model")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	  (100 . "AcDbLine")
	  (10 0.0832687 -0.940265 0.0)
	  (11 0.0649177 -0.912168 0.0)
	  (210 0.0 0.0 1.0)
	 )
	 (
	  (0 . "ENDBLK")
	  (8 . "0")
	  (62 . 0)
	  (6 . "ByBlock")
	  (370 . -2)
	 )
	)
     (entmake n)
   )
 )


 

 

 

Merci par avance

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 103
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Images postées

Bonjour

 

Que fait ton code?!

 

(if (not (tblsearch "BLOCK" "candelabre"))

Si il n'y a pas de bloc "candelabre" dans le plan je fais :

    (foreach n
              '(
                (
                 (0 . "BLOCK")
                 (8 . "0")
                 (2 . "candelabre")
                 (70 . 0)
                 (8 . "0")
                 (62 . 0)
                 (6 . "ByBlock")
                 (370 . -2)
                 (10 . PT)
                 (50 . rot)
                )
[...]
     (entmake n)
   )

 

Donc si tu a le bloc tu ne fait rien.

Donc au mieux tu crée ton bloc une fois avec la rotation qui va bien pour ton premier bloc et tout les autres sont identiques (même rotation).

Au pire tu a déjà un bloc avec le nom "candelabre" dans ton plan et tout tes bloc insérés le serons selon l'orientation de celui-ci.

 

Le plus correct serait de créer le bloc avec une rotation de base qui t'arrange (0 90° 180° ...) et une position simple.

Puis d’insérer tes bloc avec la rotation que tu souhaite en suivant la méthode suivante :

http://www.afralisp.net/archive/methods/lista/insertblock_method.htm

 

Tu pourra donc faire ton If pour vérifier que le bloc existe puis si il existe ta bloucle sur les insertion de ce bloc avec les argument dont tu a besoin (position et rotation).

C'est en forgeant que l'on devient forgerons.

Et c'est en sciant que Léonard DeVinci!

Lien vers le commentaire
Partager sur d’autres sites

Je souhaite utiliser la solution la plus simple ce qu'il y a c'est que j'ai tellement touché mon programme que je sais plus à partir de quel moment les blocs ne s'insérait plus

 

Je crois que j'étais parti avec cette commande toute bête :

 

(command "inserer" "candelabre" PT 0 0 0 rot "")

 

et ça marchait bien (à condition d'avoir mis le chemin de recherche dans le fichier support d'autocad --> ce que j'ai bien fait)

 

Mais lorsque je lance la commande, il me dit qu'il a chercher partout dans le disque "D:" "C:" et dans les différents dossiers, et qu'il n'a rien trouvé, c'est pas possible vue que je le vois physiquement le bloc dans le dossier.

 

A la limite j'ai pas besoin de le créer le bloc ce que je souhaite c'est juste qu'il s'insère et à la bonne orientation.

 

Merci alala

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é