Aller au contenu

Lisp marche plus sur 2016 !


rinse

Messages recommandés

bonjour à tous !

En espérant ne pas faire de doublons, je me permet de vous demander de l'aide:

J'ai upgradé ma version d'autocad (je suis sur 2016 actuellement ) et depuis, les lisp telles que JAV, EDIT_BLOC ne marchent plus. Est-ce une mauvaise manipulation de ma part ou un problème de codage ? (j'avoue, je ne sait pas faire de lisp, je me suis contentée de recopier celles éditées par plus compétents que moi ,que je remercie humblement).

La perte de ces éléments engendre une perte de temps (forcément), merci de me renseigner sur la marche a suivre!

Cordialement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

 

Vérifie dans le menu option ;

 

onglet fichier : Ajoute dans " Emplacement approuvés" le dossier dans lequel tu range tes macros

 

onglet système : bouton 'Sécurité - paramètre des fichier exécutable" choisis d'où tu autorise le lancement de macros

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Merci laud69, j'en ai certaines qui se sont remises a fonctionner, mais pas EDIT_BLOC, dommage....je m'aperçoit que j'ai aussi des styles de lignes qui ont disparus :blink:, à force de changer de version et de réutiliser les mêmes outils ça devait arriver !

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Merci du tuyau ! je vais essayer dés que j'arrive au boulot ! si je le retrouve j'aurais tout gagné !

JAV fonctionne depuis que j'ai testé la solution ci dessus! mais il m'affiche "erreur quelquechose " une fois qu'il a fini ! à voir !

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

RAPPEL : si SECURELOAD = ZERO

Alors vous desactivez toutes les securites 2014/2015/2016 de chargement des routines / developpements AutoCAD !

---> Plus besoin de "jouer" avec TRUSTEDPATHS ... ou les emplacements approuves ...

 

SVP a faire uniquement pour des tests temporaires SVP !!

 

Bye, lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Chez moi =>

 

Commande: JAV

Initialisation......JAV chargé.

Contrôle de l'en-tête

Contrôle des tables

Contrôle des entités 1ère passe

Etape 1 100 objets contrôlés

Contrôle des entités 2ème passe

Etape 2 100 objets contrôlés

Contrôle des blocs

1 blocs contrôlés

Contrôle d'AcDsRecords

Nombre total d'erreurs trouvées 0, corrigées 0

0 objets effacés

Commande: Régénération de l'objet - fenêtres en mémoire cache.

Régénération de l'objet - fenêtres en mémoire cache.

Commande:

 

Tout semble normal,..

 

Merci pour ce complément d'info Patrice,;)

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Coucou !

Après test avec la variable SECURELOAD à 0 jav ne pose plus de souci. Pour être sure de ne pas faire de betise: je suis sensée la remettre à 1 où la laisser comme ça ? je risque quoi si elle est à 0 tout le temp ? par contre editb donne ça:

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...

Bonjour à tous,

 

Après être passer sous autocad P&ID 2017, tout fonctionnait parfaitement et du jour au lendemain Edit_bloc ne fonctionne plus.

J'ai un message:

autocad Erreur dans le fichier de boîte de dialogue "C:\.....\Edit\bloc.dcl", ligne2: avertissement: redéfinition d'objet. symbole: "edit_bloc_3".

A ceci s'ajoute la perte des anciens raccourci clavier des commandes natives rotation (RI), déplacer (DP), etc...

 

Une idée?

Merci à tous

HPZ400 Workstation

Intel Xeon W3550 3.07 GHz

6 Go ram

QUADRO FX 1800

Lien vers le commentaire
Partager sur d’autres sites

  • 3 ans après...

Bonjour,

J’ai problème avec certain lisp.

Certain fonctionne et d’autre pas :------------------

> Ong ; pline_ block (que j’ai renommé SF)

>Jav lui fonctionne.---------------------

SECURELOAD et a 1 j’ai essayé a 0 et cela ne fonctionne pas aussi.------------------------

J’ai donc recréé le chemin dans :

Option > Fichiers > Emplacement approuvé

Là problème de sécurité L’emplacement spécifié n’est pas en lecture seule. Que voulez vous faire je clique sur continuer.

Donc si vous avez d’autres idées

Merci

 

 

Nous vivons tous dans le ventre d'un chien géant

Tout le monde le sait mais personne ne dit rien du tout

 

ultra Vomit

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

As-tu des messages d'erreur ?

Peux-tu décrire plus précisément ce qui ne fonctionne pas ?

 

Poste la version de Pline_block que tu as (il y en a eu plusieurs).

Idem pour Ong, sans voir le code, impossible de voir ce qui peut faire que ça ne "fonctionne" pas.

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

bonjour et merci pour cette réponse.

 

bien sûr j'ai changé Pline block par SF (surface)

 

;;;  sf -Gilles Chanteau- 13/04/07
;;; Insère le bloc "sf" après sélection d'une polyligne
;;; Attribut 1 : Nom de la pièce
;;; Attribut 2 : Longueur de la polyligne
;;; Attribut 3 : Aire de la polyligne
(defun c:sf (/ AcDoc Space bloc nom ent obj ins op reg ech id long aire ref)
 (vl-load-com)
 (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
   	Space (if (= (getvar "CVPORT") 1)
           	(vla-get-PaperSpace AcDoc)
           	(vla-get-ModelSpace AcDoc)
         	)
 )
 (if (or (tblsearch "BLOCK" (setq bloc "sf")) (findfile (setq bloc "sf.dwg")))
(progn ;; attribut "nom de la pièce"
      	(if (not (setq nom (getname "Nom de la pièce")))
        	(setq nom "")
      	)
      	(while (not (setq ent (car (entsel)))))
      	(setq obj (vlax-ename->vla-object ent))
      	(if (= "AcDbPolyline" (vla-get-ObjectName obj))
        	(progn (if (not (setq ins (getpoint "\nSpécifiez le point d'insertion ou < Centre >: ")))
                 	(progn (if (= (vla-get-closed obj) :vlax-false)
                          	(progn (vla-put-closed obj :vlax-true) (setq op T))
                        	)
                        	(setq reg (vlax-invoke space 'addRegion (list obj))
                              	ins (vlax-get (car reg) 'Centroid)
                        	)
                        	(if op
                          	(vla-put-closed obj :vlax-false)
                        	)
                        	(vla-delete (car reg))
                 	)
               	)
               	(if (not (vlax-ldata-get "sf" "ech"))
                 	(vlax-ldata-put "sf" "ech" 3)
               	)
               	(if (not
                     	(setq ech (getreal (strcat "\nEntrez le facteur d'échelle <" (rtos (vlax-ldata-get "sf" "ech")) ">: ")))
                   	)
                 	(setq ech (vlax-ldata-get "sf" "ech"))
                 	(vlax-ldata-put "sf" "ech" ech)
               	)
               	(setq id (vla-get-ObjectID obj)
                    	;; Attribut périmètre (mm² -> m²)
                      	aire
                     	(strcat "Surface: "
                             	"%<[url="file://\\AcObjProp"]\\AcObjProp[/url] Object(%<[url="file://\\_ObjId"]\\_ObjId[/url] "
                             	(itoa id)
                             	">%).Area [url="file://\\f"]\\f[/url] \"%lu2%pr2%ct8[1e-0]\">%"
                             	" m²"
                     	)
                      	
                     	;; Attribut surface (mm -> m)
                     	long
                      	(strcat "Perimétre: "
                              	"%<[url="file://\\AcObjProp"]\\AcObjProp[/url] Object(%<[url="file://\\_ObjId"]\\_ObjId[/url] "
                              	(itoa id)
                              	">%).Length [url="file://\\f"]\\f[/url] \"%lu2%pr2%ct8[1.00]\">%"
                              	" ml"
                      	)
               	)
               	(setq ref (vla-InsertBlock
                           	Space
                           	(vlax-3d-point (trans ins 1 0))
                           	bloc
                           	ech
                           	ech
                           	1
                           	(angle '(0 0 0) (trans (getvar 'ucsxdir) 0 (trans '(0 0 1) 1 0 T)))
                         	)
               	)
               	;; attribution de leur valeur aux attributs
               	(mapcar '(lambda (x y) (vla-put-TextString x y))
                       	(vlax-invoke ref 'GetAttributes)
                       	(list nom aire long)
               	)
               	(vla-regen AcDoc acActiveViewport)
        	)
        	(alert "L'objet sélectionné n'est pas une polyligne.")
      	)
)
(alert "Le bloc \"sf\" est introuvable.")
 )
 (princ)
)

 

Pour getnam :

 

getname:dialog{

value="Choisir un nom";

key="box";

initial_focus="tp";

:boxed_column{

label="Modifier la liste";

:row{

spacer;

:edit_box{

key="tp";

edit_width=20;

alignment=left;

allow_accept=true;

}

spacer;

}

:row{

:button{

label="Ajouter";

key="add";

}

:button{

label="Retirer";

key="del";

}

}

}

spacer_1;

:row{

spacer;

:list_box{

key="pop";

width=25;

}

spacer;

}

spacer_1;

ok_cancel;

}

 

 

 

 

 

Nous vivons tous dans le ventre d'un chien géant

Tout le monde le sait mais personne ne dit rien du tout

 

ultra Vomit

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Je pense que le code que tu as posté ne fonctionne sur aucune version d'AutoCAD (les formules de champ sont corrompues avec des balises BBCODE ?!).

 

Essaye ça (pas testé)

 

;;;  sf -Gilles Chanteau- 13/04/07
;;; Insère le bloc "sf" après sélection d'une polyligne
;;; Attribut 1 : Nom de la pièce
;;; Attribut 2 : Longueur de la polyligne
;;; Attribut 3 : Aire de la polyligne
(defun c:sf (/ AcDoc Space bloc nom ent obj ins op reg ech id long aire ref)
 (vl-load-com)
 (setq	AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
Space (if (= (getvar "CVPORT") 1)
	(vla-get-PaperSpace AcDoc)
	(vla-get-ModelSpace AcDoc)
      )
 )
 (if (or (tblsearch "BLOCK" (setq bloc "sf")) (findfile (setq bloc "sf.dwg")))
   (progn
     ;; attribut "nom de la pièce"
     (if (not (setq nom (getname "Nom de la pièce")))
(setq nom "")
     )
     (while (not (setq ent (car (entsel)))))
     (setq obj (vlax-ename->vla-object ent))
     (if (= "AcDbPolyline" (vla-get-ObjectName obj))
(progn
  (if (not (setq ins (getpoint "\nSpécifiez le point d'insertion ou < Centre >: ")))
	 (progn	(if (= (vla-get-closed obj) :vlax-false)
		  (progn (vla-put-closed obj :vlax-true) (setq op T))
		)
		(setq reg (vlax-invoke space 'addRegion (list obj))
		      ins (vlax-get (car reg) 'Centroid)
		)
		(if op
		  (vla-put-closed obj :vlax-false)
		)
		(vla-delete (car reg))
	 )
       )
       (if (not (vlax-ldata-get "sf" "ech"))
	 (vlax-ldata-put "sf" "ech" 3)
       )
       (if (not
	     (setq ech (getreal	(strcat	"\nEntrez le facteur d'échelle <"
					(rtos (vlax-ldata-get "sf" "ech"))
					">: "
				)
		       )
	     )
	   )
	 (setq ech (vlax-ldata-get "sf" "ech"))
	 (vlax-ldata-put "sf" "ech" ech)
       )
       (setq id	  (vla-GetObjectIdString (vla-get-Utility AcDoc) obj :vlax-false)
	     ;; Attribut périmètre (mm² -> m²)
	     aire (strcat "Surface: "
			  "%<\\AcObjProp Object(%<\\_ObjId "
			  id
			  ">%).Area \\f \"%lu2%pr2%ct8[1e-0]\">%"
			  " m²"
		  )

	     ;; Attribut surface (mm -> m)
	     long (strcat "Perimétre: "
			  "%<\\AcObjProp Object(%<\\_ObjId[/url] "
			  id
			  ">%).Length \\f \"%lu2%pr2%ct8[1.00]\">%"
			  " ml"
		  )
       )
       (setq ref (vla-InsertBlock
		   Space
		   (vlax-3d-point (trans ins 1 0))
		   bloc
		   ech
		   ech
		   1
		   (angle '(0 0 0) (trans (getvar 'ucsxdir) 0 (trans '(0 0 1) 1 0 T)))
		 )
       )
       ;; attribution de leur valeur aux attributs
       (mapcar '(lambda (x y) (vla-put-TextString x y))
	       (vlax-invoke ref 'GetAttributes)
	       (list nom aire long)
       )
       (vla-regen AcDoc acActiveViewport)
)
(alert "L'objet sélectionné n'est pas une polyligne.")
     )
   )
   (alert "Le bloc \"sf\" est introuvable.")
 )
 (princ)
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

merci pour cette réponse.

non cela ne fonctionne pas.

bien sûr j'ai créé un dossier placé dans support .dans option Autocad j'ai pointer le dossier vers support.

merci

 

 

 

Nous vivons tous dans le ventre d'un chien géant

Tout le monde le sait mais personne ne dit rien du tout

 

ultra Vomit

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Voir ci-dessous la version CORRIGEE de cette excellente routine SF du Grand Maitre Gilles !

 

Ta version etait POURRIE par les BBCodes !!

 

Testee et validee sur la version 2019 ...

 

Si tu veux 2 decimales alors tu changes aux 2 endroits %pr1% en %pr2% !?

PERSO: 1 decimale me suffit largement !

 

Mes 3 attributs visibles sont sur 3 calques differents dans ma version du Bloc SF !

ATT_PIECE1_NOM , ATT_PIECE2_SURF , ATT_PIECE3_PERIM

 

LA SANTE (Stay Safe), Bye, lecrabe "Triste"

Automne 2020, la retraite

 


;; 
;; Routine: SF par GC - Version NON TESTEE !! 
;;
;; https://cadxp.com/topic/41525-lisp-marche-plus-sur-2016/page__pid__293745#entry293745
;; 
;; ATTENTION : il faut le GETNAME.LSP + .DCL  &  SF.lsp
;;             dans les Chemins de Support + dans les chemins Approuves
;; 

;;; SF par GC - 13/04/07
;;; Insere le bloc "SF" apres selection d'une polyligne
;;; Attribut 1 : Nom de la piece / salle
;;; Attribut 2 : Surface/Aire        de la polyligne
;;; Attribut 3 : Longueur/Perimetre  de la polyligne

(vl-load-com)

(defun c:SF (/ AcDoc Space bloc nom ent obj ins op reg ech id long aire ref)

 (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
       Space (if (= (getvar "CVPORT") 1)
               (vla-get-PaperSpace AcDoc)
               (vla-get-ModelSpace AcDoc)
             )
 ) 

 (if (or (tblsearch "BLOCK" (setq bloc "sf")) (findfile (setq bloc "sf.dwg")))
   (progn
     ;; attribut "nom de la piece"
     (if (not (setq nom (getname "Nom de la Piece / Salle ")))
       (setq nom "")
     )
     (while (not (setq ent (car (entsel)))))
     (setq obj (vlax-ename->vla-object ent))
     (if (= "AcDbPolyline" (vla-get-ObjectName obj))
       (progn
         (if (not (setq ins (getpoint "\nSpecifiez le point d'Insertion ou < Centre >: ")))
                (progn (if (= (vla-get-closed obj) :vlax-false)
                         (progn (vla-put-closed obj :vlax-true) (setq op T))
                       )
                       (setq reg (vlax-invoke space 'addRegion (list obj))
                             ins (vlax-get (car reg) 'Centroid)
                       )
                       (if op
                         (vla-put-closed obj :vlax-false)
                       )
                       (vla-delete (car reg))
                )
              )
              (if (not (vlax-ldata-get "sf" "ech"))
                (vlax-ldata-put "sf" "ech" 1)
              )
              (if (not
                    (setq ech (getreal (strcat "\nEntrez le facteur d'Echelle du Bloc SF <"
                                               (rtos (vlax-ldata-get "sf" "ech"))
                                               ">: "
                                       )
                              )
                    )
                  )
                (setq ech (vlax-ldata-get "sf" "ech"))
                (vlax-ldata-put "sf" "ech" ech)
              )
              (setq id   (vla-GetObjectIdString (vla-get-Utility AcDoc) obj :vlax-false)
                    ;; Attribut Surface (mm² -> m²) 
                    ;; %<\AcObjProp Object(%<\_ObjId 1769073641568>%).Area \f "%lu2%pr1">%
                    aire (strcat "Surface: "
                                 "%<\\AcObjProp Object(%<\\_ObjId "
                                 id
                                 ">%).Area \\f \"%lu2%pr1%ct8[1.00]\">%"
                                 "M2"
                         )

                    ;; Attribut Longueur (mm -> m)
                    ;; %<\AcObjProp Object(%<\_ObjId 1769073641568>%).Length \f "%lu2%pr1">%

                    long (strcat "Perimetre: "
                                 "%<\\AcObjProp Object(%<\\_ObjId "
                                 id
                                 ">%).Length \\f \"%lu2%pr1%ct8[1.00]\">%"
                                 "ML"
                         )
              )
              (setq ref (vla-InsertBlock
                          Space
                          (vlax-3d-point (trans ins 1 0))
                          bloc
                          ech
                          ech
                          1
                          (angle '(0 0 0) (trans (getvar 'ucsxdir) 0 (trans '(0 0 1) 1 0 T)))
                        )
              )
              ;; attribution de leur valeur aux attributs
              (mapcar '(lambda (x y) (vla-put-TextString x y))
                      (vlax-invoke ref 'GetAttributes)
                      (list nom aire long)
              )
              (vla-regen AcDoc acActiveViewport)
       )
       (alert "L'objet selectionne n'est pas une Polyligne ! ")
     )
   )
   (alert "Le Bloc \"sf\" est introuvable ! ")
 ) 

 (princ)
)  

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Ça ne fonctionne toujours pas------------

J’ai bien tous les lisps en place.-------------

Pour le comportement :--------------

Je tapé au clavier > sf > entrée > et là rien ne se passe aucun message d’erreur.

Ces 3 routines fonctionnent bien au boulot.

Chez moi non je n’ai rien fait de plus ou de moins pour les faire fonctionner.

Bon, je suis en confinement encore quelle que temps et ma version Auto est...de 2014

-----------------------

;;; GetName  (gile)
;;; Retourne le nom spécifié ou choisi dans la liste.
;;; Les noms entrés sont ajoutés à la liste.
;;; La liste est conservée dans le dessin.

(defun getname	(titre / lst what_next dcl_id nom)
 (if (not (vlax-ldata-get "sf" "Name"))
(vlax-ldata-put "sf" "Name" '("Bain" "Cuisine" "Entrée" "Séjour" "WC"))
 )
 (setq lst (vlax-ldata-get "sf" "Name"))
 (setq dcl_id (load_dialog "GetName.dcl"))
 (setq what_next 2)
 (while (>= what_next 2)
(if	(not (new_dialog "getname" dcl_id))
 	(exit)
)
(start_list "pop")
(mapcar 'add_list lst)
(end_list)
(if	titre
 	(set_tile "box" titre)
)
(action_tile
 	"pop"
 	(strcat
"(if (or (= $reason 1) (= $reason 4))"
"(set_tile \"tp\" (nth (atoi $value) lst)))"
"(mode_tile \"accept\" 2)"
 	)
)	
(action_tile
 	"add"
 	(strcat
"(if (not (member (get_tile \"tp\") lst))"
"(setq lst (acad_strlsort (cons (get_tile \"tp\") lst))))"
"(done_dialog 2)"
 	)
)
(action_tile
 	"del"
 	(strcat
"(setq lst (vl-remove (get_tile \"tp\") lst))"
"(done_dialog 2)"
 	)
)
(action_tile
 	"accept"
 	(strcat
"(if (not (read (get_tile \"tp\")))"
"(progn (alert \"Spécifiez un nom, svp.\")"
"(done_dialog 2))"
"(progn (setq nom (get_tile \"tp\"))"
"(if (and (not (member nom lst)) (/= nom ""))"
"(setq lst (acad_strlsort (cons (get_tile \"tp\") lst))))"
"(vlax-ldata-put \"sf\" \"Name\" lst)"
"(done_dialog 1)))"
 	)
)
(setq what_next (start_dialog))
(if (= what_next 0)
(setq nom nil)
)
 )
 (unload_dialog dcl_id)
 nom
)

 

 

Nous vivons tous dans le ventre d'un chien géant

Tout le monde le sait mais personne ne dit rien du tout

 

ultra Vomit

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Les Lisps sont bien chargés sur le fichier sur lequel je travaille.

 

Dans Options Fichiers, je pointe les Lisps dans Fichiers approuvés.

 

 

Nous vivons tous dans le ventre d'un chien géant

Tout le monde le sait mais personne ne dit rien du tout

 

ultra Vomit

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Tu dis :

Dans Options Fichiers, je pointe les Lisps dans Fichiers approuvés.

 

Et dans les Chemins de Support ?

As tu bien le MEME chemin ??

 

Gilles t'a demande quelle erreur s'affiche en Ligne de commande (Ecran Text F2) ??

 

Au boulot, tu es avec quelle version de AutoCAD ??

 

LA SANTE (Stay Safe), Bye, lecrabe "triste"

Automne 2020, la retraite

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

bonjour

 

autocad 2014

Emplacement des fichiers approuvés

 

C:\Programe Files \Autodesk\Autocad 2014 \ support \ lisp

 

---------------------------------------------------------------------

Chemin de recherche de fichier de support

je n'ai pas indiqué de chemin

----------------------------------------------------

 

message d’erreurs aucun, je tape SF et rien aucun message d’erreurs.

 

 

Nous vivons tous dans le ventre d'un chien géant

Tout le monde le sait mais personne ne dit rien du tout

 

ultra Vomit

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

MAIS les Chemins de Support , c LE PLUS IMPORTANT !?

Avec donc les 3 fichiers : GETNAME.LSP + GETNAME.DCL + SF.LSP

DANS le fameux dossier ! ... "lisp" pour toi !?

 

Gilles t'a demande quelle erreur s'affiche en Ligne de commande (Ecran Text F2) ??

 

Au boulot, tu es avec quelle version de AutoCAD ??

 

LA SANTE (Stay Safe), Bye, lecrabe "triste"

Automne 2020, la retraite

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é