Aller au contenu

Importer un fichier plt sous Autocad 2007


Messages recommandés

Posté(e)

Bonjour,

je vient de recevoir quelque fichier plt provenant d'une entreprise externe. je souhaiterais pour les importer sous autocad 2007 (en dxf ou dwg peut importe), comment faire...

j'ai bien chercher des logiciel "HPGL2" mais je n'en ai pas trouver des gratuit, en fait si un mais je n'arrive pas a l'utiliser, même après avoir installer la librairie python, voici le lien :

http://pythonfacile.free.fr/python/hpgl2dxf.html

si quelqu'un peut m'aider...

Merci d'avance

Le REPTILIEN

Posté(e)

Salut,

 

Soit l'entreprise en question ne veut pas que tu interviennes sur le fichier, et c'est pour ça qu'elle envoie des fichiers .plt ; soit ça ne lui pose pas de problème, dans ce cas, le plus simple est de lui demander les .dwg.

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

Posté(e)

Merci gile pour cet remarque, mais le soucis c'est que c'est fichier ont été transmit par des archi, et que eux non plus n'ont pas les dwg donc nous tournons en rond.

mais je crois que le lien doit fonctionner il suffit "simplement" de savoir utiliser ce script.

Le REPTILIEN

Posté(e)

Salut x_all, je vient de tester l'outil intégrer dans le menu express et il me sort un message d'erreur "is not the proper HPGL format" donc pas d'issu de ce cotes...

 

Merci beaucoup qd même...

je reste a l'écoute de toute suggestion..

Le REPTILIEN

Posté(e)
c'est que c'est fichier ont été transmit par des archi, et que eux non plus n'ont pas les dwg

 

il se foutent pas un peu de toi tes archi?

 

tous les logiciel d'archi exportent du DWG ou du DXF... avec plus ou moins de bonheur, mais il le font... si il te passe les plt, c'est qu'il te prend pour un tireur de plan...

 

si il tu est mandater pour travailler sur ces fichiers exige du DWG...

qu'il regarde son logiciel (au fait sur quoi il bosse?) ya des options d'exportation...

 

si tu récupaire un plt, tu va te retouver avec

-les texte explosé

-pas de calque

-cotes explosé

-des épaisseurs de trait parasité

-une echelle foction de celle d'impréssion

 

bref, c du bricolage et ça fait perdre du temps...

Posté(e)

excuse x_all je me suis mal exprimer,

qd je disait qu'il n'ont pas les fichier je parleur les l'autre entreprise, pas des archi, ce n'est pas moi qui suis en relation direct avec les archi et je sais très bien que les archi nous prenne pour des C _ _ _...<acronym class=dict title=

 

Le REPTILIEN

Posté(e)

Deux routines que j'avais récupéré sous le net (elles ne sont pas récentes).

 

Tu peux toujours les essayées, au cas où elles fonctionneraient pour tes fichiers .... (sans garanties)

 

;HPGIN.LSP  Procedure to convert HPGL to AutoCAD commands

(defun C:HPGIN (/ hpgitem hpgistr hpgcha hpgchi hpgfile hpgpen hpgprev hpgx0 hpgx0s hpgY0 hpgY0s hpgx1 hpgx1s hpgY1 hpgY1s hpgscale 
                 hpgxoffs hpgYoffs hpgxstr hpgystr hpgtest hpgcomma hpgp0s hpgp1s oldecho oldosmd
              ) 
(setq oldecho (getvar "CMDECHO"))   ; Save command echo status
(setvar "CMDECHO" 0)                ; Turn off command echo
(setq oldosmd (getvar "osmode"))
(setvar "osmode" 0)
;Get the HPGL file name from the user 
(setq hpgname (getstring T "What is the HPGL file name?  "))
(princ " HPGL file -> ") 
(princ hpgname) 
;(setq hpgname (getfiled "Sélectionner un fichier HPGL en format ASCII" "/dao/" "plt" 12))
(setq hpgfile (open hpgname "r"))   ; Check for file error 
(if (= hpgfile nil) 
 (princ " ... ne peut ouvrir le fichier! \n") ; Quit if open fails
 ; else
 (progn
  (princ " ... fichier ouvert! \n")         ; Initialize/define variables
  (setq hpgitem 0)                  ; Clear item status
  (setq hpgistr "")                 ; Clear item string
  (setq hpgcha "")                  ; Clear first char
  (setq hpgchi 0)                   ; Read Character (integer)
  (setq hpgpen 0)                   ; Set Pen Up (Pen Down = 1)
  (setq hpgprev 0)                  ; Previous Pen Status
  (setq hpgx0 0.0 
        hpgy0 0.0)                  ; Default x0,Y0 (line start)
  (setq hpgx0s "" hpgy0s "")        ; Default x0,Y0 strings
  (setq hpgx1 0.0 
        hpgy1 0.0)                  ; Default x1,Y1 (line end)
  (setq hpgx1s "" hpgy1s "")        ; Default x1,Y1 strings
  (setq hpgscale 0.001)             ; scale factor
  (setq hpgxoffs 0.0 
        hpgYoffs 0.0)               ; x,y offsets
  ;  Read Each char in the file 
  (while (setq hpgchi (read-char hpgfile))
   (progn                           ;  Convert integer read to ascii char 
    (setq hpgcha (chr hpgchi))      ;  check to see if we are between HPGL commands 
    (if (or (< hpgchi 32) (= hpgcha ";")) 
     (progn
      (setq hpgitem 1)              ;  We are between commands now 
     )                              ;  else  We are part of an Item and not between commands 
     (progn                         ;  Check to see if we just finished a reading a command 
      (if (= hpgitem 1) 
       (progn                       ;  Yes, we have a command so let's do it!
        ; Parse Commands Section
                                    ;  Force the command item into UPPER CASE 
        (setq hpgistr (strcase hpgistr)) ;  Use this print command if you want to see the HPGL Item for debug 
        ; (princ hpgistr)
        ; (princ "\n")
        ;  Check for HPGL Select Pen 
        (if (= (substr hpgistr 1 2) "SP") 
         (progn                     ;  Make a layer for each pen with color=pen color 
          (if (> (strlen hpgistr) 2) 
           (progn
;             (setvar "CMDECHO" 1)
            (command "_.Layer" "_make" (strcat "pen" (substr hpgistr 3 1)) "_color" (substr hpgistr 3 1) "" "")
;             (setvar "CMDECHO" 0)
           )
          )
         )
        )                           ;  end Select Pen Check 
        ;  Check for HPGL Pen Commands, first save previous pen status 
        (setq hpgprev hpgpen)       ;  Check for HPGL Pen Up 
        (if (= (substr hpgistr 1 2) "PU") 
         (progn
          (setq hpgpen 0)           ;  set pen up status = 0 
         )
        )                           ;  end of Pen Up 
        ;  Check for HPGL Pen Down 
        (if (= (substr hpgistr 1 2) "PD") 
         (progn
          (setq hpgpen 1)           ;  set pen down status = 1 
         )
        )                           ;  end of Pen Down 
        ;  Check for coordinate in command by looking for a comma(,) 
        (setq hpgtest 0)            ;  initial incremental test position 
        (setq hpgcomma 0)           ;  initial comma position            
        (setq hpgxstr "" hpgystr "") ;  initialize coordinates            
        ;  Do for each char at test position in item string 
        (while (< hpgtest (strlen hpgistr)) 
         (progn
          (setq hpgtest (+ hpgtest 1)) ;  next test position    
          (if (= (substr hpgistr hpgtest 1) ",") ;  If we find a comma .. 
           (setq hpgcomma hpgtest)  ;  record the position   
          )                         ;  end if comma found 
          (if (= 0 hpgcomma)        ;  if no comma yet ...   
           (progn                   ;  x coordinate          
            (if (> hpgtest 2)       ;  Skip first 2 letters  
             (progn                 ;  Record x coordinate   
              (setq hpgxstr (strcat hpgxstr (substr hpgistr hpgtest 1)))
             )
            )                       ;  end if (hpgtest > 2)   
           )                        ; else
           (progn                   ;  if comma ...                       
            (if (< hpgtest (strlen hpgistr)) ;  Y coordinate                       
             (progn                 ;  Skip comma by adding 1 to position 
              (setq hpgystr (strcat hpgystr (substr hpgistr (+ 1 hpgtest) 1)))
             )
            )                       ;  end if (hpgtest < length of item) 
           )
          )                         ;  end if hpgcomma 
         )
        )                           ;  end of coordinate check while 
        ;  Check to see if the coordinates from the above comma test are good 
        (if (> hpgcomma 2) 
         (progn                     ;  we have a good coordinate!                           
          ;  Multiply each coordinate by hpgscale and add offset  
          (if (= 0 hpgpen) 
           (progn                   ;  The Pen is UP,  use the ending coordinates 
            (setq hpgx1 (+ hpgxoffs (* hpgscale (atof hpgxstr))))
            (setq hpgY1 (+ hpgYoffs (* hpgscale (atof hpgystr))))
           )                        ; else  The Pen is DOWN
           (progn                   ;  shift old ending coordinates to start 
            (setq hpgx0 hpgx1)
            (setq hpgY0 hpgY1)      ;  use ending coordinates                
            (setq hpgx1 (+ hpgxoffs (* hpgscale (atof hpgxstr))))
            (setq hpgY1 (+ hpgYoffs (* hpgscale (atof hpgystr)))) ;  If the Pen was previously DOWN then ...  
            (if (= hpgprev 1) 
             (progn                 ;  Do the AutoCAD LINE command!                        
              ;  Convert coordinate values to coordinate strings  
              (setq hpgx0s (rtos hpgx0 1 8))
              (setq hpgY0s (rtos hpgY0 1 8))
              (setq hpgp0s (strcat (strcat hpgx0s ",") hpgY0s))
              (setq hpgx1s (rtos hpgx1 1 8))
              (setq hpgY1s (rtos hpgY1 1 8))
              (setq hpgp1s (strcat (strcat hpgx1s ",") hpgY1s))
;               (setvar "CMDECHO" 1)
              (command "_.Line" hpgp0s hpgp1s "")
;               (setvar "CMDECHO" 0)
             )
            )                       ;  end if hpgprev =1 Pen was DOWN 
           )
          )                         ;  end if hpgpen Up or Down 
         )
        )                           ;  end if comma and good coordinate 
        ;  End of Parse Commands Section 
        ;  Go on with the rest of the program 
        ;  Clear Item status and Item string 
        (setq hpgitem 0)
        (setq hpgistr "")
       )
      )                             ;  end of command do it 
      ;  Here, we have either done and cleared a command or    
      ;  we are still building a command from file read chars. 
      (setq hpgistr (strcat hpgistr hpgcha))
     )                              ;  end of inside an HPGL item 
    )                               ;  end if hpgchi = control char 
   )
  )                                 ;  end while file read loop 
  ;  Clean up 
  (close hpgfile)
 )                                  ;  end of else (file opened) 
)                                   ;  end of if hpgfile 
;  Restore environment changes 
(setvar "osmode" oldosmd)
(setvar "CMDECHO" oldecho)
(princ)
) 
;  end of C:hpgin() program 

 

 

;Hpglin.LSP: Imports AutoCAD HPGL plot files into a drawing. Not tried with
;	     other HPGL files. Can be used to import 3D plots for 2D conversion.
;__________________________________________________________________________

(defun sclcd (val / )
(rtos (/ (atof val) 1016.0) 2 4)
)

(defun coord (/ tstr tstra tstrb)
(Setq tstr "")
(setq char-b (chr (read-char plfile)))
(while (/= char-b ";")
	(if (/= char-b ",")
		(setq tstr (strcat tstr char-b))
	)
	(setq char-b (chr (read-char plfile)))
	(if (= char-b ",")
		(progn
			(setq tstra (sclcd tstr))
			(setq tstr "")
		);progn
	);if
);while
(setq tstrb (sclcd tstr))
(Setq tstr (strcat tstra "," tstrb))
tstr
)

(defun getpen (/ pen1)
(setq lastpn pen)
(while
	(and
		(/= col "end")
		(/= pen1 "SP")
		(/= pen1 "PU")
		(/= pen1 "PD")
		(/= pen1 "PA")
	)
	(setq char-b (chr (read-char plfile)))
	(setq pen1 (strcat char-a char-b))
	(Setq char-a char-b)
)
pen1
)

(defun c:hpglin (/ pen char-a char-b col fname plfile blp lastpt lastpn)
(Setvar "cmdecho" 0)
(setq blp (getvar "blipmode"))
(setvar "blipmode" 0)
(setq fname (getstring "\nEnter name of HPGL plot file: "))
;	(setq fname (getfiled "\nSélectionner un fichier de tracé HPGL" "c:/mes documents/" "plt" 8))
(princ "\nLecture du fichier - Patientez....")
(setvar "OSMODE" (+ 16384 (rem (getvar "OSMODE") 16384)))
(command "_.zoom" "_ce" "0,0" "")
;(command "_.zoom" "_window" '(-4.0 -3.5 0.0) '(2.0 3.5 0.0))
(setq first '(0.0 0.0 0.0))
(setq plfile (open fname "r"))
(setq char-a (chr (read-char plfile)))
(while (/= pen "SP")
	(setq char-b (chr (read-char plfile)))
	(setq pen (strcat char-a char-b))
	(Setq char-a char-b)
)
(while (/= col "end")
	(if (= pen "SP")
		(progn
			(setq char-b (chr(read-char plfile)))
			(if (= (type (read char-b)) 'INT)
				(setq col char-b)
				(setq col "end")
			)
			(setq pen (getpen))
		)
	)
	(if (= pen "PU")
		(progn
			(setq llst (append llst (list "")))
			(setq pwidth "0")
			(cond
				((= col "1")(setq pwidth ".001"))
				((= col "2")(setq pwidth ".001"))
				((= col "3")(setq pwidth ".010"))
				((= col "4")(setq pwidth ".010"))
				((= col "5")(setq pwidth ".013"))
				((= col "6")(setq pwidth ".013"))
				((= col "7")(setq pwidth ".018"))
				((= col "8")(setq pwidth ".018"))
				((= col "9")(setq pwidth ".025"))
				((= col "10")(setq pwidth ".025"))
				((= col "11")(setq pwidth ".035"))
				((= col "12")(setq pwidth ".035"))
			)
			(command "_.color" col "_.pline" first "_width" pwidth "")
			(foreach n llst (command n))
			(setq pen (getpen))
		)
	)
	(if (= pen "PD")
		(progn
			(Setq llst '())
			(if (= lastpn "PU")
				(setq first lastpt)
			)
			(setq pen (getpen))
			(while (= pen "PA")
				(setq llst (append llst (list (setq lastpt (coord)))))
				(Setq pen (getpen))
			)
		)
	)
	(if (= pen "PA")
		(progn
			(setq first (coord))
			(setq pen (getpen))
		)
	)
);while
(close plfile)
(setvar "blipmode" blp)
(princ)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

le pb avec le plt, c'est qu'il y a autant de codification que de pilotes pour traceur HP...

 

donc soit ça passe soit ça passe pas... on sais pas tjs pourquoi... :(

 

la moulinette des express tool marche bien avec le hp450c+... et le pilote d'autocad "plt générique".... va savoir pk ça marche pas avec les autres...

Posté(e)

Merci beaucoup bonuscad,

j'ai copier ton texte dans dans un éditeur de texte et enregistrer avec l'extension *.lsp,

ensuite je les ai charger sous autocad..

mais il me me met erreur de syntaxe

????

Le REPTILIEN

Posté(e)

j'ai copier ton texte dans dans un éditeur de texte et enregistrer avec l'extension *.lsp

 

C'est [surligneur] DEUX[/surligneur] codes bien distincts et non un seul.

Donc 2 fichiers Lisp.

 

Par acquis de conscience j'ai refait un test depuis 2008 depuis une copie du forum, et pas de problème...

 

Pour les tester, j'ai installé un traceur HP (LHPGL générique), fait une impression vers un fichier PLT

 

La restitution à bien fonctionné. (cela faisait longtemps que je ne les avais utilisé).

 

Pour facilité la saisie du nom du fichier, tu peux changer dans le premier

(setq hpgname (getstring T "What is the HPGL file name? "))

(princ " HPGL file -> ")

(princ hpgname)

;(setq hpgname (getfiled "Sélectionner un fichier HPGL en format ASCII" "/dao/" "plt" 12))

 

par

 

;(setq hpgname (getstring T "What is the HPGL file name? "))

;(princ " HPGL file -> ")

;(princ hpgname)

(setq hpgname (getfiled "Sélectionner un fichier HPGL en format ASCII" "/dao/" "plt" 4))

 

 

et dans le second

 

(setq fname (getstring "\nEnter name of HPGL plot file: "))

; (setq fname (getfiled "\nSélectionner un fichier de tracé HPGL" "c:/mes documents/" "plt" 8))

 

par

 

;(setq fname (getstring "\nEnter name of HPGL plot file: "))

(setq fname (getfiled "\nSélectionner un fichier de tracé HPGL" "c:/mes documents/" "plt" 4))

 

 

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

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é