Aller au contenu

Lisp marche plus sur 2016 !


rinse

Messages recommandés

version 2017 pour autocad.

impossible de rajouter une ligne avec le chemin des lips dans chemins de recherche des fichier support.(?)

F2Commande: SF

; erreur: quitter / sortir abandon

 

Commande:

mon bloc sf n'est peut être plus bon vue les modifs faites ?!

 

 

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

 

Je (et Gilles) vais devenir CHEVRE avec ton Histoire ...

Franchement je pensais ETRE CLAIR sur le message No 25 !!

 

** 1 ** TU DOIS rajouter le chemin OU il y a les 3 fichiers ( GETNAME.LSP + GETNAME.DCL + SF.LSP ) dans les chemins de SUPPORT !!

C la 1ere ligne "SUPPORT" de OPTIONS du 1er Onglet "Fichiers" !!

 

** 2 ** Dans ton dossier que tu as ajoute au Point 1 !

Tu vas decompresser cela : http://dl.free.fr/ngjgXyGDF

 

** 3 ** Tu charges le DWG de Test "PIECE_Test_1.dwg" ...

 

** 4 ** Commande clavier : APPLOAD de GETNAME ... puis APPLOAD de SF ...

 

** 5 ** Tu lances SF sur un autre Polygone du DWG de Test ...

 

ALORS ??

 

 

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

Automne 2020, la retraite

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

; erreur: quitter / sortir abandon

C'est parce que le LISP ne trouve pas le DCL. Il ne le trouve pas parce qu'il n'est pas dans un dossier des chemins de recherche.

Toujours mettre les fichiers DCL dans des répertoires des chemins de recherche.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

bonsoir

 

j'ai refait toutes les étapes que lecrabe m'a indiqué.-----------------------------------------------------APPLOAD

GetName.lsp correctement chargé(s)

GetName.lsp a été ajouté à la liste des applications lancées au démarrage.

 

 

Commande:

Commande:

Commande:

Commande: APPLOAD

SF___v10___GC.lsp correctement chargé(s)

SF___v10___GC.lsp a été ajouté à la liste des applications lancées au démarrage.

Commande:

Commande:

Commande:

Commande: Spécifiez le coin opposé ou [TRajet/SPolygone/CPolygone]:

Commande: SF

; erreur: quitter / sortir abandon

Commande:

 

 

je tape sf :

fenêtre erreurs dans le fichier boite de dialogue.---------------------------------------le lisp getnam demande le block Pline _block et non sf

 

(defun getname	(titre / lst what_next dcl_id nom)
 (if (not (vlax-ldata-get "Pline_block" "Name"))

(vlax-ldata-put "Pline_block" "Name" '("SdB" "Cuisine" "Entrée" "Séjour" "WC" "Salon" "Couloir" "Bureau" "Garage" "Dressing" "Cave" "Escalier" "Buanderie" "Douche" "Terrasse"))

 

 

 

 

 

 

 

 

 

 

 

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

Du nouveau

dans le fichier que lecrabe m'a envoyé, j'ai renommé SF par Pline_Block

Et HOP ça fonctionne.

Bon, pas si simple comment puis-je faire fonctionner mon block SF que j'utilise habituellement il fait partie d'une charte alors...

Bon en tous cas un grand merci pour cette aide et cette patience .

 

 

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 le fichier que lecrabe m'a envoyé, j'ai renommé SF par Pline_Block

 

SVP tu as renomme quoi : la Routine Lsp ou le Nom du Bloc "SF" en "Pline_Block" ??

 

Le Devoue Decapode est TRES PATIENT !

 

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

Le Nom du Bloc "SF" en "Pline_Block"

Pour la routine j'ai voulu renommer tous les texte Pline_Block en SF mais ça n'a pas fonctionné.

 

 

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

je cherche a comprendre le fonctionnement du Lisp (je vais peut être DCD donc avant que ça arrive merci de votre patience)

 

1 je tape SF (rien ne ce passe message d’erreurs)

2 je renomme le block SF par Pline_Block là j'ai le block qui apparait, celui que tu ma envoyé.

le lisp : SF___v10___GC appelle le lisp GetNam

le Lisp GetName appelle getName DCL

de cette façon ça marche, je ne peut pas utilisé mon block sf mais bon.j'ai donc en gardant le nom du block "sf" renommé dans le Lips GetNan "Pline Block" sf" à ça ne fonctionne pas.

bon ou mauvais résonnement?merci

(defun getname	(titre / lst what_next dcl_id nom)
 (if (not (vlax-ldata-get "Pline_block" "Name"))

(vlax-ldata-put "Pline_block" "Name" '("SdB" "Cuisine" "Entrée" "Séjour" "WC" "Salon" "Couloir" "Bureau" "Garage" "Dressing" "Cave" "Escalier" "Buanderie" "Douche" "Terrasse"))

 )
 (setq lst (vlax-ldata-get "Pline_block" "Name"))
 (setq dcl_id (load_dialog "GetName.dcl"))
 (setq what_next 2)
 (while (>= what_next 2)
(if	(not (new_dialog "getname" dcl_id))
 	(exit)

 

;;; GetName 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 "[b]Pline_block[/b]" "Name"))

(vlax-ldata-put "Pline_block" "Name" '("SdB" "Cuisine" "Entrée" "Séjour" "WC" "Salon" "Couloir" "Bureau" "Garage" "Dressing" "Cave" "Escalier" "Buanderie" "Douche" "Terrasse"))

 )
 (setq lst (vlax-ldata-get "Pline_block" "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 \"Pline_block\" \"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

Si tu veux juste changer le nom du bloc, il n'y a qu'un endroit où le faire : dans le LISP qui définit la commande à l'endroit où on définit la variable 'bloc'.

(if (or (tblsearch "BLOCK" (setq bloc "sf")) (findfile (setq bloc "sf.dwg")))

Partout ailleurs, "Pline_block" sert de clé pour le dictionnaire qui mémorise le contenu de la liste déroulante dans la boite de dialogue getname (avec les fonctions vlax-data-*). Il faut bien entendu que cette clé soit la même dans le le LISP qui définit ma commande et dans getname.

 

Ne modifie pas un code si tu ne comprends pas ce que tu fais, n'ajoute pas de balises BBcode dans les codes, et fait très attention à l'orthographe (quand on voit comment tu écris, ça fait un peu peur).

 

(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 "Pline_block" "ech"))
                (vlax-ldata-put "Pline_block" "ech" 3)
              )
              (if (not
                    (setq ech (getreal (strcat "\nEntrez le facteur d'échelle <"
                                               (rtos (vlax-ldata-get "Pline_block" "ech"))
                                               ">: "
                                       )
                              )
                    )
                  )
                (setq ech (vlax-ldata-get "Pline_block" "ech"))
                (vlax-ldata-put "Pline_block" "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 - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Merci gille pour cette réponse.

je vais essayer le code .

 

Quant à l'orthographe :pour tous dire je travaillai dans Bâtiment avant un accident grave qui m'a handicapé m'a rendu dessinateur grasse à une formation diplômante.Mais reste que je suis illettré niveau 4 car il y a des niveaux .des stages et des cours privés que j'ai pris ça à amélioré l'orthographe mais ce n'est pas ça.Quand on est con, on est con le temps .....

 

 

 

 

 

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

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é