Invité ingoenius Posté(e) le 28 mai 2008 Posté(e) le 28 mai 2008 Bonjour a tous, ici j'ai 2 script le premier sert a créer une répétition de la commande "offset" et le deuxième sert a placer un bloc sur un "chemin choisi" maintenant je voudrait mixer le 2 pour créer la répétition de bloc sur chaque chemin cree par le premier script , mais je sais plus comment procéder merci a vous ;-) (defun C:ABBLOC () (setq DTR (/ PI 180)) ;fattore di moltiplicazione x gradi verso radianti pi é Pi greco! (setq DESTRA (* 0 DTR)) ;traduzione del comando polar (setq SINISTRA (* 180 DTR)) ;traduzione del comando polar (setq SU (* 90 DTR)) ;traduzione del comando polar (setq GIU (* 270 DTR)) ;traduzione del comando polar (setq DIAG (* 45 DTR)) ;traduzione del comando polar (setq QP (fix(getreal "\nQuanti percorsi\n"))) (setq nome (car (entsel "\nSeleziona il Path\n"))) (setq DD 1.0) ;distanza decalmage offsett (setq P1 (getpoint "\nClicca il lato della ripetizione:\n")) (repeat QP (command "_offset" DD nome P1 "") (setq P1 (polar P1 sinistra 1.0)) (setq nome (entlast)) ) ) ;-------------------------------------------------------------------------- (defun C:AABLOC () (setq DTIPO (entget nome)) (setq TIPO (cdr (assoc 0 DTIPO))) ;determina cosé il tipo di oggetto (cond ((= TIPO "ARC") ;se é un arco (command "_pedit" nome "o" "" "" ) ;se non é un polilinea converte e poi procede (setq nomeD (entget (entlast))) ;ultimo oggetto creato (setq nome (cdr (assoc -1 nomeD))) ;nuovo nome entità (setq BLOCCO (car (entsel "\nSelect 1 block "))) (setq DatiB (entget BLOCCO)) ;estrae tutte le informazioni del blocco (setq NBLOC (cdr (assoc 2 DatiB))) ;recupera il nome del blocco selezionato (setq SPAZIO (getreal "\nInsert distance to blocks\n")) (setq dati (entget nome)) ;dati polilinea (command "_area" "_object" nome) (setq lung (getvar "perimeter")) (setq N (+ 1 (fix (/ lung SPAZIO)))) ;calcola il numero delle copie da fare (command "_divide" nome "B" NBLOC "_Y" N "") );fine cond 1 ((= TIPO "CIRCLE");se é un cerchio (setq BLOCCO (car (entsel "\nSelect 1 block "))) (setq DatiB (entget BLOCCO));estrae tutte le informazioni del blocco (setq NBLOC (cdr (assoc 2 DatiB)));recupera il nome del blocco selezionato (setq SPAZIO (getreal "\nInsert distance to blocks\n")) (setq dati (entget nome));dati polilinea (command "_area" "_object" nome) (setq lung (getvar "perimeter")) (setq N (+ 1 (fix (/ lung SPAZIO))));calcola il numero delle copie da fare (command "_divide" nome "B" NBLOC "_Y" N "") );fine cond 2 ((= TIPO "ELLIPSE");se é un'ellisse (setq BLOCCO (car (entsel "\nSelect 1 block "))) (setq DatiB (entget BLOCCO));estrae tutte le informazioni del blocco (setq NBLOC (cdr (assoc 2 DatiB)));recupera il nome del blocco selezionato (setq SPAZIO (getreal "\nInsert distance to blocks\n")) (setq dati (entget nome));dati polilinea (command "_area" "_object" nome) (setq lung (getvar "perimeter")) (setq N (+ 1 (fix (/ lung SPAZIO))));calcola il numero delle copie da fare (command "_divide" nome "B" NBLOC "o" N "") );fine cond 3 ((= TIPO "LWPOLYLINE");se é una polilinea (setq BLOCCO (car (entsel "\nSelect 1 block "))) (setq DatiB (entget BLOCCO));estrae tutte le informazioni del blocco (setq NBLOC (cdr (assoc 2 DatiB)));recupera il nome del blocco selezionato (setq SPAZIO (getreal "\nInsert distance to blocks\n")) (setq dati (entget nome));dati polilinea (command "_area" "_object" nome) (setq lung (getvar "perimeter")) (setq N (+ 1 (fix (/ lung SPAZIO))));calcola il numero delle copie da fare (command "_divide" nome "B" NBLOC "_Y" N "") );fine cond 4 ((= TIPO "SPLINE");se é una spline (setq BLOCCO (car (entsel "\nSelect 1 block "))) (setq DatiB (entget BLOCCO));estrae tutte le informazioni del blocco (setq NBLOC (cdr (assoc 2 DatiB)));recupera il nome del blocco selezionato (setq SPAZIO (getreal "\nInsert distance to blocks\n")) (setq dati (entget nome));dati polilinea (command "_area" "_object" nome) (setq lung (getvar "perimeter")) (setq N (+ 1 (fix (/ lung SPAZIO))));calcola il numero delle copie da fare (command "_divide" nome "B" NBLOC "_Y" N "") );fine cond 5 ((= TIPO "LINE");se é una line (command "_pedit" nome "o" "" "" );se non é un polilinea converte e poi procede (setq nomeD (entget (entlast)));dati ultima selezione (setq nome (cdr (assoc -1 nomeD)));nuovo nome entità (setq BLOCCO (car (entsel "\nSelect 1 block "))) (setq DatiB (entget BLOCCO));estrae tutte le informazioni del blocco (setq NBLOC (cdr (assoc 2 DatiB)));recupera il nome del blocco selezionato (setq SPAZIO (getreal "\nInsert distance to blocks\n")) (setq dati (entget nome));dati polilinea (command "_area" "_object" nome) (setq lung (getvar "perimeter")) (setq N (+ 1 (fix (/ lung SPAZIO))));calcola il numero delle copie da fare (command "_divide" nome "B" NBLOC "_Y" N "") );fine cond 6 (t nil) );fine delle cond );fine defun ----------------------------------------------------------------------
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant