CADxp: Enregistrer une partie du dessin par capture - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Enregistrer une partie du dessin par capture

#1 L'utilisateur est hors-ligne   gepetto 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 160
  • Inscrit(e) : 10-mars 06

Posté 08 novembre 2018 - 20:43

Hello a tous.

Je me suis lancer dans un projet un peu fou qui est la réalisation d'une table de découpe plasma en CNC.
je suis satisfait de ma réalisations.

Je vous ferai parvenir une vidéo.

Ma question est en relation indirect aà ma réalisations.

Pour pouvoir générer mon G-Code (fichier de paramètre de la CNC) et optimiser l'utilisation de la tôle a découper j'utilise un programme de "nesting" optimisations à plat.

Le truc est qu'il faut pouvoir y donner un fichier par pièces a découper.

Actuellement j'utilise la commande enregistrer sous, avec l'option sélectionner par capture, et je renomme le ficher manuellement.

Ca marche bien, mais je pense que l'on peu faire mieux et plus rapide.

Il serai extra de pouvoir utiliser le texte que je met au dessus de la pièces comme nom de fichier.
Il ne s'agit pas de bloc.
La pièces à découper est constituer de 2 calques
Il me faut enregistrer le fichier de sortie en dxf 2013

Je vous remercie de vous propositions

Amicalement Gepetto

PS je voulais joindre un fichier mais j'ai une erreur du coups

https://we.tl/t-8sSjQbEHZ9
0

#2 L'utilisateur est hors-ligne   x_all 

  • ceinture rouge et blanche 6em dan
  • Groupe : Membres
  • Messages : 3334
  • Inscrit(e) : 27-juin 06
  • Location04190

Posté 09 novembre 2018 - 07:25

essaye WBLOC
"La possibilité d'expliquer m'a toujours paru comme la seule excuse à l’existence de la parole"
JL Godard

quelques trucs sur autocad
0

#3 L'utilisateur est hors-ligne   gepetto 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 160
  • Inscrit(e) : 10-mars 06

Posté 09 novembre 2018 - 19:25

Hello,
je te remercie pour ta proposition, mais c’est plus lents que enregistrer sous.
Qui n’est déjà pas très rapide. Et super rébarbatif..,

Y aurait-il t’il une autre solution.
Je vous remercie.
0

#4 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1326
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 10 novembre 2018 - 10:43

Bonjour,

la commande "enregistrer sous" avec l'option "sélectionner" et le type de fichier au format dxf, comme tu le fais, mais dans un lisp qui te demandes au préalable de cliquer sur un texte qui te donnera le nom du fichier et c'est le lisp qui choisit les options de la commande saveas

Un truc comme ça ?

Amicalement
Vincent
C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
0

#5 L'utilisateur est hors-ligne   gepetto 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 160
  • Inscrit(e) : 10-mars 06

Posté 10 novembre 2018 - 15:07

Hello,

Oui ça me paraît être la bonne idée.

Si y faut que le texte soit sur multi ligne c’est top. Sinon sur une ligne çà peut aussi le faire.

Je te remercie de ton aide

Amicalement Didier
0

#6 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1326
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 12 novembre 2018 - 23:51

Bonjour,

la variable qui gère le format d'enregistrement s'appelle DefaultFormatForSave.

L'idée c'est de faire un lisp qui récupère le format courant en faisant
(setq oldSaveFormat (getenv "DefaultFormatForSave"))

puis on définit qu'on veut sauvegarder en dxf 2013, ce qui correspond au code 61
(setenv "DefaultFormatForSave" "61")

Puis on enregistre en faisant le (command "_saveas" ...) après avoir pioché le nom de fichier dans le texte et après avoir vérifié que le fichier n'existe pas déjà.

Puis on remet la variable d'environnement à sa valeur initiale
(setenv "DefautFormatForSave" oldSaveFormat)

Faut encore trouver le nom de la variable qui gère la possibilité d'enregistrer une partie du dessin

Amicalement
Vincent
C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
0

#7 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1326
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 13 novembre 2018 - 11:03

j'ai oublié de préciser qu'il faut absolument respecter la casse dans "DefaultFormatForSave", sinon le getenv ne trouve rien !

Amicalement
Vincent
C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
0

#8 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1326
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 13 novembre 2018 - 12:22

(defun MsgBox (Titre Bouttons Message / Reponse WshShell)
; Valeur de Bouttons
; 0 = vbOKOnly Affiche le bouton OK uniquement.
; 1 = vbOKCancel Affiche les boutons OK et Annuler.
; 2 = vbAbortRetryIgnore Affiche le bouton Abandonner, Réessayer et Ignorer.
; 3 = vbYesNoCancel Affiche les boutons Oui, Non et Annuler.
; 4 = vbYesNo Affiche les boutons Oui et Non.
; 5 = vbRetryCancel Affiche les boutons Réessayer et Annuler.
; 16 = vbCritical Affiche l'icône Message critique.
; 32 = vbQuestion Affiche l'icône Requête d'avertissement.
; 48 = vbExclamation Affiche l'icône Message d'avertissement.
; 64 = vbInformation Affiche l'icône Message d'information.
; 0 = vbDefaultButton1 Le premier bouton est le bouton par défaut.
; 256 = vbDefaultButton2 Le deuxième bouton est le bouton par défaut.
; 512 = vbDefaultButton3 Le troisième bouton est le bouton par défaut.
; 768 = vbDefaultButton4 Le quatrième bouton est le bouton par défaut.
; 0 = vbApplicationModal Boîte de dialogue modale. L'utilisateur doit répondre au message affiché dans la zone de message avant de pouvoir continuer de travailler dans l'application en cours.
; 4096 = vbSystemModal Modal système. Toutes les applications sont interrompues jusqu'à ce que l'utilisateur réponde au message affiché dans la zone de message.

; Valeur renvoyée
; 1 = vbOK OK
; 2 = vbCancel Annuler
; 3 = vbAbort Abandonner
; 4 = vbRetry Réessayer
; 5 = vbIgnore Ignorer
; 6 = vbYes Oui
; 7 = vbNo Non

(setq WshShell (vlax-create-object "WScript.Shell"))
(setq Reponse (vlax-invoke WshShell 'Popup Message 0 Titre (itoa Bouttons)))
(vlax-release-object WshShell)
Reponse
)

(defun c:savedxf (/ txt)
  (vl-load-com)
  (setq txt (car (entsel "\nSélectionner le titre : ")))
  (setq txt (cdr (assoc 1 (entget txt))))
  (setq txt (substr txt 1 (vl-string-position 92 txt)))
  (setq txt (strcat (getvar "DWGPREFIX") txt ".dxf"))

  (if (findfile txt)
    (if (= (msgbox "Fichier existant" (+ 4 48 256) (strcat "Ecraser " txt " ?")) 6)  ;; 4 affiche boutons oui non + 48 icone message d'avertissement + 256 non par défaut
      (command "_SaveAs" "_DXF" "_v" "2013" "_o" (ssget) "" "" txt "_y")  ;; si oui j'écrase, sinon rien
    )
    (command "_SaveAs" "_DXF" "_v" "2013" "_o" (ssget) "" "" txt)  ;; le fichier n'existe pas, je le crée
  )
  (princ)
)


finalement, je n'utilise que les options de la commande saveas, qu'on peut aussi voir sur la ligne de commande en basculant la variable filedia à 0. Ne pas oublier de la remettre à 1 quand on a fini d'explorer les différentes options disponibles en ligne de commande.

Amicalement
Vincent
C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
0

#9 L'utilisateur est hors-ligne   gepetto 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 160
  • Inscrit(e) : 10-mars 06

Posté Hier, 09:15

Hello,

Merci beaucoup.
Désolé de ma réponses tardive, et Encore Merci de m'avoir envoyer le lisp par mail.
Ca fonctionne du tonnerre.

C'est classe que le nouveau fichier crée s'enregistre a la même place que le fichier sources, ce
qui évite de devoir a chaque fois choisir l'emplacement du nouveau fichier.

J'ai 1 questions.

Si je comprend bien, le nom du fichier prend en compte la 1er ligne du texte.
C'est bien juste?

Je te remercie encore
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)