TuttoCAD Forum

TuttoCAD Forum
[ Home | Registrati | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Album Fotografico | Download | | Cerca | FAQ ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 1 - TuttoCAD Software
 AutoLISP
 LTSCALE dinamico

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Faccine
Felice [:)] Davvero Felice [:D] Caldo [8D] Imbarazzato [:I]
Goloso [:P] Diavoletto [):] Occhiolino [;)] Clown [:o)]
Occhio Nero [B)] Palla Otto [8] Infelice [:(] Compiaciuto [8)]
Scioccato [:0] Arrabbiato [:(!] Morto [xx(] Assonnato [|)]
Bacio [:X] Approvazione [^] Disapprovazione [V] Domanda [?]
Seleziona altre faccine

    
 
   

V I S U A L I Z Z A    D I S C U S S I O N E
arri Inserito il - 11 febbraio 2011 : 07:57:22
(defun c:LTS (/ _draw ss gr)
  ;; Dynamically change LTScale of selected object(s)
  ;; Requried subroutines: AT:SS->List
  ;; Alan J. Thompson, 07.06.10

  (defun _draw (p1 p2) (redraw) (grdraw p1 p2 3 1) (/ (distance p1 p2) 100.))

  (if (setq ss (AT:SS->List (ssget "_:L" '((0 . "ARC,ELLIPSE,CIRCLE,*LINE"))) T))
    (while (and (eq 5 (car (setq gr (grread T 15 1)))) (vl-consp (cadr gr)))
      (foreach x ss
        (vl-catch-all-apply
          (function vla-put-linetypescale)
          (list
            x
            (_draw
              (trans (vlax-curve-getClosestPointTo
                       (car
                         (vl-sort
                           ss
                           (function
                             (lambda (a b / pt)
                               (< (distance
                                    (vlax-curve-getClosestPointTo a (setq pt (trans (cadr gr) 1 0)))
                                    pt
                                  )
                                  (distance (vlax-curve-getClosestPointTo b pt) pt)
                               )
                             )
                           )
                         )
                       )
                       (trans (cadr gr) 1 0)
                     )
                     0
                     1
              )
              (cadr gr)
            )
          )
        )
      )
    )
  )
  (redraw)
  (princ)
)

(defun AT:SS->List (SS VLA)
  ;; Convert selection set to list of ename or vla objects
  ;; SS - SSGET selection set
  ;; VLA - T for vla objects, nil for ename
  ;; Alan J. Thompson, 04.01.10
  (if (eq 'PICKSET (type SS))
    ((lambda (i / e l)
       (while (setq e (ssname SS (setq i (1+ i))))
         (cond (VLA (setq l (cons (vlax-ename->vla-object e) l)))
               ((setq l (cons e l)))
         )
       )
     )
      -1
    )
  )
)


http://www.cadtutor.net/forum/showthread.php?56736-Dynamic-LTSCALE&p=384308&viewfull=1#post384308
10   U L T I M E    R I S P O S T E    (in alto le più recenti)
Giuseppe Mauro Inserito il - 12 febbraio 2011 : 09:06:42
Robe' figurati.
Comunque con le tue macro hai gia un'ampia panoramica dei vari valori possibili di LTSCALE
Era solo comodo magari se hai piu linee simili (tipo impianti), con il quale puoi differenziare vari tratti.
Ma questo lisp non e' per nulla indispensabile.
Roberto07 Inserito il - 11 febbraio 2011 : 18:12:44
Giusè ci rinuncio. Grazie per l'aiuto ma io non riesco a vedere differenze. Forse mi si dovrebbe presentare una situazione brutta e questo comando interviene prima che si modifichi manualmente LT, io però mi sono messe queste piccole macro sul menù e finora non ho mai sofferto più di tanto. Certo se passo da 1:100 a 1:10.000 qualche problema appare.....


Immagine inserita:

36,93 KB

Giuseppe Mauro Inserito il - 11 febbraio 2011 : 17:53:58
Si sistema anche la bylayer...
ma usi un tipo di linea tratteggiata(tratteggiata, trattopunto, nascondi...) o usi la continua?

Fa una linea lunga 6, fa uno zoom sulla linea e poi lanci LTS e la vedi cambiare (con quel parametro ad 1.)
Se lo hai originale a 100 devi fare una linea lunga 600, fa uno zoom e poi lanco LTS
aforza Inserito il - 11 febbraio 2011 : 17:50:02
Messaggio inserito da arri

Messaggio inserito da aforza

ciao,

forse su 2011 non funziona??

errore: no function definition: VLAX-ENAME->VLA-OBJECT

ciao


all'inizio devi inserire

(vl-load-com)



si si mi son ricordato che me lo avevi gia detto...
questa cosa è stupenda


ciao


Roberto07 Inserito il - 11 febbraio 2011 : 17:09:33
Fatto. Continuo a non vedere differenze.... Boh
Se aggiusta la visibilità forse non in bylayer...
Giuseppe Mauro Inserito il - 11 febbraio 2011 : 16:52:52
cambia LTSCALE dinamicamente (lo vedi mentre lo fai). Ti sembra uguale per via di quel rapporto 100 che io ho modificato in 1.
Modificalo e poi vedrai che le differenze le noti molto di piu'.
Roberto07 Inserito il - 11 febbraio 2011 : 16:38:13
Ciao, ma che fa?
Sembra che funzioni ma le linee tratteggiate rimangono uguali... cambia ltscale? In base a che?
Giuseppe Mauro Inserito il - 11 febbraio 2011 : 16:29:12
io ho solo variato il parametro in rosso, perche' disegnando in unita', il rapporto mi veniva troppo piccolo da vedere


(defun _draw (p1 p2) (redraw) (grdraw p1 p2 3 1) (/ (distance p1 p2) 1.))
arri Inserito il - 11 febbraio 2011 : 14:55:58
Messaggio inserito da aforza

ciao,

forse su 2011 non funziona??

errore: no function definition: VLAX-ENAME->VLA-OBJECT

ciao


all'inizio devi inserire

(vl-load-com)
aforza Inserito il - 11 febbraio 2011 : 14:35:29
ciao,

forse su 2011 non funziona??

errore: no function definition: VLAX-ENAME->VLA-OBJECT

ciao

TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 0,23 secondi.