• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

Entmakex sur AutoCAD 2025 ne fonctionne pas

  • Auteur du sujet Auteur du sujet Riccardo_Ferrari
  • Date de début Date de début

Riccardo_Ferrari

Guest
entmakex sur autocad 2025 ne va pas (bug?)
J'ai un lisp qui a bien fonctionné, alors, après avoir installé autocad 2025. 1.1 s'écrase avec erreur "erreur: mauvais type d'argument: lentityp zéro"
avec fatigue J'ai découvert entmakex est la cause de l'erreur, c'est-à-dire retourne "néant" au lieu de créer une entité non-graphique
ici le code:

(nom du décret)
"acad_image_dict"
(chant)
(liste)
(cons 0 "dictionnaire")
(cons 100 "accdbdictionnaire")
(cons 280 0)
(cons 281 1)
) ;
) ;
) ;

merci pour l'attention
 
ne pas utiliser acad2025 Je ne peux pas vous aider, plus que entmakex ipotizzo bien que cela devrait être géré différemment la création du dictionnaire lui-même.
Par curiosité, de quoi avez-vous besoin pour créer un dictionnaire sans clé et sans objets ?
ne peut pas le créer quand vous avez quelque chose à stocker et à utiliser (vlax-ldata-put....??
 
ne pas utiliser acad2025 Je ne peux pas vous aider, plus que entmakex ipotizzo bien que cela devrait être géré différemment la création du dictionnaire lui-même.
Par curiosité, de quoi avez-vous besoin pour créer un dictionnaire sans clé et sans objets ?
ne peut pas le créer quand vous avez quelque chose à stocker et à utiliser (vlax-ldata-put....??
Merci pour la réponse.

Merci en général mais surtout parce qu'être en italien me permet de m'exprimer mieux, c'est-à-dire avec moins de difficulté de ma part et avec moins de peur d'être mal compris pour des erreurs de traduction.

Alors vous me demandez ce que vous avez besoin pour créer un dictionnaire sans clés et objets, eh bien... Je n'ai aucune idée, je ne sais même pas quels dictionnaires, clés et objets sont.

J'avais besoin d'une source qui a importé des images jpeg dans un dwg, je ne voulais pas recourir à la commande et -image ou -attach, en général éviter de rappeler la commande dans un lisp.

J'ai trouvé cette source et l'ai mise dans mon programme, qui fait tout le reste, c'est-à-dire extrait le jpeg d'un fichier où ils sont encapsulés, lui donne le nom, les sauve dans un chemin, balance la base et la hauteur d'une manière compatible avec le dwg en usage, calcule le point d'insertion en référence au reste de la conception, en bref il fait beaucoup (tout ce qui vient de lamer, pour dire le cœur)

Je n'ai pas placé de questions de droit d'auteur parce que la source était gratuite quelque part, mais surtout parce que mes programmes ne les vendent pas (mais qui les veut ...) ni ne les distribuent d'aucune façon. En plus de moi, ils peuvent utiliser leurs autres studios, mais ils ne le font pas souvent.

J'allais poster toute la source, c'est ce que j'ai trouvé avec certains de mes petits changements, mais j'ai maintenant placé le problème du copyright comme nous sommes sur un forum public. De quoi tu parles ? Où ? Je ne suis pas expert en matière.

copyright ou pas sur autocad 2022 a fonctionné, et fonctionne toujours sur les machines où cette version tourne, puis un ordinateur du studio a expiré, remplacé et déjà que nous sommes obligés de reconfigurer tout ce que nous mettons la nouvelle version ... puis la surprise que le programme habituel sur autocad 2022 va et sur 2025 no.

salutations

Plus riche
 
juste pour ne rien oublier, le problème que vous rencontrez sur autocad 2025 plein ou lt?

concernant le droit d'auteur du code vous avez différentes alternatives:
  1. vous le publiez et les utilisateurs (experts) peuvent vous aider à déterminer (à l'évidence dans les limites du possible) si le code est couvert par "copyright" et, si oui, demander la suppression à un modérateur ou à l'administrateur du site
  2. vous la postez avec une déclaration de non-responsabilité au début du code (le code est le propriétaire légitime....Je ne sais pas...blablablabla)
  3. partager en privé avant publication (je peux faire une petite recherche si vous voulez)
....divers et possibles:)
 
juste pour ne rien oublier, le problème que vous rencontrez sur autocad 2025 plein ou lt?

concernant le droit d'auteur du code vous avez différentes alternatives:
  1. vous le publiez et les utilisateurs (experts) peuvent vous aider à déterminer (à l'évidence dans les limites du possible) si le code est couvert par "copyright" et, si oui, demander la suppression à un modérateur ou à l'administrateur du site
  2. vous la postez avec une déclaration de non-responsabilité au début du code (le code est le propriétaire légitime....Je ne sais pas...blablablabla)
  3. partager en privé avant publication (je peux faire une petite recherche si vous voulez)
....divers et possibles:)
 
J'ai fait une recherche dans mes anciens dossiers et sur le net. Il s'agit d'un code affiché dans un forum en 2008 par un tel "treddin" pas mieux identifié, est toujours en ligne:

www.theswamp.org/index.php?topic=23762.new

même s'il contient la partie difficile, en soi que le code ne pouvait pas fonctionner, il était encore intégré, ce que j'ai fait à l'époque et j'ai refait aujourd'hui en produisant un code de test que j'attache.

test-image.lsp, s'il vous plaît essayer.

sur autocad 2022 tourne, tandis que sur autocad 2025 il plante.

Je crois que la présence d'insectes dans l'autocad 2025 est incontestable... vague mais comment ça sort ?

Je parle d'autocad 2025 plein

Merci de votre attention.

Plus riche
 

Pièces jointes

Code:
(défend my_dxf (num ent)
(cdr)
)
manquant la définition de la fonction my_dxf à ajouter à votre fichier.
Je l'ai testé sur autocad 2024 plant3d et il fonctionne, malheureusement je n'ai pas de pcs avec le 2025.
 
Dernière édition:
Code:
(défend my_dxf (num ent)
(cdr)
)
manquant la définition de la fonction my_dxf à ajouter à votre fichier.
Je l'ai testé sur autocad 2024 plant3d et il fonctionne, malheureusement je n'ai pas de pcs avec le 2025.
Merci beaucoup pour le rapport. Je corrige et remplace

il y avait aussi une autre erreur, l'auteur de la source de base n'est pas, comme j'avais écrit "treddin" mais tel "t.wley", Treddin avait demandé et Willey répondu

salutations

Plus riche

Ps. Je ne peux pas changer le post avec l'erreur, mais c'est peut-être parce que personne ne l'a encore lu. Je fixe ici le lis droit
 

Pièces jointes

Code:
(défun c:demo (/ acadobj doc image fichier)
(setq acadobj (vlax-get-acad-object)
doc (document actif vla-get acadobj)
)
(setq imagefiled "\nselect a raster image: "" "jpg;png;tif;gif;bmp;tga;pcx" 8)
(setq my_point (getpoint "\nselect an insertion point: "))
(setq my_xlato (longueur maximale de x côté: "))
(setq image)
(vlax-invoke
(vlax-get (vla-get-activelayout doc) 'bloc)
'addraster
fichier image
mon _point
my_xlato ; <-largeur
0,0
)
)
(vla-put-name fichier image) ;<-- nom
(vla-mise à jour image)
)
voir si cela fonctionne, fait tout ce qui fait votre fichier mais en moins de lignes de code.
 
Code:
(défun c:demo (/ acadobj doc image fichier)
(setq acadobj (vlax-get-acad-object)
doc (document actif vla-get acadobj)
)
(setq imagefiled "\nselect a raster image: "" "jpg;png;tif;gif;bmp;tga;pcx" 8)
(setq my_point (getpoint "\nselect an insertion point: "))
(setq my_xlato (longueur maximale de x côté: "))
(setq image)
(vlax-invoke
(vlax-get (vla-get-activelayout doc) 'bloc)
'addraster
fichier image
mon _point
my_xlato ; <-largeur
0,0
)
)
(vla-put-name fichier image) ;<-- nom
(vla-mise à jour image)
)
voir si cela fonctionne, fait tout ce qui fait votre fichier mais en moins de lignes de code.
Merci beaucoup pour votre travail, j'ai fait quelques ajouts:

la couche de l'image, à travers la fonction my_make_layer, qui fait partie de mes programmes de base, cette fois je l'ai ajouté

la couche est fondamentale à ce que je dois faire. J'ai aussi ajouté l'angle raster, dont je n'ai pas besoin (peut-être 0/90) mais j'en ai vu un 0,0 ...

il y a aussi un petit bug, c'est-à-dire l'éducation (vla-update inimage) ne donne pas d'effets. J'imagine qu'il est nécessaire de mettre à jour la liste des rasters. Cependant tout fonctionne de toute façon et vous pouvez recharger à la main. Je l'ai remplacé par le moins élégant

(commander "-image" "recharger" (vl-filename-base imagefile))

au sujet de l'élégance les instructions vl ou vla ou vlax sont généralement beaucoup plus synthétiques que les instructions traditionnelles, mais elles nécessitent (vl-load-com). le programme que vous avez écrit n'a pas besoin mais utilise toujours les instructions vl, où est la différence?

Merci encore.

salutations

Plus riche
 

Pièces jointes

J'ai oublié...
un problème d'importation de rasters avec vl est que le nom attribué est aléatoire. à juste titre vous avez rebaptisé, mais si le nom est déjà présent, une erreur apparaît. même en cas d'annulation mais non chargé.
existe une fonction simple pour déterminer si le nom est présent? pour renommer comme nom-1, nom-2 ... etc
Je dis simple parce que j'ai trouvé une source qui lit tous les noms avec un cycle de temps, je me demande s'il y a une fonction synthétique.
Merci de votre attention.
Dis bonjour.
Un homme riche.
 
au sujet de l'élégance les instructions vl ou vla ou vlax sont généralement beaucoup plus synthétiques que les instructions traditionnelles, mais elles nécessitent (vl-load-com). le programme que vous avez écrit n'a pas besoin mais utilise toujours les instructions vl, où est la différence?
Évidemment, il y a d'autres lis qui le font déjà.
Pour le reste, dès que je trouverai quelque chose de mieux que le cycle, je t'emmènerai.
Au revoir.
 
Code:
(defun c:insrasterimage (/ acadobj doc imagefile)
(setq acadobj (vlax-get-acad-object)
doc (document actif vla-get acadobj)
)
(setq imagefiled "\nselect a raster image: "" "jpg;png;tif;gif;bmp;tga;pcx" 8)
(setq my_point (getpoint "\nselect an insertion point: "))
(setq my_xlato (longueur maximale de x côté: "))
(setq image)
(vlax-invoke
(vlax-get (vla-get-activelayout doc) 'bloc)
'addraster
fichier image
mon _point
my_xlato ; <-largeur
0,0
)
)
(vla-put-name inimage (fichier image fnverificanomeimg)) ;<-- name
(vla-mise à jour image)
)

(défun fnverificanomeimg(nom / im_dict suffisso loop count recnome)
(setq im_dict (dictsearch (nomdobjdict) "acad_image_dict")
(compte de setq 1 nom)
(alors que cdr (car (membre (cons 3 nome) im_dict)))
(setq nome (strcat (vl-filename-base recnome) "-" (rtos compte 2 0) (vl-filename-extension recnome))
(nombre défini (1 + nombre))
)
nom
)
la liste des noms d'images est dans im_dict, le reste est de vérifier si le nom existe et au cas où il ajoute le suffixe -1, -2, etc.

Au revoir.
 
Code:
(defun c:insrasterimage (/ acadobj doc imagefile)
(setq acadobj (vlax-get-acad-object)
doc (document actif vla-get acadobj)
)
(setq imagefiled "\nselect a raster image: "" "jpg;png;tif;gif;bmp;tga;pcx" 8)
(setq my_point (getpoint "\nselect an insertion point: "))
(setq my_xlato (longueur maximale de x côté: "))
(setq image)
(vlax-invoke
(vlax-get (vla-get-activelayout doc) 'bloc)
'addraster
fichier image
mon _point
my_xlato ; <-largeur
0,0
)
)
(vla-put-name inimage (fichier image fnverificanomeimg)) ;<-- name
(vla-mise à jour image)
)

(défun fnverificanomeimg(nom / im_dict suffisso loop count recnome)
(setq im_dict (dictsearch (nomdobjdict) "acad_image_dict")
(compte de setq 1 nom)
(alors que cdr (car (membre (cons 3 nome) im_dict)))
(setq nome (strcat (vl-filename-base recnome) "-" (rtos compte 2 0) (vl-filename-extension recnome))
(nombre défini (1 + nombre))
)
nom
)
la liste des noms d'images est dans im_dict, le reste est de vérifier si le nom existe et au cas où il ajoute le suffixe -1, -2, etc.

Au revoir.

Code:
(defun c:insrasterimage (/ acadobj doc imagefile)
(setq acadobj (vlax-get-acad-object)
doc (document actif vla-get acadobj)
)
(setq imagefiled "\nselect a raster image: "" "jpg;png;tif;gif;bmp;tga;pcx" 8)
(setq my_point (getpoint "\nselect an insertion point: "))
(setq my_xlato (longueur maximale de x côté: "))
(setq image)
(vlax-invoke
(vlax-get (vla-get-activelayout doc) 'bloc)
'addraster
fichier image
mon _point
my_xlato ; <-largeur
0,0
)
)
(vla-put-name inimage (fichier image fnverificanomeimg)) ;<-- name
(vla-mise à jour image)
)

(défun fnverificanomeimg(nom / im_dict suffisso loop count recnome)
(setq im_dict (dictsearch (nomdobjdict) "acad_image_dict")
(compte de setq 1 nom)
(alors que cdr (car (membre (cons 3 nome) im_dict)))
(setq nome (strcat (vl-filename-base recnome) "-" (rtos compte 2 0) (vl-filename-extension recnome))
(nombre défini (1 + nombre))
)
nom
)
la liste des noms d'images est dans im_dict, le reste est de vérifier si le nom existe et au cas où il ajoute le suffixe -1, -2, etc.

Au revoir.
Merci beaucoup, très aimable.
salutations
Plus riche
 

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut