Invité Patrick Posté(e) le 31 janvier 2003 Posté(e) le 31 janvier 2003 Comment utiliser (entmake) pour les entités complexes?Pour créer une entité complexe avec (entmake), faites appel plusieurs fois de suite à la fonction entmake, par exemple, comme ceci pour créer une polyligne: (defun C:CR_2DP () (entmake '((0 . "POLYLINE")(67 . 0) (8 . "PL")(66 . 1) (10 0.0 0.0 0.0) (70 . 0) (40 . 0.0) (41 . 0.0) (210 0.0 0.0 1.0) (71 . 0) (72 . 0) (73 . 0) (74 . 0) (75 . 0)) ) ((entmake '((0 . "VERTEX")(67 . 0) (8 . "PL") (10 1.0 1.0 0.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (70 . 0) (50 . 0.0)) ) ((entmake '((0 . "VERTEX")(67 . 0) (8 . "PL") (10 2.0 2.0 0.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (70 . 0) (50 . 0.0)) ) ((entmake '((0 . "VERTEX")(67 . 0) (8 . "PL") (10 3.0 1.0 0.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (70 . 0) (50 . 0.0)) ) ((entmake '((0 . "SEQEND")(67 . 0) (8 . "PL")) ) ((princ))
Georges2 Posté(e) le 23 novembre 2009 Posté(e) le 23 novembre 2009 salut j'ai essayer votre code, j'ai un message d'erreur "commande inconnue"pourquoi? merci@+
(gile) Posté(e) le 23 novembre 2009 Posté(e) le 23 novembre 2009 Salut, Il y a des parenthèse ouvrante en trop (devant les 4 derniers entmake et le princ) (defun C:CR_2DP () (entmake '((0 . "POLYLINE") (67 . 0) (8 . "PL") (66 . 1) (10 0.0 0.0 0.0) (70 . 0) (40 . 0.0) (41 . 0.0) (210 0.0 0.0 1.0) (71 . 0) (72 . 0) (73 . 0) (74 . 0) (75 . 0) ) ) (entmake '((0 . "VERTEX") (67 . 0) (8 . "PL") (10 1.0 1.0 0.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (70 . 0) (50 . 0.0) ) ) (entmake '((0 . "VERTEX") (67 . 0) (8 . "PL") (10 2.0 2.0 0.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (70 . 0) (50 . 0.0) ) ) (entmake '((0 . "VERTEX") (67 . 0) (8 . "PL") (10 3.0 1.0 0.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (70 . 0) (50 . 0.0) ) ) (entmake '((0 . "SEQEND") (67 . 0) (8 . "PL"))) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Georges2 Posté(e) le 23 novembre 2009 Posté(e) le 23 novembre 2009 salut en essayant le code, je suis toujours en polyligne et non en entité (propriété de l'objet)Il y a peut être quelque chose qui m'échappe. Je demande à voir @+
Tramber Posté(e) le 23 novembre 2009 Posté(e) le 23 novembre 2009 On t'a pas dit ? C'est pour les anciennes polylignes pas pour les LWPOLYLINES !Les vertex et les Sequend sont un peu dépassés, si on veut. Eventuellement, ce type de code peut t'aider pour les polylignes 3D, par exemple ou pour définir des blocs à "l'ancienne". Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
SF.Designer Posté(e) le 7 août 2014 Posté(e) le 7 août 2014 Oula vieux sujet que je vais relancer ! Pourquoi ceci fonctionne ? - Instruction: (entget (tblobjname "ltype" "discontinu")) - Resultat: ((-1 . <Nom d'entité: 7ffffb07f30>) (0 . "LTYPE") (330 . <Nom d'entité: 7ffffb03850>) (5 . "35B") (100 . "AcDbSymbolTableRecord") (100 . "AcDbLinetypeTableRecord") (2 . "DISCONTINU") (70 . 0) (3 . "__ __") (72 . 65) (73 . 2) (40 . 9.6) (49 . 6.4) (74 . 0) (49 . -3.2) (74 . 0)) - Modifier pour lisp: (entmake '((0 . "LTYPE")(100 . "AcDbSymbolTableRecord")(100 . "AcDbLinetypeTableRecord")(2 . "DISCONTINU")(70 . 0)(3 . "__ __")(72 . 65)(73 . 2)(40 . 9.6)(49 . 6.4)(74 . 0)(49 . -3.2)(74 . 0))) Alors que ceci ne fonctionne pas ? - Instruction: (entget (tblobjname "ltype" "depose")) - Resultat: ((-1 . <Nom d'entité: 7ffffb05890>) (0 . "LTYPE") (330 . <Nom d'entité: 7ffffb03850>) (5 . "2F1") (100 . "AcDbSymbolTableRecord") (100 . "AcDbLinetypeTableRecord") (2 . "DEPOSE") (70 . 0) (3 . "---x---") (72 . 65) (73 . 3) (40 . 6.4) (49 . 6.0) (74 . 0) (49 . -0.1) (74 . 2) (75 . 0) (340 . <Nom d'entité: 7ffffb05840>) (46 . 3.0) (50 . 0.0) (44 . -0.8) (45 . -1.05) (9 . "x") (49 . -0.3) (74 . 0)) - Modifier pour lisp: (entmake '((0 . "LTYPE")(100 . "AcDbSymbolTableRecord")(100 . "AcDbLinetypeTableRecord")(2 . "DEPOSE")(70 . 0)(3 . "---x---")(72 . 65)(73 . 3)(40 . 6.4)(49 . 6.0)(74 . 0)(49 . -0.1)(74 . 2)(75 . 0)(46 . 3.0)(50 . 0.0)(44 . -0.8)(45 . -1.05)(9 . "x")(49 . -0.3)(74 . 0))) Je sais que c'est un type de ligne ayant un objet texte a l'interieur (X en l'occurence) Doit on séparer la création du graphisme et du texte, et ensuite les lier ? J'ai beau écumer les code dxf je trouve pas la solution !!! PS: C'est bon trouvé, la premiere instruction (74 . 0) juste apres (49 . 6.0), doit etre declarer (74 . 2) contrairement au resultat du "entget" Pour 74 : 2 = L'élément incorporé est une chaîne de caractères - Resultat, Modifier pour lisp:(entmake '((0 . "LTYPE")(100 . "AcDbSymbolTableRecord")(100 . "AcDbLinetypeTableRecord")(2 . "DEPOSE")(70 . 0)(3 . "---x---")(72 . 65)(73 . 3)(40 . 6.4)(49 . 6.0)(74 . 2)(49 . -0.1)(74 . 2)(75 . 0)(46 . 3.0)(50 . 0.0)(44 . -0.8)(45 . -1.05)(9 . "x")(49 . -0.3)(74 . 0)))
Patrick_35 Posté(e) le 7 août 2014 Posté(e) le 7 août 2014 Salut Une liste des objets avec l'indication du minimum requis pour les codes dxf Provenant de ce sujet @+Entmake Min Codes CAB.LSP Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
SF.Designer Posté(e) le 7 août 2014 Posté(e) le 7 août 2014 Merci beaucoup document super instructif. Mais je n'arrive pas a comprendre pourquoi "entget" me retourne le (74 . 0), alors que pour creer il faut que ce soit parametré (74 . 2). Je cherche.... ;)
SF.Designer Posté(e) le 8 août 2014 Posté(e) le 8 août 2014 Ca m'enerve hier soir cela fonctionné et ce matin ca ne marche plus, AAAAAAAAAAAAAAAAAAAAA Voila mon code de base de ma ligne:*DEPOSE,---x---A,6,-.1,["x",iso,S=3,R=0.0,X=-.8,Y=-1.05],-.3
Goldorak44 Posté(e) le 8 août 2014 Posté(e) le 8 août 2014 Salut, c'est surprenant car chez moi, le entget retourne bien le code dxf avec sa valeur associée (0,2 ou 4). Peut tu mettre ton fichier a dispo pour regarder ? PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
SF.Designer Posté(e) le 8 août 2014 Posté(e) le 8 août 2014 Voila le fichier lin de base du type de ligne, que j'ai du zipper car je n'ai pas pu l'upload.Et le lisp dans lequel je souhaite insérer la création du type de ligne !Ligne - Copie.lspDepose.zip
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