Aller au contenu

Récupérer type de ligne


seb97320

Messages recommandés

Est-ce que ça veut dire que tu traces à chaque fois sur un dessin existant que tu modifies ?

Car dans ce cas effectivement moins rentable de partir d'un gabarit

 

Ne t'arrives-t-il pas de faire un dessin complet de A à Z ?

Ne connaissant pas ta méthode de travail ce n'est pas évident de donner des conseils

 

Bonjour,

 

Je travail en BET VRD.

la plupart du temps, j'importe des plan de masse sur un nouveau fichier donc sur mon gabarit.

mais il m'arrive de travailler sur des fichiers existants sur lequel on dessine dessus.

voilà pour la méthode.

 

Donc je vais mettre ces types de lignes dans mon fichier gabarit comme à préciser lili2006.

 

je vais également essayer le lisp de Patrick.

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Pour le lisp, la commande GST fonctionne bien par contre la suivante m'indique une erreur " Limite supérieure de SAFEARRAYBOUND est plus petite que la limite inférieure".

De quoi s'agit-il ?

 

Sinon j'ai mis mes types de lignes sur mon fichier gabarit....

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

De quoi s'agit-il ?

Apparement d'un bug.

Si tu pouvais me donner un exemple avec les types de lignes que tu importes pour que je regarde.

 

Cela me surprend quand même, car chez moi, tout fonctionne.

Surement une particularité à comprendre.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Salut Patrick,

 

Testé sur un MAP 2012 (Vista 32 bits) MAIS sans lignes "particulières", c'est à dire juste les 3 de base, surement une raison,...=>

 

 

 

Commande: GST

 

Utilisation: (acad_strlsort )

; erreur: type d'argument incorrect: stringp nil

 

En sélectionnant un fichier avec quelques types de lignes "acad", voici le résultat :

 

 

 

Commande: gst

; erreur: type d'argument incorrect: stringp nil

 

Commande:

 

De plus, si c'est un format ".dwg", il ouvre le dessin, hors ce n'est pas ce qui est souhaité je suppose,...Ou alors, j'ai pas compris !:(

 

Quelqu'un aurait-il un fichier représentatif que l'on puisse faire les mêmes tests SVP ?

 

Merci d'avance,

Civil 3D 2024 - COVADIS_18.2

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

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Pour le lisp, la commande GST fonctionne bien par contre la suivante m'indique une erreur " Limite supérieure de SAFEARRAYBOUND est plus petite que la limite inférieure".

Correction d'un bug qui faisait un import sur rien, car comme les styles de lignes sont déjà dans le dessin, elles ne sont plus importées.

 

Utilisation: (acad_strlsort <liste de chaînes>)

; erreur: type d'argument incorrect: stringp nil

Même type d'erreur que celle du dessus car les trois type de lignes de bases ne sont pas importées car déjà dans le dessin.

C'est DUBLOC, DUCALQUE et CONTINUOUS.

 

Commande: gst

; erreur: type d'argument incorrect: stringp nil

J'ai pas reussi à reproduire l'erreur. Peut-être avec la nouvelle version

 

(defun Ouvrir_dessin_dbx(dwg /	dbx doc lan rel
			DLLRegister ProgID->ClassID DBX-Register Get-ObjectDBX)

 ; Calls REGSVR32 to Register a DLL silently
 (defun DLLRegister (dll) (startapp "regsvr32.exe" (strcat "/s \"" dll "\"")))

 ; Returns the ProgID for a given ClassID if found in registry
 (defun ProgID->ClassID (ProgID) (vl-registry-read (strcat "HKEY_CLASSES_ROOT\\" progid "\\CLSID")))

 ; Try to Register ObjectDBX if not done so already
 ; Returns the Class Name if already registered / sucessfully registered
 ; Else returns nil if failure
 (defun DBX-Register (classname filename / server acver)
   (cond
     ((not (and classname filename))
(DBX-Register
  (strcat "ObjectDBX.AxDbDocument." (itoa (setq acver (atoi (getvar 'ACadVer)))))
  (strcat "AxDb" (itoa acver) ".dll")
)
     )
     ((ProgID->ClassID classname) classname)
     ((setq server (findfile filename))
(cond
  ((and (DLLRegister server) (ProgID->ClassID classname)) classname)
  (t nil)
)
     )
     (t (DBX-Register "ObjectDBX.AxDbDocument" "AxDb.dll"))
   )
 )

 ; Try to reference ObjectDBX - returns the ActiveX object if sucessful
 ; Else returns nil if failure
 (defun Get-ObjectDBX (/ classname)
   (if (setq classname (DBX-Register nil nil))
     (vla-getinterfaceobject (vlax-get-acad-object) classname)
   )
 )

 (and (setq dwg (findfile dwg))
   (progn
     (vlax-for doc (vla-get-documents (vlax-get-acad-object))
(and (eq (strcase (vla-get-fullname doc)) (strcase dwg))
  (setq dbx doc lan T)
)
     )
     (and (not dbx)
(setq dbx (Get-ObjectDBX))
(vla-open dbx dwg)
     )
   )
 )
 (list dbx lan)
)

(defun c:gst(/ bda dbx doc lin lst rec res)

 (defun bda(titre dwg lst / dcl fil n pos res tmp txt)
   (setq tmp (vl-filename-mktemp "ret" nil ".dcl")
  fil (open tmp "w")
   )
   (foreach txt (list	"gst : dialog {"
		"key = \"titre\";"
		"fixed_width = true;"
		"alignment = centered;"
		"is_cancel = true;"
		"width = 60;"
		(strcat ": list_box {label = \"Styles de lignes depuis " (vl-filename-base dwg) (vl-filename-extension dwg) "\";")
		"  key = \"lst\";"
		"  height = 20;"
		"  multiple_select=true;}"
		"spacer;"
		"ok_cancel;"
		"}"
	 )
     (write-line txt fil)
   )
   (close fil)
   (setq dcl (load_dialog tmp))
   (new_dialog "gst" dcl "")
   (start_list "lst")
     (mapcar 'add_list lst)
   (end_list)
   (set_tile "titre" titre)
   (action_tile "lst"    "(setq pos $value)")
   (action_tile "accept" "(done_dialog 1)")
   (action_tile "cancel" "(done_dialog 0)")
   (and (eq (start_dialog) 1)
     (progn
(while (not (eq pos ""))
  (setq n   (read pos)
	res (cons (nth n lst) res)
	pos (substr pos (+ 2 (strlen (itoa n))) (strlen pos))
  )
)
     )
   )
   (unload_dialog dcl)
   (vl-file-delete tmp)
   (reverse res)
 )

 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (if (setq rec (getenv "Patrick_35_Style_Ligne_Fichier"))
   (or (findfile rec) (setq rec (strcat (vl-filename-directory rec) "/")))
   (setq rec (strcat (vla-get-templatedwgpath (vla-get-files (vla-get-preferences (vlax-get-acad-object)))) "/"))
 )
 (and (setq rec (getfiled "Choix d'un Gabarit"	rec "dwt;dwg;dxf" 8))
      (car (setq dbx (Ouvrir_dessin_dbx rec)))
   (progn
     (vlax-for ent (vla-get-linetypes (car dbx))
(or (wcmatch (strcase (setq lin (vla-get-name ent))) "*|*,CONTINU*,BYLAYER,BYBLOCK")
  (setq lst (cons lin lst))
)
     )
     (if lst
(and (setq lst (bda "GST v1.00" rec (acad_strlsort lst)))
     (setq n 0)
  (progn
    (while (setq ent (nth n lst))
      (setenv (strcat "Patrick_35_Style_Ligne_" (itoa n)) ent)
      (setq n (1+ n))
    )
    (setenv "Patrick_35_Style_Ligne_Total" (itoa n))
    (setenv "Patrick_35_Style_Ligne_Fichier" rec)
    (princ "\nStyles de lignes mémorisés.")
  )
)
(alert "Pas de types de lignes à charger.")
     )
     (or (cadr dbx) (vlax-release-object (car dbx)))
   )
 )
 (princ)
)

(defun c:cst(/ dbx doc ent fic lst n rec tab)
 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (or (getenv "Patrick_35_Style_Ligne_Fichier") (c:gst))
 (and  (setq rec (getenv "Patrick_35_Style_Ligne_Fichier"))
   (if (setq fic (findfile rec))
     (and (car (setq dbx (Ouvrir_dessin_dbx rec)))
(progn
  (setq n 0)
  (while (< n (atoi (getenv "Patrick_35_Style_Ligne_Total")))
    (setq lst (cons (getenv (strcat "Patrick_35_Style_Ligne_" (itoa n))) lst)
	  n (1+ n)
    )
  )
  (vlax-for ent (vla-get-linetypes (car dbx))
    (and (member (strcase (setq lin (vla-get-name ent))) lst)
	 (not (tblsearch "ltype" lin))
      (setq tab (cons ent tab))
    )
  )
  (and tab (vla-copyobjects (car dbx)
			    (vlax-safearray-fill 
			      (vlax-make-safearray vlax-vbObject (cons 0 (1- (length tab))))
			      tab
			    )
			    (vla-get-linetypes doc)
	   )
  )
  (or (cadr dbx) (vlax-release-object (car dbx)))
  (princ (strcat "\nImportation de " (itoa (length tab)) " styles de lignes."))
)
     )
     (alert (strcat "Le fichier " rec " est introuvable.\nVeuiller lancer GST pour définir un nouveau Gabarit."))
   )
 )
 (princ)
)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

  • 4 ans après...

Bonjour à tous, allez c'est le retour des congés et j'aurais besoin d'un service.

Je cherche à récupérer les types de ligne du fichier (lien : https://drive.google.com/open?id=0B_k1ENht-FzWb3hzUTBvM1ppWDQ)

 

Une âme charitable pourrait elle me faire la manipulation pour me la mettre en .lin ?

 

Merci d'avance

Nicolas

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

J'ai utilisé le Lisp LINOUT.VLS trouvé sur www.cadstudio.cz, Voici le contenu du fichier LIN :

; Linetypes exported by LinOut.lsp from C:\Users\***\Downloads\Dessin2.lin
;
; LINOUT by CAD Studio - www.cadstudio.cz
;
*CACHE2,Caché (x.5) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
A,3.175,-1.5875
*FOSSÉ 2,- - - - - - - - - - - - - - - - - - - - - - - -
A,6,-6,["è",WINDINGS,s=4,r=9,x=-2,y=-1.7],-6
*400,400 ----400----400----400----400----400----400--
A,12.7,-5.08,["400",Standard,s=2.54,r=9,x=-2.54,y=-1.27],-6.35
*300,300 ----300----300----300----300----300----300--
A,12.7,-5.08,["300",Standard,s=2.54,r=9,x=-2.54,y=-1.27],-6.35
*( DASHED ),Dashed line stroke pattern
A,0.5,-0.25
*800,800 ----800----800----800----800----800----800--
A,12.7,-5.08,["800",Standard,s=2.54,r=9,x=-2.54,y=-1.27],-6.35
*500,500 ----500----500----500----500----500----500--
A,12.7,-5.08,["500",Standard,s=2.54,r=9,x=-2.54,y=-1.27],-6.35
*600,600 ----600----600----600----600----600----600--
A,12.7,-5.08,["600",Standard,s=2.54,r=9,x=-2.54,y=-1.27],-6.35

 

Attention, j'ai souvent eu des différence de rotation des symboles compris dans les types de lignes.

 

Ça se règle avec le "r=" dans les types de lignes.

 

Tu as aussi le DesignCenter [CTRL] + 2.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

comment tu fais avec le vls pour récupérer les infos sur la ligne?

Je n'ai pas compris...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é