Aller au contenu

import multilignes


philsogood

Messages recommandés

hello

sujet déjà evoqué sur le forum mais je souahiterai savoir si quelqu'un sait comment rémédier à ce problème :

j'ai des multilignes sur un fichier avec un nom défini

ces ML sont incorrectes (elles devraient avoir un type de lignes AXES en leur milieu)

comment redefinir ces ML sans créer un nouveau style et re tracer toutes les ML existantes?

ci dessous le psot ou une discussion avait commencée (sans que le solution ne soit apparue)

http://cadxp.com/topic/20119-modifier-une-multiligne/

@+

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

salut,

tu ne peux pas modifier un style de multilignes existant dont il existe des occurrences dans le dessin.

il est à noter que ni Microstation ni DraftSight ne le permettent ...

Ma solution, avec PowerClic:

changer les styles de multiligne à modifier par un autre,

il n'y a plus d’occurrence,

on modifie le style,

puis on restaure le style modifié avec PowerClic.

 

c'est pas génial, je reconnais ...

Gégé

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

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

J'ai essayé vite fait un code pour redefinir les MLINE sélectionnées avec le style courant. (en fait elles sont retracées...)

 

Je l'ai pas testé en profondeur, donc méfiance.

Ce qui m'a surpris c'est que je n'ai pas trouvé où est l'option fermée en activeX, donc j'ai traité celle-ci avec les code DXF.

 

Voilà pour le brouillon à essayer.

(defun l-coor2l-pt (lst flag / )
 (if lst
   (cons
     (list
       (car lst)
       (cadr lst)
       (if flag
         (+ (if (vlax-property-available-p ename 'Elevation) (vlax-get ename 'Elevation) 0.0) (caddr lst))
         (if (vlax-property-available-p ename 'Elevation) (vlax-get ename 'Elevation) 0.0)
       )
     )
     (l-coor2l-pt (if flag (cdddr lst) (cddr lst)) flag)
   )
 )
)
(vl-load-com)
(defun c:redef_mline ( / jsml AcDoc Space UCS save_ucs WCS nbr ent_name ename l_pt id_obj)
(setq
 jsml (ssget '((0 . "MLINE")))
)
(cond
 (jsml
   (setq
     AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
     Space
     (if (eq (getvar "CVPORT") 1)
       (vla-get-PaperSpace AcDoc)
       (vla-get-ModelSpace AcDoc)
     )
     UCS (vla-get-UserCoordinateSystems AcDoc)
     save_ucs
     (vla-add UCS
       (vlax-3d-point '(0.0 0.0 0.0))
       (vlax-3d-point (getvar "UCSXDIR"))
       (vlax-3d-point (getvar "UCSYDIR"))
       "CURRENT_UCS"
     )
   )
  (vla-put-Origin save_ucs (vlax-3d-point (getvar "UCSORG")))
  (vla-StartUndoMark AcDoc)
  (setq WCS (vla-add UCS (vlax-3d-Point '(0.0 0.0 0.0)) (vlax-3d-Point '(1.0 0.0 0.0)) (vlax-3d-Point '(0.0 1.0 0.0)) "TEMP_WCS"))
  (vla-put-activeUCS AcDoc WCS)
  (repeat (setq nbr (sslength jsml))
   (setq
    ent_name (ssname jsml (setq nbr (1- nbr)))
    drap (assoc 71 (entget ent_name))
    ename (vlax-ename->vla-object ent_name)
    id_obj (vla-get-ObjectName ename)
   )
   (cond
    ((eq id_obj "AcDbMline")
     (setq l_pt (l-coor2l-pt (vlax-get ename 'Coordinates) T))
     (setq nw_ml (vlax-invoke Space 'AddMline (apply 'append l_pt)))
     (vla-put-Layer nw_ml (vla-get-Layer ename))
     (entmod (subst drap (assoc 71 (entget (entlast))) (entget (entlast))))
     (vla-delete ename)
    )
   )
  )
  (and save_ucs (vla-put-activeUCS AcDoc save_ucs))
  (and WCS (vla-delete WCS) (setq WCS nil))
  (vla-EndUndoMark AcDoc)
 )
)
(prin1)
)

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

Lien vers le commentaire
Partager sur d’autres sites

hello

 

Merci bonuscad pour ce coup de pouce

je viens de tester le lisp et je ne comprends pas tout :

comment le lisp fait-il pour recharger ma polyligne? il va chercher dans le fichier AutoCAD.mln?

l'échelle de mes multiligne est supprimé lors de la manipulation

 

mise à part ce problème d'échelle, je ne vois aucune différence entre avant et après... :/

 

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

je ne vois aucune différence entre avant et après... :/

 

C'est que le style COURANT de multiligne est le même que celle des multiligne que tu essayes de changer...

 

l'échelle de mes multiligne est supprimé lors de la manipulation

 

Effectivement les propriétés que je "pompe" ne concerne que le calque.

Si cela convient, je pense qu'on pourra étendre facilement aux propriétés forcée d'échelle de type de ligne, de couleur, d'épaisseur de ligne, de type de ligne.

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

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é