• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

拡張設計に基づいてltscaleとdimscaleを設定

  • Thread starter Thread starter reggio
  • Start date Start date

reggio

Guest
mi aiutereste a capire come fare un lisp per settare "ltscale" e "dimscale" in base all'estensione disegno e poi lanciare un "rigen"?

e se poi ne volessi fare un altro basato sulla finestra attuale?
 
le variabili le setti in questo modo:
(setvar "ltscale" valore)
(setvar "dimscale" valore)

il rigen lo lanci con:
(command "_regen")

i valori da assegnare li devi ricavare con delle condizioni del tipo se limiti > 200 allora ltscale = 2,5 (per esempio)
questo lo fai cosi':
(if (> (car (getvar "limmax")) 200) (setq valore 2.50))
ma credo tu debba prima chiarti le idee e' una domanda un po troppo generica
 
perchè dici troppo generica?

quello che mi indichi è perfetto per la prima parte, vediamo se ho capito:

(defun c:lt-dim ( / valorelt valoredim)

(setq valorelt (/(getvar "limmax") 2) ->il valore di valorelt è la lunghezza del complessivo/un valore da verificare in pratica
(setq valoredim (/(getvar "limmax") 2.6)->il valore di valoredim è la lunghezza del complessivo/un valore da verificare in pratica

(setvar "ltscale" valorelt) ->assegno ltscale
(setvar "dimscale" valoredim) ->assegno dimscale
(command "_regen") ->rigenero

...provato ma non và.. :( perchè?

poi ora bisognerebbe farne un altra dove al posto di
(getvar "limmax")
ci sia
(getvar "finestra_attuale")

cosa dici, riesci ad aiutarmi ancora? ;-d
 
limmax rstituisce un valore del tipo (420.0 297.0) che si chiama in lisp "coppia puntata" e si riferisce ad un punto (coordx coordy).
non puoi --- (setq valorelt (/(getvar "limmax") 2) ----- cioe' dividere una coordinata per 2, non ha senso per il lisp

ovviamnte stesso discorso vale per l'altro valore, non puoi dividere una coordinata per 2,6

dovresti estrarre uno dei 2 valori ----
(setq valoreltx (nth 0 (getvar "limmax")))
(setq valorelty (nth 1 (getvar "limmax")))
per poi dividerlo, per questo non ti funziona

(getvar "finestra_attuale") - non mi pare esista una variabile con tale nome, al massimo prova ad utilizzare come controllo per il tuoi dimensionamenti, il valore della variabile viewsize (essendo un numero non devi estrarre nulla e devi solo fare le tue operazioni)
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top