Aller au contenu

Messages recommandés

Posté(e)

Bonjour a tous,

 

C'est avec plaisir que je revient sur ce forum, pour mes dernier jours de travail.

...Ma fin d'activité pro est fixé au 01/01/20223 🤪... 01/01/2022🤭

 

Ceci dit il me reste tout de même quelque points a solutionné avant de nouvelles aventures.

Nous avons mis en place un outil de publications vers notre GED de fichiers issue d'AutoCAD qui fait le calcul a la volé de mise en page.

Cela a été traiter par une entreprise externe et nous avons du mal a en faire modifié le code.

Cela fonctionne très bien SAUF quand un fichier a un cadre de présentations avec des coordonnées négative et nous avons pléthore de fichiers historique dans ce cas

 

Mon souhait et de pouvoir récupéré les coordonnées BG pour savoir si celles si sont en négatif.

Au quel cas je ferais le déplacement de l'ensemble vers le point 0,0.

 

Je joint un fichier exemple 

 

Si quelqu'un a des tuyaux sur cette récupération ou des bride de lisp...

 

Bonne journée a tous

Olivier

Exemple.dwg

Posté(e)

Salut,

 

Bon courage pour tes 18201 années restantes 🤣

 

Ce post pourrait intéresser

https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/get-min-max-coordinates-of-a-set-of-lines/m-p/4675461/highlight/true#M317507

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Posté(e)

Tu as les variables EXTMIN et EXTMAX qui marchent pour chaque présentations

(getvar "extmin")
(-285.681 -191.564 0.0)

(getvar "extmax")
(178.971 147.761 0.0)

 

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Posté(e)

Bonjour @Olivier_CEA_Grenoble

Les angles d'une VIEWPORT ne sont pas mémorisés dans un champ de liste de définition d'entité

Je donne des pistes de recherches :

  1. Tester avec EXTMIN et EXTMAX
  2. Calculer le point bas gauche en soustrayant la moitié de la longueur et la moitié de la hauteur des coordonnées du centre de la VIEWPORT
    respectivement codes 40 pour longueur, 41 pour hauteur et 10 pour le centre

Je ne sais pas si tu veux un truc tout fait ou une piste de recherche, tu dis savoir faire donc j'opte pour la piste de recherche.

Amicalement

Posté(e)
Il y a 1 heure, vincentp010 a dit :

Tu as les variables EXTMIN et EXTMAX qui marchent pour chaque présentations

(getvar "extmin")
(-285.681 -191.564 0.0)

(getvar "extmax")
(178.971 147.761 0.0)

 

Il me semble que ces deux variables ne sont valides que pour ce qui est en espace papier?

Posté(e)
il y a une heure, didier a dit :

Bonjour @Olivier_CEA_Grenoble

Les angles d'une VIEWPORT ne sont pas mémorisés dans un champ de liste de définition d'entité

Je donne des pistes de recherches :

  1. Tester avec EXTMIN et EXTMAX
  2. Calculer le point bas gauche en soustrayant la moitié de la longueur et la moitié de la hauteur des coordonnées du centre de la VIEWPORT
    respectivement codes 40 pour longueur, 41 pour hauteur et 10 pour le centre

Je ne sais pas si tu veux un truc tout fait ou une piste de recherche, tu dis savoir faire donc j'opte pour la piste de recherche.

Amicalement

Didier,

ce n'est pas un problème de fenêtre mais un problème d'emplacement des éléments dessiner dans les présentations.

Je pense partir vers la variables LIMMIN des mise en page en les forçant sur un mode étendue.

Cela positionne la mise en page automatiquement sur le point bas gauche de tous ce qui est dessiner en présentations (Cadre, cartouche, annotations...)

J'en retire la plus petite coordonnées et si elle est négative je fait le déplacement de l'ensemble des éléments.

Le code pour une valeur négative des coordonnées de limmin:

(minusp (min (nth 0 (getvar "limmin"))(nth 1 (getvar "limmin")))))

Olivier

Posté(e)

Hello Oliver

 ?? Au fait as tu bien recu mon message dans TA messagerie Pro ??

Sinon voici une routine "F_Emprise" de Bruno / Bonuscad mais qui "deconne" un peu !

Elle tente de tracer un rectangle dans l 'Onglet OBJET

correspondant a CHAQUE Fenetre FMULT de TOUTES les Presentations / Layouts :

-- A CORRIGER / AMELIORER --

Bye, lecrabe

 

 
;; 
;; Routine: F_Emprise par Bruno - 10/2016
;; 
;; A lancer DANS une Fenetre FMULT des Presentations/Layouts 
;; 
;; Cela cree dans l'Onglet Objet un Rectangle (Polyligne) 
;; + MTexte (Nom de la Presentation) en bas a gauche 
;; montrant l'Emprise de la Fenetre FMULT ... 
;; 
;; ----------------------------------------------- 
;; Cela semble PLUS ou MOINS Bien fonctionner !? 
;; ----------------------------------------------- 
;; 

(defun c:F_Emprise ( / el js n ent dxf_ent pt_v l h lst_pt js_obj)
  (vl-load-com)
  (foreach el (layoutlist)
    (setvar "CTAB" el)
    (setq js
      (ssget "_X"
        (list
          '(0 . "VIEWPORT")
          '(67 . 1)
          (cons 410 el)
          '(-4 . "!=")
          '(69 . 1)
        )
      )
    )
    (repeat (setq n (sslength js))
      (setq
        js_obj nil
        pt_v (cdr (assoc 10 (setq dxf_ent (entget (setq ent (ssname js (setq n (1- n))))))))
        l (cdr (assoc 40 dxf_ent))
        h (cdr (assoc 41 dxf_ent))
        lst_pt
        (list
          (list (- (car pt_v) (* 0.5 l)) (- (cadr pt_v) (* 0.5 h)) 0.0)
          (list (+ (car pt_v) (* 0.5 l)) (- (cadr pt_v) (* 0.5 h)) 0.0)
          (list (+ (car pt_v) (* 0.5 l)) (+ (cadr pt_v) (* 0.5 h)) 0.0)
          (list (- (car pt_v) (* 0.5 l)) (+ (cadr pt_v) (* 0.5 h)) 0.0)
        )
        js_obj (ssadd)
      )
      (entmakex
        (vl-list*
          (cons 0 "LWPOLYLINE")
          (cons 100 "AcDbEntity")
          (cons 67 1)
          (cons 100 "AcDbPolyline")
          (cons 90 (length lst_pt))
          (cons 70 1)
          (mapcar '(lambda (p) (cons 10 p)) lst_pt)
        )
      )
      (ssadd (entlast) js_obj)
      (entmake
        (list
          '(0 . "MTEXT")
          '(100 . "AcDbEntity")
          '(67 . 1)
          (cons 410 el)
          (cons 8 (getvar "CLAYER"))
          '(100 . "AcDbMText")
          (cons 10 (car lst_pt))
          '(40 . 3.5)
          '(41 . 0.0)
          '(46 . 0.0)
          '(71 . 7)
          '(72 . 5)
          (cons 1 (strcat "{\\fArial|b0|i0|c0|p34;" el))
          '(7 . "Standard")
          '(210 0.0 0.0 1.0)
          '(11 1.0 0.0 0.0)
          '(50 . 0.0)
          '(73 . 1)
          '(44 . 1.0)
        )
      )
      (ssadd (entlast) js_obj)
      (command "_.CHSPACE" js_obj "" )
    )
  )
  (prin1)
)

 

Autodesk Expert Elite Team

Posté(e)

Suite un autre développement, j'avais décelé un "couak" dans la ligne:

(command "_.CHSPACE" js_obj "" )

il faudrait essayer de tester en changeant avec ceci:

(command "_.CHSPACE" js_obj "" (if (> (cdr (assoc 69 dxf_ent)) 2) ""))
Citation

Bruno / Bonuscad mais qui "deconne" un peu !

J'ai failli croire que c'était moi! 😅

  • Upvote 1

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

Posté(e)

@didier 

Effectivement je cherche l'encombrement minimum de tous éléments dessiner dans l'espace papier pour chaque présentations pour savoir si l'une des coordonnées est négatives.

Si c'est le cas je ferais le déplacement de tout les objet présent dans la présentation vers le point 0,0 afin que les script de publication mis en place ne plante plus.

Olivier

Posté(e)

Bon, 

Je reviens sur ce que j'ai dits la variable extmin est directement exploitable dans ma problématique !!!

Milles excuses a @vincentp010 et a @didier

J'ai donc fait ceci:

(if (/=  (minusp (min (nth 0 (getvar "EXTMIN"))(nth 1 (getvar "EXTMIN")))) nil)
	(progn
		(command "_move" "tout" "" (strcat (rtos(nth 0 (getvar "EXTMIN"))) "," (rtos(nth 1 (getvar "EXTMIN")))) "0,0")
	)
)

Merci a tous et bonne continuation Pro

Posté(e)

Bonjour, pourquoi ne pas faire l'hypothèse, que les mises en page de tous vos fichiers sont en coordonnées négatives ? Si vous avez un cartouche en bloc avec un 0,0 en bas à gauche, déplacer l'ensemble des éléments du 0,0 du cartouche vers le 0,0 général. 

Dans le cas de coordonnées négatives le déplacement s'effectue réellement, sinon les objets restent à leur place.

 

En espérant vous aider, 

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é