Aller au contenu

Création d'un programme éclairage public


mateus

Messages recommandés

Comme tu as l'air de "patauger", j'ai commencé à t'écrire un code correspondant à tes désirs.

Il faudra encore peaufiner le code pour avoir le décalage du bon coté (Il faut bien te laisser quelque points ardus à résoudre) et l'affectation des calques (plus simple)

mogo.lsp

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

que je dois réaliser dans le cadre d'un projet d'étude

 

Maintenant il faut que j'essaie de déchiffrer tout ça ...

 

Je me suis trouvé devant un dilemme, pour que tu puisses comprendre il a fallu que j'écrive un code qui fonctionne pour pouvoir l'analyser de A à Z.

Mais tu peux continuer avec ta première démarche (command "coupure" ....) (ce n'est pas irréalisable non-plus!)

 

Il faudra encore peaufiner le code pour avoir le décalage du bon coté

 

Un exemple de résolution de la problématique (analyse vectorielle), je te laisse le soin de l'intégrer dans le code.

((lambda ( / js dxf_ent p10 p11 v1 v2 det_or)
 (setq js (ssget "_+.:E:S" '((0 . "LINE"))))
 (cond
   (js
     (initget 1)
     (setq
       dxf_ent (entget (ssname js 0))
       p10 (cdr (assoc 10 dxf_ent))
       p11 (cdr (assoc 11 dxf_ent))
       v1 (mapcar '- p10 p11)
       v2 (mapcar '- p10 (getpoint "\nPoint?: "))
       det_or
       (apply '(lambda (x1 y1 z1 x2 y2 z2) (- (* x1 y2) (* y1 x2)))
         (append v1 v2)
       )
     )
     (cond
       ((> det_or 0.0) (princ "\nVous avez cliqué à gauche!"))
       ((< det_or 0.0) (princ "\nVous avez cliqué à droite!"))
       (T (princ "\nVous avez cliqué sur la ligne!"))
     )
   )
 )
 (prin1)
))

 

Cela vas te dire si tu as cliqué à gauche ou à droite de l'entité (par rapport à sons sens de construction origine vers fin)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

Bonuscad, j'ai regardé ton programme mais je capte pas grand chose c'est vraiment tout autre chose que mon programme sur lequel j'étais parti je voudrais le finir avec les commandes ajuster et multi pedit mais je sais pas comment m'y prendre j'aimerai terminer mon programme et je sais que j'aurai pas assez de temps pour pour pour 1) comprendre ta façon de faire et 2) finir le programme.

 

Pourrais tu me donner un coup de main sur la fin de mon programme avec ces commandes "ajuster" et "multi pedit" ça serait vraiment sympas !

 

 

mon prgm en pièce jointe:

 

 

Merci d'avance

ECPC3.lsp

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

je ne suis qu'un débutant en Lisp, mais je pense que tu devrais prendre le temps de bien étudier le code proposé.

Surtout si tu pense ensuite faire d'autres Lips.

 

Pour moi tu vois le Lisp comme du script amélioré, mais c'est bien plus que cela.

 

Selon moi il faudrait que tu reprenne depuis le débutet que tu structure tes besoins comme présenté dans la réponse de d'Olivier Eckmann.

 

Selon moi il faut tenter un minimum de "command" et n'en passer que lorsque cela devient impératif.

Cette méthode te permettra de récupérer les ename (ou handle) des objets que tu travaille pour pouvoir les réutiliser et appliquer plusieurs transformations à ceux ci.

 

De plus "généralement" cela va plus vite, et donne un résultat plus transparent pour l'utilisateur final.

 

Si tu a 4/5 mois devant toi tu a le temps d'apprendre et d'appliquer pour réaliser au mieux toutes tes routines.

 

Si tu a besoin d'aide sur certaines parties du code de BonusCad je pense que beeucoup pourrons te répondre ici.

 

@+

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

Bonjour Mogo,

 

Il te faut penser d'abord qu'on a pas forcément le même environnement que toi.

Déjà les parenthèses sont mal appariées dans le code que tu proposes, donc impossible de le charger normalement de façon classique.

 

Une fois chargé, si je le lance, j'obtiens ceci

Commande: ecpc

 

"réseaux.lin": Impossible de trouver le fichier.

Commande inconnue "ECPC". Appuyez sur F1 pour obtenir de l'aide.

Commande inconnue "ECPC". Appuyez sur F1 pour obtenir de l'aide.

 

Cliquez dans la direction du réseaux ECP

Donnez l'entraxe des candélabres? : Spécifiez le deuxième point:

Sélectionner le bord de la chaussée:

Donner la distance de décalage entre le bord de la chaussée et le réseau ECP:

Spécifiez le deuxième point:

Donnez la distance entre le bord de la chaussée et le candélabre: Spécifiez

le deuxième point:

Cliquez sur un côté du plan:

"candelabre.dwg": Impossible de trouver le fichier dans le chemin de recherche:

C:\Documents and Settings\UserCG07\Mes documents\ (répertoire courant)

C:\Program Files\Geomedia SA\Covadis\

C:\Program Files\Geomedia SA\Covadis\Support\

C:\Program Files\Geomedia SA\Covadis\Config\

C:\Program Files\Geomedia SA\Covadis\Programmes\

C:\Program Files\Autodesk\AutoCAD Map 3D 2011\support\

C:\Program Files\Autodesk\AutoCAD Map 3D 2011\fonts\

C:\Program Files\Autodesk\AutoCAD Map 3D 2011\help\

C:\Program Files\Autodesk\AutoCAD Map 3D 2011\express\

C:\Program Files\Autodesk\AutoCAD Map 3D 2011\support\color\

C:\Program Files\Autodesk\AutoCAD Map 3D 2011\FDO\bin\

C:\Program Files\Autodesk\AutoCAD Map 3D 2011\

*Incorrect*

; erreur: Fonction annulée

Je n'ai pas le fichier LIN et le Bloc candelabre.dwg approprié et ton programme n'en tient pas compte.

 

Imagine que tu présente ton projet sur une machine quelconque, déjà au départ t'es grillé, l'environnement n'étant pas le même ton programme avorte lamentablement avant d'avoir fait quoi que ce soit.

 

En plus je n'ai pas du tout compris le 1er message "Cliquez dans la direction du réseaux ECP" ??? Ça ne me dit pas trop où je dois cliquer, par rapport à quoi! (pas de curseur élastique)

 

Quand on programme il faut essayer d'avoir des messages clairs et explicites (je sais par expérience que ce qui est évident pour nous ne l'est pas forcément pour les autres)

 

Donc devoir se dépatouiller dès le départ pour corriger et arriver à lancer ton programme nous encourage pas beaucoup.

 

Vu la complexité de ce que tu veux réaliser, il faut plus de rigueur dans le code que tu nous présente et pas simplement une ébauche, qu'on puisse le tester comme il se devrait.

 

Au début quand je programmais (façon script comme toi, hé oui!), je faisais tester par des collègues (sur un autre poste) ma routine, sans leur donner de consigne, comme ça j'avais déjà les réponses sur les points évoqués (environnement et clarté des messages).

Quand on programme, il faut savoir se mettre à la place d'un utilisateur non averti et gérer les saisies qu'il peut faire ou mal faire et envisager tout les cas de figure qui peuvent se présenter par rapport à son environnement et à ce niveau là l'utilisation de (command) ne facilite pas la tâche car très dépendant de l'étât des variables en cours.

Généralement on ne peut s'affranchir d'une gestion d'erreur (surtout avec command) dans des programmes de ce type.

 

En résumé un programme même inachevé mais un minimum fonctionnel serait le bienvenu.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Autrement un petit exemple simple pour la commande coupure. (coupe au milieu de la ligne)

Pour les autre commande d'édition se serait le même principe que (list ent p_mid) fait ici.

((lambda ( / p1 p2 p_mid)
 (initget 1)
 (setq p1 (getpoint "\n1er point: "))
 (initget 1)
 (setq p2 (getpoint p1 "\n2eme point: "))
 (command "_.line" "_none" p1 "_none" p2 "")
 (setq ent (entlast))
 (setq p_mid
   (list
     (/ (+ (car p1) (car p2)) 2)
     (/ (+ (cadr p1) (cadr p2)) 2)
     (/ (+ (caddr p1) (caddr p2)) 2)
   )
 )
 (command "_.break" "_none" (list ent p_mid) "_none" p_mid)
))

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Je comprends... je savais que mon programme n'était pas terrible, jsuis un peu déprimé de devoir tout recommencer et tout revoir car ça me parait franchement bien complexe ton programme Bonuscad. Quand je vois toute la bonne volonté que vous mettez comme toi Bonuscad pour aider les gens dans leurs programmes ça donne envie d'avancer.Je vais essayer de faire ça. Le problème c'est que tout ce que tu as écris, il n'y a rien, ou quasi rien que je comprenne donc je ne sais pas par quoi commencer ... Par exemple dès le départ avec la création du bloc avec Entmake je sais même pas à quoi correspond tous ces bouts de codes...

 

Merci en tout cas pour tout

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

Je m'excuse d'avance de remettre une couche, mais il est vraiment important de bien savoir où l'on va si l'on veut avancer.

Hormis ta satisfaction personnelle, un programme que toi seul sais faire fonctionner et qui ne fonctionne sur sur ton PC à un instant donné ne sert à rien.

Un bon programme ne sert à quelque chose que s'il est utilisé par les autres donc reconnu et apprécié comme "simple", mais surtout fiable. Si une fois sur 2 ton programme ne va pas au bout, il ne sera plus utilisé.

 

Pour cela il faut absolument vérifier que toutes les conditions sont remplies pour qu'il aille au bout :

- s'il manque un calque, tu peux le créer,

- s'il manque un bloc, tu peux le créer ou bien tenter de l'insérer depuis un emplacement où tu es à peu près sûr de le trouver, et ensuite vérifier s'il est bien présent dans ton dessin

- s'il manque un type de ligne, il faut le charger et vérifier qu'il s'est bien chargé

...

 

Lorsque que l'utilisateur devra saisir des valeurs ou faire des actions, il faut, comme l'on dit d'autres intervenants, que les message soient les plus clairs et les moins ambiguës possible. Il faut aussi vérifier que les valeurs saisies soient correctes et réaliste.

Par ex quand tu demandes l'intervalle entre les candélabres, il ne doit pas être nul car si tu incrémentes ton abscisse d'une valeur nulle tu pars dans un boucle infinie => plantage. Si l'utilisateur saisi une valeur très petite 0.001 et que ton câble fait 100m, tu vas tenter d'insérer 100000 blocs => plantage (ou non réponse pendant un certain temps)

Si l'utilisateur doit cliquer une polyligne fermée, il faut vérifier :

1. qu'il a bien cliqué un objet

2. que c'est bien une polyligne,

3. que cette polyligne est bien fermée

...

 

Une fois que tu disposes de ton environnement et que les valeurs / objets saisis sont conformes et cohérents à tes attentes, alors tu peux commencer à jouer avec.

 

Tout ça ce n'est pas pour te démoraliser, mais dans ton cas, je pense que dans quelque mois, il vaut mieux avoir réussi à faire un programme qui ne fait que 30% du boulot mais qu'il le fait parfaitement, de manière fiable sans ambiguïté, plutôt que de faire un programme qui fait 100% du boulot, mais seulement 1 fois sur 3 et qu'en plus une fois sur 2 il le fait mal.

 

Bon courage

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Par exemple dès le départ avec la création du bloc avec Entmake je sais même pas à quoi correspond tous ces bouts de codes...

Je peu pas grandement aider mais pour ça c'est "simple" :

 

On vérifie que le bloc "candelabre" n'existe pas dans le plan.

Pour cela on utiliser les tables fournis et notament celle des blocs grâce à la fonction "tblsearch".

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

 

Et donc si il n'existe pas l'on créer le bloc:

Pour chaque élément "n" dans la liste suivante:

(foreach n

Début de la liste (voir "quote" dans l'aide de dev' autocad)

'(

Premier élément de la liste.

Cet élément contient les codes DXF de l'objet Bloc à créer.

Tous ceux qui suivent font la même chose, il créer des objets grâce aux codes DXF de ceux ci (voir l'aide du dev' également).

(
 (0 . "BLOCK")
 (8 . "0")
 (2 . "candelabre")
 (70 . 0)
 (8 . "0")
 (62 . 0)
 (6 . "ByBlock")
 (370 . -2)
 (10 0.0 0.0 0.0)
)

Mais comme l'on a le cas un peu spécial du bloc qui est un element qui en contient d'autres, l'on va inclure dans le bloc tous les objets jusqu'à ce que l'on ai les éléments suivant (la fin du bloc) :

(
 (0 . "ENDBLK")
 (8 . "0")
 (62 . 0)
 (6 . "ByBlock")
 (370 . -2)
)

Puis l'on ferme notre liste :

)

on applique donc à chaque élément de la liste la fonction :

 

(entmake n)

L'on ferme la fontion Foreach :

)

Fin de la fontion Foreach

Et la fonction If :

)[/code]

 

En espérant que cela puisse t'aider à démarrer.

 

Il ne faut pas se décourrager pour un code un peu "brut" au départ, je pense que tout le monde à chercher à reproduire en LISP ses commandes sous autocad.

Essaye un peu de voir du coté de la documentation du dévelopeur pour les codes DXF par exemple.

 

Ici dans le code proposé bonuscad va plus loin, il utilise le Visual LISP (Vlisp), souvent reconnaissablent à leur "vl" (vl-,vla-,vlax-) en préfixe.

Ces fonction "dérivé" de l'activeX sont utilie à bien de sniveau pour le traitement des coubre tel que tu en a besoin.

 

Par exemple elles permettent de mesurer la distance sur une courbe (vlax-curve-getdistatparam).

 

Pour moi je trouve que ton projet est très intéressant pour se former sur le LISP et VLISP sous Autocad.

Si tu l'améne jusqu'au bout je suis persuadé que tu aura fait un pas en avant non négligeable.

Je pense qu'aujourd'hui tu essaye d'en faire un maximum avec tes connaissances sur le produit, tu tente de faire du LISP comme tu ferait un script.

A mon avis tout le monde (ou presque) passe par la, mais je constat personnellement que plus j'avance dans la programmation LISP, moins je fait appel à un "command" pour l'utilisation d'une fonction native.

Elle sont généralement lentes ou contraignantes.

De plus afficher quelque chose dans la ligne de commande prend du temp, est relativement plantogéne, et ne sert à rien si ce n'est pas utile à l'utilisateur final.

 

Bonne chance et ne te décourrage pas, reprend tout au calme et à tête reposé, regarde les codes, inspire toi de ce qui existe, fait des essais, plein d'essais.

Fouille sur internet, prend des bouts de codes modifie les pour voir le fonctionnement, plonge toi dans la doc', regardes les cours de Lisp en ligne, ...

Très honettement en quelques mois je pense que c'est réalisable, et que même si les codes seront "optimisables" et "améliorables" il devrons pouvoir fonctionner et rpondre à ton attente.

 

@+

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

Bonjour à tous et toutes,

 

Je voudrais dire merci à Alala, Bonuscad, Olivier,Gile et les gens qui sont là pour m'aider dans mon projet.

 

Je vais tout reprendre à zéro et essayer de faire comme celui de Bonuscad,

 

Tout d'abord je vais commencer par la création du bloc en DXF.

 

Alala sais tu pourquoi certain codes dxf n'apparaissent pas dans l'aide au développement tels que les codes "6", "67" et d'autres encore à quoi correspondent t'ils? Merci :)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

les codes DXF 6 et 67 sont dans "Codes de groupe communs aux entités (DXF)":

6 : Nom de type de ligne (en l'absence de BYLAYER). Le nom spécial BYBLOCK indique un type de ligne flottant (facultatif)

67 : Absent ou zéro indique que l'entité est dans l'espace objet. 1 indique que l'entité est dans l'espace papier (facultatif).

 

Content que tu ne désespére pas et que tu choisisse de persévérer.

 

@+

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

Tout d'abord je vais commencer par la création du bloc en DXF.

 

Pour compléter le post #38 de alala je te joins un bout de code pour t'aider à rentrer les informations DXF pour constituer ton bloc dans ton lisp.

Démarche:

Insère ton bloc au point 0,0,0 avec une rotation de 0.0.

Décompose le!

Applique le petit bout de code sur chacune des entités constituant ton bloc et copie-colle le retour entre la partie:

(

(0 . "BLOCK")

(8 . "0")

(2 . "candelabre")

(70 . 0)

(8 . "0")

(62 . 0)

(6 . "ByBlock")

(370 . -2)

(10 0.0 0.0 0.0)

)

...

et:

(

(0 . "ENDBLK")

(8 . "0")

(62 . 0)

(6 . "ByBlock")

(370 . -2)

)

 

N'oublies pas de quoter les liste retournées.

 

(defun c:list_for_entmake ( / dxf_cod lremov)
(setq dxf_cod (entget (car (entsel))) lremov nil)
(foreach n dxf_cod (if (member (car n) '(5 330 -1)) (setq lremov (cons (car n) lremov))))
(foreach m lremov
	(setq dxf_cod (vl-remove (assoc m dxf_cod) dxf_cod))
)
(foreach n dxf_cod
	(print n)
)
(prin1)
)

 

Une manière rapide et simple pour constituer ton code pour (entmake) ou avoir rapidement un modèle.

 

jsuis un peu déprimé de devoir tout recommencer

Pas besoin de tout recommencer, ce que tu as commencé à écrire n'est pas si mal que ça... Il faut juste améliorer et/ou étoffer (fiabiliser) certaine parties.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir à tous,

 

Merci pour vos réponses,

 

Les seules choses que j'ai pu comprendre jusqu'à présent c'est que pour créer un bloc en format DXF, il faut structurer comme ceci :

 




;Etapes intermédiaires qui sont les éléments qui constitues mon bloc en l’occurrence arc,ligne,cercle...
A ce moment là je ne comprends pas comment ça fonctionne, comment savoir quel code y rentrer dans chaque élément de la liste comme tu as fait Bonuscad?





;1ère étape

(0 . "BLOCK");entité :bloc
(8 . "0");nom du calque
(2 . "candelabre"); nom du bloc
(70 . 0); drapeau par défaut
(8 . "0");nom du calque
(62 . 0);couleur
(6 . "ByBlock") ; type de ligne "Dubloc"
(370 . -2);j'ai cru comprendre que c'était l'épaisseur de ligne mais alors pourquoi "-2"?
(10 0.0 0.0 0.0);point d'insertion au point 0.0.0


;dernière étape pour clore le bloc

(0 . "ENDBLK"); toujours ENDBLK pour terminer la création d'un bloc en DXF ?
(8 . "0")
(62 . 0)
(6 . "ByBlock")
(370 . -2)




 

Merci

Lien vers le commentaire
Partager sur d’autres sites

 

;Etapes intermédiaires qui sont les éléments qui constitues mon bloc en l’occurrence arc,ligne,cercle...

A ce moment là je ne comprends pas comment ça fonctionne, comment savoir quel code y rentrer dans chaque élément de la liste comme tu as fait Bonuscad?

 

... Entre 1ère étape et dernière étape, désolé

 

 

:)

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

crée tes entités de maniére classique puis utilise :

 

(entget(car(entsel)))

 

Pour connaitre les codes DXF de chaque entités crées.

 

@+

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

J'ai trouvé finalement à quoi correspondait la plupart des codes , mise à part le code 370 je n'ai pas encore décerné le "-2" il doit bien y avoir une signification mais je ne comprends pas qu'une épaisseur puisse avoir une valeur négative..

 

J'ai cru comprendre et je pense que c'est bien celà, qu'il y avait une hiérarchisation dans les codes,car certains sont des codes de groupes (correspondant à toutes les entités) et d'autres spécifiques. Aussi il y a des marqueurs sous classes, si j'ai bien compris les marqueurs de sous classes sont utilisés lorsque des entités d'objets sont présents dans d'autres objets?

 

J'ai deux questions pour le moment qui sont les suivantes:

 

-Combien peut on avoir de niveau de hiérarchisation ? Et comment les reconnaître?

 

Autre question plus pour bonuscad, car c'est lui qui a crée le bloc dont j'ai besoin, pour reprendre ton code dxf, je ne comprends pas les coordonnées. Pour m'aider, j'ai explosé l'un des bloc et j'ai mesurer pour voir d'où provenait les coordonnées.

 

Si je prends la première entité du bloc : le cercle

 

je m'apperçois que tu as indiqué un rayon de 5cm, si je mesure sur le plan je trouve 1.5cm et c'est de même pour toutes les autres entités du bloc, je dois mal cerner le pb ou il doit y avoir quelque chose.

 

Merci par avance et bonne nuit (ou soirée à tous et toutes :) )

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Mogo,

 

maintenant j'ai quelques soucis pour comprendre les coordonnées de Bonuscad...

 

Ne t'arrête pas à ce détail, je te rappelle que le code donné n'était qu'un exemple et monté assez rapidement.

Donc j'ai pris le 1er bloc que j'ai trouvé au fin fond de mon ordi (ressemblant le plus à ton modèle d'origine posté en image),

je l'ai décomposé et fait exactement la procédure que je t'ai décrite avec list_for_entmake, sauf que je ne me suis pas attaché/vérifié la cohérence de la représentation du bloc (pour les différentes échelles).

 

Le code n'était monté que pour montrer l'idée de principe et qu'il soit fonctionnel, mais en aucun cas il ne peut être considéré comme abouti. (j'ai fait la définition et la représentation par dessus la jambe, et c'est fort probable que se soit n'importe quoi: je n'ai même pas vérifié ce point).

 

Si ton bloc à toi est bien défini, il te suffit de l'insérer (en mode décomposé) au point 0,0,0 échelle 1 rotation 0 et d'appliquer list_for_entmake sur les entités le constituant pour récupérer leur définition.

C'est mieux qu'avec (entget(car(entsel))) proposé par alala, car (entmake) peut ne pas apprécier d'avoir certain code déjà défini (qui doivent être unique: nom d'entité, handle). (entmake) s'occupe tout seul en interne d'attribuer les bon codes pour les groupes -1 330 et 5 et garder ainsi une cohérence dans sa base de donnée.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Mogo,

 

mise à part le code 370 je n'ai pas encore décerné le "-2" il doit bien y avoir une signification mais je ne comprends pas qu'une épaisseur puisse avoir une valeur négative..

 

Le code 370 correspond bien à l'épaisseur de ligne comme tu l'a trouvé. Cette valeur est un réel, hors dans les épaisseurs de ligne que te propose Autocad tu as aussi DuCalque, Par_défaut et Dubloc. L'épaisseur -2 correspond à cette dernière.

 

Continu dans cette voie et bon courage.

Olivier

Lien vers le commentaire
Partager sur d’autres sites

 

Si ton bloc à toi est bien défini, il te suffit de l'insérer (en mode décomposé) au point 0,0,0 échelle 1 rotation 0 et d'appliquer list_for_entmake sur les entités le constituant pour récupérer leur définition.

 

 

Merci Bonuscad pour cette explication, tu m'avais déjà parlé de cela au poste #41 et je n'avais pas saisis. C'est vrai que ça va me faciliter la vie plutôt que de créer le bloc, j'utilise les entités d'après un bloc déjà existant.

 

Je vais faire cela,

 

Merci ! :)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Mogo,

 

 

 

Le code 370 correspond bien à l'épaisseur de ligne comme tu l'a trouvé. Cette valeur est un réel, hors dans les épaisseurs de ligne que te propose Autocad tu as aussi DuCalque, Par_défaut et Dubloc. L'épaisseur -2 correspond à cette dernière.

 

Continu dans cette voie et bon courage.

Olivier

 

Merci pour cette précision Olivier ! :)

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é