Le génie climatique de A à Z
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Lisp impressionant

5 participants

Aller en bas

Lisp impressionant Empty Lisp impressionant

Message  mikl Ven 30 Nov 2012, 10:43

J'ai trouvé un lisp incroyable : il permet de faire un comparatif entre un plan à l'indice a et l'indice b en créant un nouveau plan composé de 3 calques : ce qui a été modifié, ce qui a été ajouté et ce qui a été supprimé.
Pour moi, qui fait surtout de la synthèse, c'est très utile.
Il peut également permettre de créer des bulles de révision sur son propre plan lorsqu'on a oublié de noter au fur et à mesure.
Si ça vous intéresse...

mikl
Assistant
Assistant

Nombre de messages : 19
Age : 53
Localisation : un peu partout
Date d'inscription : 10/06/2010

Revenir en haut Aller en bas

Lisp impressionant Empty Re: Lisp impressionant

Message  MLe Sam 05 Juil 2014, 13:08

Bonjour,

Cela m'intéresse grandement. J'arrive avec beaucoup de retard mais qui sait ...
Merci d'avance,

MLe
Assistant
Assistant

Nombre de messages : 4
Age : 59
Localisation : Belgique
Date d'inscription : 05/07/2014

Revenir en haut Aller en bas

Lisp impressionant Empty Re: Lisp impressionant

Message  guillaume Dim 06 Juil 2014, 22:35

Bonjour,

J'avais zappé ce post. En effet, le lien pourrait etre rendu public cela permettrait à chacun de l'utiliser.

Merci d'avance.
guillaume
guillaume
Admin
Admin

Nombre de messages : 859
Age : 44
Localisation : Cesancey (39)
Date d'inscription : 10/05/2006

https://le-genie-climatique.1fr1.net

Revenir en haut Aller en bas

Lisp impressionant Empty Re: Lisp impressionant

Message  mikl Lun 07 Juil 2014, 07:57

Je vais donc vous coller le texte du lisp crée par Vincent Dufournaud (Gloire à lui) :

A copier coller dans un fichier .txt puis renommer en .lsp
Le commande pour lancer la comparaison est : cdwg

;;;*****************************************************************************

;;;*****************************************************************************

;;;************ ** 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

mikl
Assistant
Assistant

Nombre de messages : 19
Age : 53
Localisation : un peu partout
Date d'inscription : 10/06/2010

Revenir en haut Aller en bas

Lisp impressionant Empty Re: Lisp impressionant

Message  raptor_jf Ven 11 Juil 2014, 10:15

Bonjour,

Ce post est très intéressant mais je débute en autocad. J'ai fais le .lsp et je lance la commande .cdwg mais autocad me marque commande inconnue.
Pourrais tu faire un petit tuto

MErci

raptor_jf
Maître de conférence
Maître de conférence

Nombre de messages : 304
Age : 41
Localisation : Rouen
Date d'inscription : 13/08/2009

http://www.sogeti-ingenierie.fr

Revenir en haut Aller en bas

Lisp impressionant Empty Re: Lisp impressionant

Message  mikl Ven 11 Juil 2014, 10:32

Tu dois tout d'abord charger ce lisp.
Dans autocad, tu cliques sur outils puis tu descend jusqu'à charger une application
Lisp impressionant Lisp10
Ensuite, quand tu taperas cdwg, il te demandera quel plan tu veux comparer
La difficulté c'est soit tu prend indice A et tu compare avec le B
Soit tu prend le B et tu le compare à l'indice A.
C'est une gymnastique intellectuelle à faire qui n'est pas si simple étant donné qu'il crée un 3eme plan avec des couleurs pour ce qui a été ajouté, supprimé ou modifié

mikl
Assistant
Assistant

Nombre de messages : 19
Age : 53
Localisation : un peu partout
Date d'inscription : 10/06/2010

Revenir en haut Aller en bas

Lisp impressionant Empty Re: Lisp impressionant

Message  raptor_jf Ven 11 Juil 2014, 11:16

Merci pour ces précisions mais lorsque je lance la commande sous autocad CDWG une fenetre s'ouvre et la je choisi mon plan mais comment fais tu pour choisir l'autre plan

raptor_jf
Maître de conférence
Maître de conférence

Nombre de messages : 304
Age : 41
Localisation : Rouen
Date d'inscription : 13/08/2009

http://www.sogeti-ingenierie.fr

Revenir en haut Aller en bas

Lisp impressionant Empty Re: Lisp impressionant

Message  mikl Dim 13 Juil 2014, 12:21

Tu dois ouvrir l'indice A puis lancer la commande pour comparer avec l'indice B (ou l'inverse, c'est toi qui vois)

mikl
Assistant
Assistant

Nombre de messages : 19
Age : 53
Localisation : un peu partout
Date d'inscription : 10/06/2010

Revenir en haut Aller en bas

Lisp impressionant Empty Re: Lisp impressionant

Message  raptor_jf Mar 15 Juil 2014, 18:50

Nickel

Merci pour ces renseignements

raptor_jf
Maître de conférence
Maître de conférence

Nombre de messages : 304
Age : 41
Localisation : Rouen
Date d'inscription : 13/08/2009

http://www.sogeti-ingenierie.fr

Revenir en haut Aller en bas

Lisp impressionant Empty Super

Message  asaussereau Jeu 21 Mar 2019, 17:44

Merci pour ce partage.
Je viens de tester sur Autocad 2019 et Autocad MEP 2019, ça fonctionne très bien !
Un grand merci

asaussereau
Assistant
Assistant

Nombre de messages : 2
Age : 37
Localisation : LE MANS
Date d'inscription : 21/03/2019

Revenir en haut Aller en bas

Lisp impressionant Empty Re: Lisp impressionant

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum