mateus Posté(e) le 6 septembre 2013 Auteur Posté(e) le 6 septembre 2013 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 PTsachant 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
alala Posté(e) le 6 septembre 2013 Posté(e) le 6 septembre 2013 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!
mateus Posté(e) le 6 septembre 2013 Auteur Posté(e) le 6 septembre 2013 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
mateus Posté(e) le 6 septembre 2013 Auteur Posté(e) le 6 septembre 2013 C'est bon cette fois ci, ils s'insèrent (j'avais mal écrite la commande)mais pas à la bonne rotation (command "-insérer" "candelabre1" PT 1 1 [b]rot [/b]"") Pk ne prend t-il pas en compte la variable rot qui est l'orientation?
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant