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
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

arri
Utente Master


Regione: Lombardia


14951 Messaggi

Inserito il - 11 febbraio 2011 : 07:57:22  Mostra Profilo Invia a arri un Messaggio Privato  Rispondi Quotando
(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

aforza
Utente Master


Regione: Italia
Prov.: Padova
Città: Cavarzere(VE)-Monselice(PD)


1798 Messaggi

Inserito il - 11 febbraio 2011 : 14:35:29  Mostra Profilo  Rispondi Quotando
ciao,

forse su 2011 non funziona??

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

ciao

Andrea Forza

CadWorx 2014 & Plant3D AutoCAD 2014 su Seven 64bit - Dell Vostro i7 ram 8gb - doppio monitor Hanns-g 22"
Torna all'inizio della Pagina

arri
Utente Master


Regione: Lombardia


14951 Messaggi

Inserito il - 11 febbraio 2011 : 14:55:58  Mostra Profilo Invia a arri un Messaggio Privato  Rispondi Quotando
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)
Torna all'inizio della Pagina

Giuseppe Mauro
Amministratore



Regione: Campania
Prov.: Napoli


2707 Messaggi

Inserito il - 11 febbraio 2011 : 16:29:12  Mostra Profilo Invia a Giuseppe Mauro un Messaggio Privato  Rispondi Quotando
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.))
Torna all'inizio della Pagina

Roberto07
Utente Master



Regione: Lazio
Prov.: Roma
Città: Sabina Italia


1042 Messaggi

Inserito il - 11 febbraio 2011 : 16:38:13  Mostra Profilo Invia a Roberto07 un Messaggio Privato  Rispondi Quotando
Ciao, ma che fa?
Sembra che funzioni ma le linee tratteggiate rimangono uguali... cambia ltscale? In base a che?
Torna all'inizio della Pagina

Giuseppe Mauro
Amministratore



Regione: Campania
Prov.: Napoli


2707 Messaggi

Inserito il - 11 febbraio 2011 : 16:52:52  Mostra Profilo Invia a Giuseppe Mauro un Messaggio Privato  Rispondi Quotando
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'.
Torna all'inizio della Pagina

Roberto07
Utente Master



Regione: Lazio
Prov.: Roma
Città: Sabina Italia


1042 Messaggi

Inserito il - 11 febbraio 2011 : 17:09:33  Mostra Profilo Invia a Roberto07 un Messaggio Privato  Rispondi Quotando
Fatto. Continuo a non vedere differenze.... Boh
Se aggiusta la visibilità forse non in bylayer...
Torna all'inizio della Pagina

aforza
Utente Master


Regione: Italia
Prov.: Padova
Città: Cavarzere(VE)-Monselice(PD)


1798 Messaggi

Inserito il - 11 febbraio 2011 : 17:50:02  Mostra Profilo  Rispondi Quotando
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



Andrea Forza

CadWorx 2014 & Plant3D AutoCAD 2014 su Seven 64bit - Dell Vostro i7 ram 8gb - doppio monitor Hanns-g 22"
Torna all'inizio della Pagina

Giuseppe Mauro
Amministratore



Regione: Campania
Prov.: Napoli


2707 Messaggi

Inserito il - 11 febbraio 2011 : 17:53:58  Mostra Profilo Invia a Giuseppe Mauro un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

Roberto07
Utente Master



Regione: Lazio
Prov.: Roma
Città: Sabina Italia


1042 Messaggi

Inserito il - 11 febbraio 2011 : 18:12:44  Mostra Profilo Invia a Roberto07 un Messaggio Privato  Rispondi Quotando
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

Torna all'inizio della Pagina

Giuseppe Mauro
Amministratore



Regione: Campania
Prov.: Napoli


2707 Messaggi

Inserito il - 12 febbraio 2011 : 09:06:42  Mostra Profilo Invia a Giuseppe Mauro un Messaggio Privato  Rispondi Quotando
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.
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 3,44 secondi.