Aller au contenu

xref - copier des lignes


Messages recommandés

Posté(e)

hello,

 

depuis mes 4 mois de boulot sur AutoCAD je dirais que ce soft est plutot pas mal voire mieux que microstation V8...

un seul truc me manque cruellement :

est-il possible de copier des lignes depuis une xref? faire un ligne décaler par rapport à un ligne qui se trouve sur une xref, copier un élément d'un xref (bloc, texte...) bref pourvoir m'appuyer réellement sur mes plans xref ?

 

merci pour vos lumières

 

phil

 

PS : même la mesure d'un rayon est impossible sur xref et c'est particulièrement... je me comprends...

 

[Edité le 2/7/2010 par philsogood]

Projeteur Revit Indépendant - traitement des eaux/CVC

Posté(e)

Salut,

 

Le plugn du mois d'Autodesk Labs en Septembre dernier est une DLL .NET qui redéfinit la commande DECALER (_OFFSET) pour qu'elle fonctionne avec des entités appartenant à une xref (il faut sélectionner 2 fois l'entité avec les versions antérieures à 2009).

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

Posté(e)

Salut

 

Je me suis amusé à faire un lisp vite fait pour décaler un objet appartenant à un xref.

Cela ne retire en rien à la dll donné par (gile), mais cette routine a servit de base pour la suivante qui est de recopier un objet appartenant à un xref

Le calque du nouvel objet va sur le calque courant

 

Pour décaler

(defun c:dcx(/ ent ori)
 (vl-load-com)
 (and	(setq ent (nentsel))
(eq (type (setq ori (car (last ent)))) 'ename)
(setq ent (entget (car ent)))
   (progn
     (entmake (vl-remove-if '(lambda(x)(member (car x) '(-1 5 8 330 410))) ent))
     (setq ent (vlax-ename->vla-object (entlast))
    ori (vlax-ename->vla-object ori)
     )
     (vla-scaleentity ent (vlax-3d-point '(0.0 0.0 0.0)) (vla-get-xscalefactor ori))
     (vla-rotate ent (vlax-3d-point '(0.0 0.0 0.0)) (vla-get-rotation ori))
     (vla-move ent (vlax-3d-point '(0.0 0.0 0.0)) (vla-get-insertionpoint ori))
     (vl-cmdf "_.offset")
     (vl-cmdf pause)
     (vl-cmdf (vlax-vla-object->ename ent))
     (vl-cmdf pause)
     (vl-cmdf "")
     (vla-delete ent)
   )
 )
 (princ)
)

 

Pour copier

(defun c:ccx(/ ent ori)
 (vl-load-com)
 (and	(setq ent (nentsel))
(eq (type (setq ori (car (last ent)))) 'ename)
(setq ent (entget (car ent)))
   (progn
     (entmake (vl-remove-if '(lambda(x)(member (car x) '(-1 5 8 330 410))) ent))
     (setq ent (vlax-ename->vla-object (entlast))
    ori (vlax-ename->vla-object ori)
     )
     (vla-scaleentity ent (vlax-3d-point '(0.0 0.0 0.0)) (vla-get-xscalefactor ori))
     (vla-rotate ent (vlax-3d-point '(0.0 0.0 0.0)) (vla-get-rotation ori))
     (vla-move ent (vlax-3d-point '(0.0 0.0 0.0)) (vla-get-insertionpoint ori))
     (vl-cmdf "_.copy")
     (vl-cmdf (vlax-vla-object->ename ent))
     (vl-cmdf "")
     (vl-cmdf pause)
     (vl-cmdf pause)
     (vla-delete ent)
   )
 )
 (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

Posté(e)

Salut,

 

Une autre version pour copier une entité imbriquée dans un bloc ou une xref.

En cas d'imbrications multiple, c'est l'entité la plus imbriquée qui est copiée.

Ne fonctionne qu'avec des échelles uniforme en X, Y et Z.

 

(defun c:NCP (/ nent)
 (vl-load-com)
 (if (setq nent (nentselp))
   (if	(cdddr nent)
     (if (vl-catch-all-error-p
    (vl-catch-all-apply
      'vla-TransformBy
      (list
	(vlax-ename->vla-object (entmakex (entget (car nent))))
	(vlax-tmatrix (caddr nent))
      )
    )
  )
(princ
  "Erreur: Impossible de mettre à l'échelle de façon non-uniforme"
)
(vl-cmdf "_.move" (entlast) "")
     )
     (vl-cmdf "_.copy" (car nent) "")
   )
 )
 (princ)
)

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

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é