Aller au contenu

vinz34

Membres
  • Compteur de contenus

    340
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

Tout ce qui a été posté par vinz34

  1. vinz34

    Message à l\'ouverture

    Salut, Rgarde si tu as des applications chargées au démarrage (tapes APPLOAD). Si c'est le cas, enlève les et réessaies. Bon courage
  2. Salut, sous autocad 2009 tu as cette possibilité aussi, je ne sais pas comment ds'appelle la commande mais je sais qu'elle existe.
  3. vinz34

    Affichage champs

    Re, Il te faut mettre la valeur qui te correspond à Fieldeval (pense à cumuler les valeurs). Regarde dans l'aide pour en voir les possibilités.
  4. vinz34

    Affichage champs

    Salut, C'est la variable fielddisplay
  5. Salut, Il y aussi ATTDIA pour les boîtes des attributs .......
  6. vinz34

    Compare 2 plans

    Salut, Merci (gile), dès que je trouve un moment je l'achève (j'ai commencé à comparer les blocs concernés dans les table des fichiers).
  7. vinz34

    e-transmit 2009

    Salut, J'en ai encore fait une ce matin et je n'ai pas de problème les Xrefs sont bien liées.
  8. vinz34

    Compare 2 plans

    OK, je l'intègre avec des tests supplémentaires pour les blocs (recherche dans la table. Je sais le faire avec le code dxf, mais je vais le faire en vl (j'apprends). Merci.
  9. vinz34

    Compare 2 plans

    Salut, Autospeed, le coup des couleurs est un classique, ça me rappelle celui des fenêtres. J en'y attache que peu d'importance, le fait de n'avoir que 3 calques permet de le gérer simplement. Lili, je n'ai pas approfondi sur les blocs, je vais l'intégrer (vérifier dans la table). Quand aux erreurs, je ne vois pas je test encore... (gile), merci pour ton aide. Je rajouterai les props pour les blocs. Je tiens à vérifier le 'ObjectName, j'ai rencontré un cas ou le handle était identique mais pas le type d'entité. J'avais commencé par des tests par type d'entité et la différence niveau temps n'est pas perceptible.
  10. vinz34

    Affichage différents

    Salut, Dans l'espace objet je ne vois comment ce serait possible. En revanche dans l'espace papier c'est possible.
  11. vinz34

    Compare 2 plans

    Re, Quand tu dis : Tu ne veux pas visualiser les objets supprimés si je comprends bien. Je pense qu'il est quand même parfois utile de les voir (éventuellement ça peut être une option au lancement de la routine).
  12. vinz34

    Compare 2 plans

    Salut, Maintenant j'espère que tout le monde ne va se contenter de simplement prendre le code. J'attends des retours et des remarques pour l'améliorer.
  13. vinz34

    Comparaison

    Merci beaucoup encore une fois pour ta rapidité et surtout ton efficacité. J'ai placé ici la routine pour laquelle j'avais besoin de ces précision.
  14. vinz34

    Compare 2 plans

    Bonjour, A force de recevoir des mises à jour plans avec une seule modification annoncée alors que d'autres ne le sont pas (oubli volontaire ou non), je me suis penché sur la réalisation d'une routine qui permet de comparer 2 plans. Son fonctionnement est simple, le nouveau plan doit être ouvert, le lisp chargé lancer la commande cdwg. D'abord vous êtes invité à sélectionner l'ancien plan de réference puis il crée un plan sur lequel ressortent les modifications, ajouts ou suppressions. Le code est encore brut de décoffrage et le temps d'exécution parfois long sur un gros plan (env. 7mn pour 50000 entités). ;;;***************************************************************************** ;;;***************************************************************************** ;;;************ ** COMPARE 2 PLANS ** **************** ;;;***************************************************************************** ;;;****** *** créé le 16/04/08 par Vincent Dufournaud *** ****** ;;;***************************************************************************** ;;;***************************************************************************** (vl-load-com) (defun c:cdwg (/ app cdoc fichier old name sp1 sp2 lst2 e obj lstmodif lstajout lstsuppr lst obj sup ) (setq ACADLSPASDOC (getvar "ACADLSPASDOC")) (setvar "ACADLSPASDOC" 0) (setq app (vlax-get-acad-object) cdoc (vla-get-activedocument app) fichier (getfiled "Sélection de l'ancien plan" (strcat (vl-filename-directory (vla-get-fullname cdoc)) "/" ) "dwg" 4 ) old (vla-open (vla-get-documents app) fichier) name (vla-get-fullname cdoc) s (getvar "date") t1 (* 86400.0 (- s (fix s))) ) (vla-saveas cdoc (strcat (substr name 1 (- (strlen name) 4)) " Modications depuis " (vla-get-name old) ) ) (setq sp1 (vla-get-modelspace cdoc) sp2 (vla-get-modelspace old) ) (vlax-for lay (setq layers (vla-get-layers cdoc)) (vlax-put lay 'color 253) (vla-put-lock lay :vlax-false) ) (vlax-for lay (vla-get-layers old) (vla-put-lock lay :vlax-false) ) (vlax-for ent sp2 (setq lst2 (cons (cons (vla-get-handle ent) ent) lst2)) ) (defun equal-objects (obj1 obj2) (vl-every (function (lambda (p) (or (not (vlax-property-available-p obj1 p)) (equal (vlax-get obj1 p) (vlax-get obj2 p) 1e-9 ) ) ) ) '(ObjectName Center Radius Coordinates StartPoint EndPoint StartAngle EndAngle MajorAxis RadiusRatio TextString InsertionPoint Width Height ) ) ) (vlax-put (vla-add layers "0.Ajouts") 'color 172) (vlax-put (vla-add layers "0.Modications") 'color 10) (vlax-put (vla-add layers "0.Suppressions") 'color 92) (vlax-for ent sp1 (vla-put-color ent 256) (if (setq e (assoc (vlax-get ent 'handle) lst2)) ;;vérifie si le handle existe sur les 2 plans (progn (cond ((not (equal-objects ent (cdr e))) (vla-put-layer ent "0.Modications") ) ) (setq lst2 (vl-remove e lst2)) ) (vla-put-layer ent "0.Ajouts") ) ) (if lst2 (foreach n lst2 (vla-put-layer (car (vlax-invoke old 'CopyObjects (list (cdr n)) sp1)) "0.Suppressions" ) ) ) (vla-close old) (vla-purgeall cdoc) (vla-save cdoc) (setq s (getvar "date") t2 (* 86400.0 (- s (fix s))) tt (- t2 t1) ) (if (> tt 60) (progn (setq sec (rem tt 60) mn (strcat (rtos (/ (- tt sec) 60) 2 0) " mn ") sec (strcat (rtos sec 2 0) " s") ) ) (progn (setq sec (strcat (rtos tt 2 0) " s") mn "0 mn " ) ) ) (alert (strcat "Plan de repérages des modifications\n\nLes ajouts sont en vert\nLes modifications en rouge\nLes suppressions en bleu\n\nTemps d'éxecution : " mn sec ) ) (setvar "ACADLSPASDOC" ACADLSPASDOC) ) ;defun [Edité le 17/4/2008 par vinz34] [Edité le 29/4/2008 par vinz34]
  15. vinz34

    Comparaison

    Salut, Merci, ça va franchement me raccourcir le code j'étais en train de lister les propriétés pour chaque type d'entité. Je test ça.
  16. vinz34

    Comparaison

    Bonjour, Existe-t-il une méthode pour comparer les propriétés de 2 entités sans faires des tests par type d'entité avec des vla-get* pour chaque propriété sur les deux : (defun va (prop /) (vlax-safearray->list (vlax-variant-value prop)) ) (setq lst (list (cons "AcDbCircle" (list '(va (vla-get-center n)) '(vla-get-radius n))) (cons "AcDbPolyline" (list '(va (vla-get-coordinates n)))) (cons "AcDbLine" (list '(va (vla-get-startpoint n)) '(va (vla-get-endpoint n)))) (cons "AcDbArc" (list '(va (vla-get-center n)) '(vla-get-radius n) '(vla-get-startangle n) '(vla-get-endangle n))) (cons "AcDbEllipse" (list '(va(vla-get-center n)) '(va(vla-get-majoraxis n)) '(vla-get-radiusratio n))) (cons "AcDbSolid" (list '(va (vla-get-coordinates n)))) (cons "AcDbText" (list '(vla-get-textstring n) '(va(vla-get-insertionpoint n)) '(vla-get-height n))) (cons "AcDbMText" (list '(va(vla-get-insertionpoint n)) '(vla-get-width n) '(vla-get-textstring n))) ))
  17. vinz34

    Copie d\'objet

    Salut, Merci (gile), j'ai adopté le vlax-invoke !
  18. vinz34

    Copie d\'objet

    Bonjour, Je cherche à copier une entité depuis un autre dessin ouvert. J'ai essayé avec vla-copy, mais je pense que ce n'est pas la bonne méthode Si quelqu'un sait faire, je suis preneur.
  19. vinz34

    IMPRIMER EN NOIR BLANC

    Salut, Si tu as des objets en couleurs vraies, ils ressortent en couleur même avec le style de tracé monochrome. Tu dois les passer en couleur de l'index.
  20. vinz34

    NIveaux

    Merci (gile)pour ces premiers retours, j'ai corrigé les (entlast) dans les commandes vla*. J'ai travaillé sur ce code avec la version 2008, puis la 2009 depuis une semaine.
  21. vinz34

    NIveaux

    Un petit essai pour m'initier au vlisp : (defun c:niv (/ sslist c e) (setvar "pickstyle" 1) ;;;Test de l'unité de dessin dans la configuration du dessin (while (not c) (if (and (< (setq c (getvar "insunits")) 7) (> c 3)) (cond ((= c 4) (setq c 1)) ((= c 5) (setq c 10)) ((= c 6) (setq c 1000))) (progn (setq c nil) (initget 2 "me cm mm") (setq unite (getkword "\nUnité du dessin : [ME/CM/MM]")) (cond ((= unite "me") (setvar "insunits" 6)) ((= unite "cm") (setvar "insunits" 5)) ((= unite "mm") (setvar "insunits" 4)) )))) ;;;choix de l'échelle ou doit être insérée la coupe (if (> (atof (substr (getvar "acadver") 1 4)) 17) (if (= (getvar "cannoscale") "1:1") (setq ech (/ (float(getint "échelle de la coupe : 1/")) c)) ; cannoscale = "1:1" (setq ech (/ 1 (getvar "cannoscalevalue"))) ; cannoscale /= "1:1" ) ; acadver > 16 (_if cannoscale) (setq ech (/ (float(getint "échelle de la coupe : 1/")) c)); acadver < 16 ) ;_test acadver (progn (setq pt (getpoint "Spécifiez le point d'insertion : ") nivref (atof (getstring "Précisez son niveau : ")) doc (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) ) (vla-addpoint doc (vlax-3d-point (list 0 nivref))) (vla-put-visible (vlax-ename->vla-object (entlast)) 0) (setq sslist (cons (entlast) sslist)) (vla-addtext doc (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid (vlax-ename->vla-object (entlast)))) ">%).Coordinates \\f \"%lu2%pt2%pr2\">%" ) (vlax-3d-point (list 0 0 0)) (* ech 2)) (vla-put-alignment (vlax-ename->vla-object (entlast)) 13) (vla-put-TextAlignmentPoint (vlax-ename->vla-object (entlast)) (vlax-3D-Point (list (car pt) (+ (* ech 3) (cadr pt))))) (setq sslist (cons (entlast) sslist)) (vla-addsolid doc (vlax-3d-point pt) (vlax-3d-point (polar pt (/ pi 3) (* ech 3))) (vlax-3d-point (polar pt (/ (* 2 pi) 3) (* ech 3))) (vlax-3d-point (polar pt (/ (* 2 pi) 3) (* ech 3))) ) (setq sslist (cons (entlast) sslist)) );progn (defun makegroup (lst / dict ind) (setq dict (dictsearch (namedobjdict) "ACAD_GROUP") ind "GRP1" ) (while (member (cons 3 ind) dict) (setq ind (strcat "GRP" (itoa (1+ (atoi (substr ind 4))))))) (dictadd (cdr (assoc -1 dict)) ind (entmakex (append (list '(0 . "GROUP") '(100 . "AcDbGroup") '(300 . "") '(70 . 1) '(71 . 1)) (mapcar (function (lambda (x) (cons 340 x))) lst) )))) (makegroup sslist) ) Le makegroup sort d'une routine de Gile. J'ai essayé en vl mais ce n'est pas évident. [Edité le 7/4/2008 par vinz34]
  22. vinz34

    Niveaux

    Un petit essai pour m'initier au vlisp : (defun c:niv (/ sslist c e) ;;;Test de l'unité de dessin dans la configuration du dessin (while (not c) (if (and (< (setq c (getvar "insunits")) 7) (> c 3)) (cond ((= c 4) (setq c 1)) ((= c 5) (setq c 10)) ((= c 6) (setq c 1000)) ) (progn (setq c nil) (initget 2 "me cm mm") (setq unite (getkword "\nUnité du dessin : [ME/CM/MM]")) (cond ((= unite "me") (setvar "insunits" 6)) ((= unite "cm") (setvar "insunits" 5)) ((= unite "mm") (setvar "insunits" 4)) ) ) ) ) ;;;choix de l'échelle ou doit être insérée la coupe (if (> (atoi (substr (getvar "acadver") 1 2)) 16) (if (= (getvar "cannoscale") "1:1") (setq ech (/ (float(getint "échelle de la coupe : 1/")) c)) ; cannoscale = "1:1" (setq ech (/ 1 (getvar "cannoscalevalue"))) ; cannoscale /= "1:1" ) ; acadver > 16 (_if cannoscale) ((setq ech (/ (float(getint "échelle de la coupe : 1/")) c))); acadver < 16 ) ;_test acadver (progn (setq pt (getpoint "Spécifiez le point d'insertion : ") nivref (atof (getstring "Précisez son niveau : ")) doc (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) ) (vla-addpoint doc (vlax-3d-point (list 0 nivref))) (vla-put-layer (entlast) "0") (vla-put-visible (vlax-ename->vla-object (entlast)) 0) (setq sslist (cons (entlast) sslist)) (vla-addtext doc (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vla-get-objectid (vlax-ename->vla-object (entlast)))) ">%).Coordinates \\f \"%lu2%pt2%pr2\">%" ) (vlax-3d-point (list 0 0 0)) (* ech 2) ) (vla-put-alignment (entlast) 13) (vla-put-TextAlignmentPoint (entlast) (vlax-3D-Point (list (car pt) (+ (* ech 3) (cadr pt)))) ) (vla-put-layer (entlast) "0") (setq sslist (cons (entlast) sslist)) (vla-addsolid doc (vlax-3d-point pt) (vlax-3d-point (polar pt (/ pi 3) (* ech 3))) (vlax-3d-point (polar pt (/ (* 2 pi) 3) (* ech 3))) (vlax-3d-point (polar pt (/ (* 2 pi) 3) (* ech 3))) ) (vla-put-layer (entlast) "0") (setq sslist (cons (entlast) sslist)) );progn (defun makegroup (lst / dict ind) (setq dict (dictsearch (namedobjdict) "ACAD_GROUP") ind "GRP1" ) (while (member (cons 3 ind) dict) (setq ind (strcat "GRP" (itoa (1+ (atoi (substr ind 4)))))) ) (dictadd (cdr (assoc -1 dict)) ind (entmakex (append (list '(0 . "GROUP") '(100 . "AcDbGroup") '(300 . "") '(70 . 1) '(71 . 1)) (mapcar (function (lambda (x) (cons 340 x))) lst) ) ) ) ) (makegroup sslist) ) Le makegroup sort d'une routine de Gile. J'ai essayé en vl mais ce n'est pas évident. Edit : désolé je me suis trompé de forum... A suivre ici. [Edité le 2/4/2008 par vinz34]
  23. Bonjour, Le temps d'une rubrique pour Autocad 2009 est arrivé. Plein de bonnes choses et déjà des bugs...
  24. vinz34

    nouveau autocad ?

    Salut, Tu as dans le coffret de la 2009 tout plein de petites fiches avec les nouveautés.
  25. vinz34

    Layer Freeze

    Salut, Idem sur 2008, c'est pas systématique sur tous les plans.
×
×
  • 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é