A voir également:
- Vlax-ename- vla-object
- Shockwave flash object - Télécharger - Divers Web & Internet
- Object dock - Télécharger - Divers Utilitaires
- Typeerror: 'int' object is not subscriptable - Forum Python
- Move object sims 2 - Forum Jeux vidéo
- Object of class doctrine\orm\persistentcollection could not be converted to string - Forum PHP
10 réponses
Merci pour ta réponse, j'avais également fait ce test... Mais sans plus de réussite
Je cherche toujours...
Je cherche toujours...
UP ! svp
Si je mets:
[code]
(setq Objzone(vlax-ename->vla-object (car zone)))
[/code]
j'ai: type d'argument incorrect: consp <Nom d'entité: 7ffff605a90>
Si je mets
[code]
(setq Objzone(vlax-ename->vla-object zone))
[/code]
j'ai: type d'argument incorrect: VLA-OBJECT
Je m'en sort pas...
Merci
Si je mets:
[code]
(setq Objzone(vlax-ename->vla-object (car zone)))
[/code]
j'ai: type d'argument incorrect: consp <Nom d'entité: 7ffff605a90>
Si je mets
[code]
(setq Objzone(vlax-ename->vla-object zone))
[/code]
j'ai: type d'argument incorrect: VLA-OBJECT
Je m'en sort pas...
Merci
Bonjour,
Avant d'utiliser les fonctions vl-vlax, tu dois lancer cette fonction Lisp:
(vl-load-com)
recopie ce lisp et fais un essai en tapant test sur la ligne de commande, tu devrais avoir en retour quelque chose comme ça:
#<VLA-OBJECT IAcadLWPolyline 0a75ca24>
(defun c:test()
(vl-load-com)
(setq zone(entlast))
(setq Objzone(vlax-ename->vla-object zone))
)
Avant d'utiliser les fonctions vl-vlax, tu dois lancer cette fonction Lisp:
(vl-load-com)
recopie ce lisp et fais un essai en tapant test sur la ligne de commande, tu devrais avoir en retour quelque chose comme ça:
#<VLA-OBJECT IAcadLWPolyline 0a75ca24>
(defun c:test()
(vl-load-com)
(setq zone(entlast))
(setq Objzone(vlax-ename->vla-object zone))
)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci Yoda de ta patience
J'ai bien mis le (vl-load-com), je poste mon code peut-être que ce sera plus clair
(defun c:zoning (/)
(vl-load-com)
(setvar "CMDECHO" 1)
(setq
angl 0
)
(initget (+ 1 2 4)) (setq ech (getreal "\nEchelle de hachurage: "))
(setq echb (* 10 ech))
(while T
(setq Tzone (strcase (getstring T "Nom de la Zone: ")))
(command "_.pline"(while (not (zerop (getvar "cmdactive")))(command pause)))
(setq zone(entlast))
(command "-fhach" "_p" "ANSI31" ech angl "_s" zone "" "")
(setq hach(entlast))
(setq Objzone (vlax-ename->vla-object zone)) ; <-- ICI toujours le même soucis
(vla-put-TextString aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%"))
(setq aire(strcat "Aire: " aire))
(vla-put-TextString peri(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Length \\f \"%lu2\">%"))
(setq peri(strcat "Périmètre: " peri))
(setq cdg (cdgpol zone))
(setq pt(strcat (rtos (car cdg) 2 3) "," (rtos (cadr cdg) 2 3) ",0"))
(command "inserer" "Y:\\Franck\\blocs\\zoningrep.dwg" pt echb echb angl Tzone aire peri)
(command "_.change" zone "_properties" "_color" 6 "")
(command "_.change" hach "_properties" "_color" 6 "")
)
(princ)
)
(defun cdgpol (pol / ent lp)
(if (and pol (= "LWPOLYLINE" (cdr (assoc 0 (setq ent (entget pol))))))
(setq lp (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 10 (car x))) ent)))
(print "pas une polyligne !!! ")
)
(if lp
(List
(/ (apply '+ (mapcar 'car lp)) (length lp))
(/ (apply '+ (mapcar 'cadr lp)) (length lp))
)
)
)
Voili voilou
J'ai bien mis le (vl-load-com), je poste mon code peut-être que ce sera plus clair
(defun c:zoning (/)
(vl-load-com)
(setvar "CMDECHO" 1)
(setq
angl 0
)
(initget (+ 1 2 4)) (setq ech (getreal "\nEchelle de hachurage: "))
(setq echb (* 10 ech))
(while T
(setq Tzone (strcase (getstring T "Nom de la Zone: ")))
(command "_.pline"(while (not (zerop (getvar "cmdactive")))(command pause)))
(setq zone(entlast))
(command "-fhach" "_p" "ANSI31" ech angl "_s" zone "" "")
(setq hach(entlast))
(setq Objzone (vlax-ename->vla-object zone)) ; <-- ICI toujours le même soucis
(vla-put-TextString aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%"))
(setq aire(strcat "Aire: " aire))
(vla-put-TextString peri(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Length \\f \"%lu2\">%"))
(setq peri(strcat "Périmètre: " peri))
(setq cdg (cdgpol zone))
(setq pt(strcat (rtos (car cdg) 2 3) "," (rtos (cadr cdg) 2 3) ",0"))
(command "inserer" "Y:\\Franck\\blocs\\zoningrep.dwg" pt echb echb angl Tzone aire peri)
(command "_.change" zone "_properties" "_color" 6 "")
(command "_.change" hach "_properties" "_color" 6 "")
)
(princ)
)
(defun cdgpol (pol / ent lp)
(if (and pol (= "LWPOLYLINE" (cdr (assoc 0 (setq ent (entget pol))))))
(setq lp (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 10 (car x))) ent)))
(print "pas une polyligne !!! ")
)
(if lp
(List
(/ (apply '+ (mapcar 'car lp)) (length lp))
(/ (apply '+ (mapcar 'cadr lp)) (length lp))
)
)
)
Voili voilou
Le problème c'est que dans ma config ça marche.
Est-ce que tu as bien installé Express Tools et est-ce que les fonctionnalités fonctionnent bien. Essaye de lancer SuperHatch par le menu Express-> Draw par exemple.
Est-ce que tu as bien installé Express Tools et est-ce que les fonctionnalités fonctionnent bien. Essaye de lancer SuperHatch par le menu Express-> Draw par exemple.
En faite au départ tout fonctionnais très bien mais le contenu du fichier à était effacé par erreur, j'ai donc tenté de la refaire ... A priori je pensais avoir fait la même chose mais le lisp ne fonctionne pas !
Oui les oputils Express sont installé, super hach fonctionne aussi.
En bref je sèche depuis 5 jours!
Oui les oputils Express sont installé, super hach fonctionne aussi.
En bref je sèche depuis 5 jours!
J'ai essayé ton lisp
Il hachure bien la zone mais s'arrête sur cette ligne
(vla-put-TextString aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%"))
il semble que c'est l'argument aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%") qui pose problème.
Il hachure bien la zone mais s'arrête sur cette ligne
(vla-put-TextString aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%"))
il semble que c'est l'argument aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%") qui pose problème.
Re...
J'ai fini par trouver une solution
Au-lieu de:
(vla-put-TextString aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%"))
Je fais...
(setq aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%"))
Enfin ça fonctionne, toutefois je n'ai toujours pas compris d'où venait l'erreur.
Merci Yoda pour ton aide
J'ai fini par trouver une solution
Au-lieu de:
(vla-put-TextString aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%"))
Je fais...
(setq aire(strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%"))
Enfin ça fonctionne, toutefois je n'ai toujours pas compris d'où venait l'erreur.
Merci Yoda pour ton aide
Re...
J'ai cherché un peu aussi, et j'ai trouvé que aire doit être un objet texte pour que ça marche.
Essaye ça, dans ton dessin tu crées une ligne de texte avec n'importe quel texte, c'est pour pouvoir selectionner cet objet par la suite, puis tu executes cette macro.
Quand la zone sera hachurée, sélectionne le texte qui prendra la valeur de la surface de la zone
J'ai cherché un peu aussi, et j'ai trouvé que aire doit être un objet texte pour que ça marche.
Essaye ça, dans ton dessin tu crées une ligne de texte avec n'importe quel texte, c'est pour pouvoir selectionner cet objet par la suite, puis tu executes cette macro.
Quand la zone sera hachurée, sélectionne le texte qui prendra la valeur de la surface de la zone
(defun c:zoning (/) (vl-load-com) (setvar "CMDECHO" 1) (setq angl 0 ) (initget (+ 1 2 4)) (setq ech (getreal "\nEchelle de hachurage: ")) (setq echb (* 10 ech)) ;(setq Tzone (strcase (getstring T "Nom de la Zone: "))) (command "_.pline"(while (not (zerop (getvar "cmdactive")))(command pause))) (setq zone(entlast)) (command "-fhach" "_p" "ANSI31" ech angl "_s" zone "" "") (setq hach(entlast)) (setq Objzone (vlax-ename->vla-object zone)) (setq Obj1 (car (entsel "\nSelectionnez un objet texte"))) (setq aire (vlax-ename->vla-object Obj1)) (vla-put-TextString aire (strcat "%<\\AcObjProp Object(%<\\_ObjId "(itoa (vla-get-ObjectID Objzone))">%).Area \\f \"%lu2\">%")) )