Autore |
Discussione |
plclab
Nuovo Utente
19 Messaggi |
Inserito il - 02/08/2004 : 17:48:05
|
be se e molto coplicato lasciamo stare, magari vedremo più avanti cosa si puo fare, ho cercato di far disegnare delle linee verticali al esempio che mi hai passato cercando di fargli fare un collegamento trifase per collegare un motore pero' mi sovrappone le linee perche?
ciao e grazzie |
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 02/08/2004 : 20:27:11
|
Dunque... tieni conto che x tracciare quelle orizzontali fai lo spostamento appunto in orizzontale col mouse e quindi verticale per le verticali. Nella riga del command array ... linee "-5", sostituisci -5 con 5. Questo perchè x orizzontali parto dall'alto e con array a "-5" gli dico di tracciarla a -5 mm (avendo il CAD normalmente settato in mm) e quindi verso il basso rispetto alla linea originale. Per le verticali traccio la linea originale e poi con array a "5" gli dico tracciarne ancora ogni 5mm e quindi verso DX. Quindi ti è sufficiente modicare il -5 con 5 e per praticità ti consiglio di premere prima il tasto F8 così hai le righe ortogonali. Inoltre se vuoi avere a disposizione tutte e 2 le funzioni devi salvare la seconda con un altro nome. Quando comincerai ad avere qualche funzione in + ti dirò come fare a far caricare ad Autocad tutte quante assieme, poi basta richiamare la funzione ed il gioco è fatto. Tieni sempre conto di una cosa, quando con autolisp richiami un comando autocad tipo linea,cerchio,rettangolo,proprietà e comandi simili, devi scrivere nel codice proprio la sequenza che dovresti fare usando il comando normale. Ti avverto anche che sto facendo una o + pagine WEB nella sezione di Autocad, dedicate ad un piccolo corso di Autolisp base.
Ciao!! |
|
|
plclab
Nuovo Utente
19 Messaggi |
Inserito il - 03/08/2004 : 12:16:44
|
ho fatto come mi hai detto pero non capisco perche mi sovrappone le linee e non le separa di 5mm. ciao |
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 03/08/2004 : 13:16:54
|
Scusa hai ragione, per le orizzontali è questa la riga command "_array" "_l" "" "" fasi "" "-5")
mentre per le verticali è questa command "_array" "_l" "" "" "" fasi "5")
Infatti l'array lavora diversamente a seconda se devi fare colonne(linee verticali) o righe (linee orizzontali).
Ciao! |
|
|
plclab
Nuovo Utente
19 Messaggi |
Inserito il - 05/08/2004 : 09:35:35
|
[?]Mio puoi spiegare meglio il significato della riga di codice qui sotto (command "_array" "_l" "" "" "" fasi "5") arrary = serie _l = ? variabile o altro "" = ? "" = ? "" = ? fasi = ? "5" = spazzio in mm ma il resto che significato ha ?
ciao
|
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 05/08/2004 : 11:17:15
|
Allora... premetto che conviene ragionare con comandi in inglese perchè si è + sicuri che funzioni con vari CAD. Il comando "serie" ti chiede praticamente le seguenti cose: 1) selezionare oggetti che sarebbe il "_l" che corrisponde a last in inglese e quindi "ultimo oggetto" inserito nel disegno che nel nostro caso è la linea. 2) Rettangolare o polare; di default CAD ti da Rettangolare, quindi un invio che sono le prime "" ("" in autolisp corrisponde ad un invio) 3) un altro invio e quindi "" per chiudere la selezione degli oggetti. 4) Numero di righe (altre "") 5) Numero di colonne (fasi o linee) dato da questa riga: (setq linee (getstring "\nNumero linee: ")). |
|
|
plclab
Nuovo Utente
19 Messaggi |
Inserito il - 09/08/2004 : 11:48:51
|
[:D]non xcapisco dove sbaglio mi puoi aiutare?
(defun c:conn (/ pt1) (setq pt1 (getpoint "\nCentro: ") (command "_circle" "" pt1 "" "10" ) )
|
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 09/08/2004 : 18:09:12
|
Ciao, prima di tutto ricordati che ad ogni parentesi aperta ce ne deve essere una chiusa, quindi la riga (setq pt1 (getpoint "\nCentro: ") diventa (setq pt1 (getpoint "\nCentro: ")) e dopo la riga del command diventa (command "_circle" pt1 "d" "10" ) prova. |
|
|
plclab
Nuovo Utente
19 Messaggi |
Inserito il - 10/08/2004 : 08:32:19
|
esiste una soluzzione migliore a queta soluzzione. vorrei fare che quando inserisco le linee verticali mi crei un collegamento con tanto di connessioni sul trifase. (defun c:lvert (/ pt1 pt2 linee) (setvar "blipmode" 0) (setvar "cmdecho" 0) (command "_undo" "_be") (setq pt1 (getpoint "\nInizio linea: ")) (setq pt2 (getpoint "\nFine linea: " pt1))
(setq linee (getstring "\nNumero linee: ")) (command "_line" pt1 pt2 "") (command "_array" "_l" "" "" "" linee "5") (command "_circle" pt1 "1" "" ) (command "_array" "_l" "" "" "" linee "5") (command "_circle" pt1 "0.7" "" ) (command "_array" "_l" "" "" "" linee "5") (command "_circle" pt1 "0.3" "" ) (command "_array" "_l" "" "" "" linee "5") (command "_undo" "_end") (setvar "cmdecho" 1) (princ)
) ciao |
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 10/08/2004 : 11:30:05
|
Ti mando via email il mio caso. Ciao! |
|
|
plclab
Nuovo Utente
19 Messaggi |
Inserito il - 11/08/2004 : 07:27:06
|
si vabene ho rinominato un mio blocco che una connessione e ho provato e funziona , l'unica cosa che sei limitato ad 3 fili,esiste un comando per ripetere n votle la funzione (es FOR I=1 to 10 ...... Next) in modo da ottenere magari un 3f+n.
ciao
|
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 11/08/2004 : 16:50:45
|
Si c'è un modo per ripetere una cosa n volte ed è il repeat e funziona così:
(repeat quanti codice di tutto quello che devi far ripetere ) ; fine repeat quanti è una variabile che deve essere un numero intero e quindi 4,5,10,39,100. Può essere direttamente anche il numero di ripetizioni. Per il momento questo per il repeat, probabilmente + avanti mi farai qualche altra domanda per quella variabile "quanti". Nel caso delle derivazioni da 1 a 4 secondo me la strada da seguire è questa: sae per esempio devi fare quella a 3 trifase all'interno del repeat devi fare in modo di calcolare per 2 voltei i vari punti di inizi e fine linee dove gli inizi saranno anche l'inserimento della connessione. Ti ho detto 2 volte perchè la prima è data dalla selezione col mouse. Attenzione che all'interno del repeat devi solamente calcolare i nuovi punti, far tracciare le linee e le connessioni.
A proposito spero utilizzi il Visual Lisp per programmare. Ciao! |
|
|
plclab
Nuovo Utente
19 Messaggi |
Inserito il - 14/09/2004 : 00:13:03
|
eccomi di nuovo sono tornato dalle meritate ferie,e devo dire che ho studiato vorrei sottoporre alla tua attenzione alcuni programmini creati dalla base dei tuoi esempi mi dici poi cosa ne pensi . come e dove posso inviarteli?
ciao |
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 14/09/2004 : 08:40:54
|
Ben tornato, ferie lunghe mi sembra:)) ti ho mandato una email. Ciao! |
|
|
admin
Amministratore
Regione: Veneto
Prov.: TV
Città: Treviso
188 Messaggi |
Inserito il - 15/09/2004 : 20:23:38
|
Mi sembra tutto ok, io (come metodo di principio) proverei a fare un repeat sul "Dira.lsp" per incrementare il punto di inserimento. E' ovvio cmq che 2 punti non ne vale la pena. Magari fai una prova su quello con + punti e poi mi fai sapere. Poi invece nel file "autoload.lsp", invece di fare il "load" di tutti i file, puoi copiare una dopo l'altra tutte e 4 le procedure che hai fatto, così in un file unico hai tutto. Io ne ho uno con + di 60 procedure e nel complesso ho 4-5 file (non tutti da 60 cmq) e li ho diviso per cosa devono fare. Ciao! |
|
|
Discussione |
|