Aller au contenu

recherche d\'un fonction similaire à clipping


Messages recommandés

Posté(e)

Bonjour tout le monde!

 

Voila j'ai besoin de découper une zone sur un cadastre, mais je n'arrive pas à trouver la fonction similaire à "CLIPPING" qui permet de découper la zone a l'extérieur de la polyligne fermée!

En bref, je voudrais effacer tout ce qui existe en dehors de la polyligne.

 

Merci d'avance :P

Posté(e)

Bonjour,

 

si tu choisis

 

l'option wbloc

 

alors tu as le contenu de la polyligne dans un nouveau fichier

 

Cela revient un peut au même non ?

 

 

Cordialement

Thierry Garré

 

Géorail-Covadis-Autopiste-Autocad-Autocad Map-Infraworks 360- Navisworks -Recap

Posté(e)

Salut Thierry,

 

oui, je connais cette option pour enregistrer sur un autre dessin. mais je voulais retrouver une commande de Covadis qui permettais de le faire directement sur le dessin. mais je crois que je vais me tenir à cette option wbloc. merci pour ton aide thierry!

 

cordialement

Posté(e)

Salut.

Il y a ce lisp avec case de dialogue qui fera peut être ton affaire.

 

//  Cut.dcl
//  By: Jim Arthur
//  2/8/97
//  used with Cut.lsp

cut : dialog {
     label = "Trim In Trim Out";
:row {
  :boxed_column {
     : button {
        key = "cut_outp";
        label = "Trim Out w/ Boarder";
     }
     : button {
        key = "cut_out";
        label = "Trim Out No Boarder";
     }
     : button {
        key = "cut_in";
        label = "Trim Inside Boundry";
     }
   }
 }
 : row {
    : spacer { width = 1; }

    : button {
       label = "Cancel" ;
       is_cancel = true;
       key = "cancel" ;
       width = 8;
       fixed_width = true;
    }
    : spacer { width = 1; }
  }
}

 

et CUT.lsp

 

(defun c:cut ()
;;gratuiciel
;;Enhansed Multi-Trim Commands by Bob Jones With Dialog Box interface
;;added by Jim Arthur
;;This program is an enhansment of:
;;SECTION Release1.0
;;Copyright (C) 1996, Bob Jones
;;courriel: bcjones@io.com
;;WWW: http://www.io.com/~bcjones

;;Permission to use, copy, modify, and distribute this software for any purpose
;;and without fee is hereby granted, provided that the above copyright notice
;;appears in all copies and that both that copyright notice and this permission
;;notice appear in all supporting documentation.

;;Bob Jones makes no warranty, including but not limited to any implied
;;warranties of merchantability or fitness for a particular purpose,
;;regarding the software and accompanying materials.  The software and
;;accompanying materials are provided solely on an "as-is" basis.

;;In no event shall Bob Jones be liable to any special, collateral, incidental,
;;or consequential damages in connection with or arising out of the use of
;;the software or accompanying materials.

;;This routine can be called by typing one of three commands at the command prompt.
;;All three commands will ask the user to select to corners of a rectangle.

;;The first command, SCB, will erase and trim all entities outside of the rectangle
;;and leave a polyline border.

;;The second command, SC, will erase and trim all entities outside of the rectangle
;;but will not leave a border.

;;The final command, SCD, will erase and trim all entities inside of the rectangle
;;and will not leave a border.


;;Please feel free to rename these commands as you desire.
(defun c:scb () (section t nil)); SECTION W/ BORDER
(defun c:sc () (section nil nil)); SECTION W/O BORDER
(defun c:scd () (section nil t)); DELETE INSIDE RECTANGLE


* * * * * ERROR ROUTINE * * * * *
(defun newerr (msg)
(prompt (strcat "\nSection cancelled: " msg)); PRINT ERROR
(setvar "cmdecho" cmd); RESET COMMAND ECHO
(setvar "highlight" hlt); RESET HIGHLIGHT
)


* * * * * MAIN FUNCTION * * * * *
;If the first argument has any value other than nil then the border will be left.  If it is nil
;then the border is erased.
;If the second argument is has any value other than nil then entities inside the border will be erased.
;If it is nil then entities outside the border are erase.
;For very large area drawings (maps or something), the DST variable may need to be changed.  If you
;find that not all entities are being trimmed properly try increasing the number higher than 1000.

(defun section (bdr n / olderr newerr cmd hlt p1 p2 p1x p1y p2x p2y p3 p4 dst plus minus p1a p2a p3a p4a lst)
(graphscr); CHANGE TO GRAPHICS SCREEN
(setq olderr *error* ; SET UP NEW
      *error* newerr ; ERROR ROUTINE
      cmd (getvar "cmdecho"); SAVE COMMAND ECHO SETTING
      hlt (getvar "highlight"); SAVE HIGHLIGHT SETTING
      p1 (getpoint "\nSelect first corner of rectangle: "); GET LL CORNER OF RECTANGLE
      p2 (getcorner p1 "\nSelect other corner: "); GET UR CORNER
      p1x (car p1)
      p1y (cadr p1)
      p2x (car p2)
      p2y (cadr p2)
      p3 (list p2x p1y); BUILD LR CORNER
      p4 (list p1x p2y); BUILD UL CORNER
      dst (/ (distance p1 p2) 1000.0); OFFSET FACTOR FOR TRIMMING
      plus (if n - +)
      minus (if n + -)
);END SETQ
(cond
 ((and (< p1x p2x) (< p1y p2y)); P1 IS LL CORNER
  (setq p1a (list (minus p1x dst) (minus p1y dst)); BUILD LL TRIM LINE POINT
        p2a (list (plus p2x dst) (plus p2y dst))); BUILD UR TRIM LINE POINT
 )
 ((and (> p1x p2x) (< p1y p2y)); P1 IS UL CORNER
  (setq p1a (list (plus p1x dst) (minus p1y dst)); BUILD LL TRIM LINE POINT
        p2a (list (minus p2x dst) (plus p2y dst))); BUILD UR TRIM LINE POINT
 )
 ((and (> p1x p2x) (> p1y p2y)); P1 IS UR CORNER
  (setq p1a (list (plus p1x dst) (plus p1y dst)); BUILD LL TRIM LINE POINT
        p2a (list (minus p2x dst) (minus p2y dst))); BUILD UR TRIM LINE POINT
 )
 ((and (< p1x p2x) (> p1y p2y)); P1 IS LR CORNER
  (setq p1a (list (minus p1x dst) (plus p1y dst)); BUILD LL TRIM LINE POINT
        p2a (list (plus p2x dst) (minus p2y dst))); BUILD UR TRIM LINE POINT
 )
); END COND
(setq p3a (list (car p2a) (cadr p1a)); BUILD LR TRIM LINE POINT
      p4a (list (car p1a) (cadr p2a)); BUILD UL TRIM LINE POINT
); END SETQ
(setvar "cmdecho" 0); TURN OFF COMMAND ECHO
(setvar "highlight" 0); TURN OFF HIGHLIGHT
(command "_.pline" p1 p3 p2 p4 "_c"); DRAW POLYLINE BORDER
(setq lst (entlast)); SAVE POLYLINE ENTITY NAME
(if n                                          ;ERASE ENTITIES
 (command "_.erase" "_w" p1 p2 "_r" lst "")    ;INSIDE RECTANGLE
 (command "_.erase" "_all" "_r" "_c" p1 p2 "") ;OUTSIDE RECTANGLE
); END IF
(command "_.trim" lst "" "_f" p1a p3a ""     ;TRIM ENTITIES AROUND BORDER
                         "_f" p3a p2a ""     ;DO TO THE FINICKY NATURE OF TRIMMING
                         "_f" p2a p4a ""     ;WITH THE FENCE OPTION, I HAVE USED FOUR
                         "_f" p4a p1a "" ""  ;FENCE LINES INSTEAD OF ONE LONG ONE
); END COMMAND
(if (not bdr) (entdel lst)); DELETE POLYLINE BORDER IF DESIRED
(setq *error* olderr); RESTORE ORIGINAL ERROR ROUTINE
(setvar "highlight" hlt); RESTORE HIGHLIGHT
(setvar "cmdecho" cmd); RESTORE COMMAND ECHO
(princ); EXIT CLEANLY
)
;;The following prompts are disabled when section.lsp is used with dialog box.
;(prompt "\nType SCB to create a section with a border.")
;(prompt "\nType SC to create a section without a border.")
;(prompt "\ntype SCD to delete entities inside rectangle.")
;(princ)

(defun cut_x ()
 (setq  C  0
       dcl_id (load_dialog "cut.dcl"))
 (if (not (new_dialog "cut" dcl_id))(exit))
   (action_tile "cut_outp" "(setq c 1)(done_dialog)")
   (action_tile "cut_out" "(setq c 2)(done_dialog)")
   (action_tile "cut_in" "(setq c 3)(done_dialog)")
   (action_tile "cancel" "(done_dialog)(exit)")

 (start_dialog)
 (unload_dialog dcl_id)
 (COND
      ((= C 1)(c:scb))
      ((= C 2)(c:sc))
      ((= C 3)(c:scd))
)
(princ)
)
(cut_x)
)
;;__________________________________________________________________
;;messages
(prompt "\nCut.LSP loaded - Type Cut to begin.")
(princ)

 

Posté(e)

coucou

 

tu ne connais pas la commande EXTRIM

si les Express sont installés bien sûr.

 

tu choisis la polyligne de "frontière",

tu cliques du côté à supprimer

et la commande va couper toutes les entités croisant cette frontière

ensuite il ne te reste qu'à effacer

 

à la rigueur avec une sélection en SP

 

amicalement

Posté(e)

Bonsoir,

 

utiliser la fonction clipping en spécifiant les options suivantes:

- Copier les objets

- Créer un jeu de sélection

 

valider par OK, sélectionner la polyligne de clipping, puis répondre NON à la question du déplacement des objets.

 

Lancer la commande EFFACER, à l'invite du choix des objets, taper TOUT

puis taper S pour passer en mode Supprimer

puis taper P pour précédent et retirer de la suppression la copie issue du clipping

Valider, il ne reste plus que les objet issus du clipping.

 

Olivier

Support Technique Covadis

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é