Creare scripts complessi per disegnare

Lucacr88

Utente poco attivo
professione: progettista
software: autocad
regione: lombardia
Ciao a tutti, da qualche giorno sto sbattendo la testa per creare degli script complessi per realizzare disegni in autocad, si tratta di un infinita di comandi gestiti da excel.
Mi sono appunto creato il mio bel foglio excel che seguendo logiche di progettazione del componente mi calcola in automatico tutto ciò che desidero, con trigonometria e funzioni vado forte quindi posso stabilire alla grande ogni coordinata senza problemi.... Ed ora vorrei sfruttare il tutto per crearmi il disegno in autocad con due clicks!!

Non sono un grande esperto della codifica con gli scripts ma ho imparato le basi ed ho già fatto buoni passi in avanti!
Il mio più grande problema per il momento è l impossibilità di creare tramite script smussi e/o archi di circonferenza cosi come di tagliare curve segmenti e via dicendo...
Ho provato a risolvere il problema creando cerchi per poi tagliarne le parti che non desidero ed ottenere appunto il raccordo desiderato ma il comando taglia non mi funziona sempre al 100% e dipende molto dalle cifre decimali delle coordinate che calcolo...

Ho anche provato ad usare il comando arco, sapendo sempre e cmq calcolare almeno 3 punti dello stesso pensavo avrebbe funzionato senza problemi ed invece si blocca sempre!
Eseguo il comando, accetta il primo punto.... E poi si pianta li, non accetta il secondo punto e la finestra di dialogo dice che ha bisogno di coordinate 2D.... Le ho provate tutte, coordinate di numeri interi o decimali, ho provato a non specificare la coordinata z=0, a fargli cambiare il riferimento tra (primo,secondo,fine) (primo,centro,secondo) ecc ecc ecc ma niente da fare :(

Non è un problema di zoom o di codifica dei comandi, direi più che altro che non so simulare bene il pick e che mi sfugge qualcos altro :(

Qualcuno di voi mi sa aiutare per risolvere il problema?

Faccio un esempio banale casomai qualcuno avesse voglia di rispondermi con un esempio pratico:
Ho due linee:
2,0,0 10,0,0
0,2,0 0,10,0
(quindi due linee lunghe 8 perpendicolari tra loro)

Tramite calcoli so facilmente le coordinate di 3 punti che appartengono all arco:
0,2
2,0
0.586,0.586

E nel caso serva anche le coordinate del centro:
2,2

Sapreste scrivermi lo script in grado di creare questo disegno?
Preciso che io uso autocad 2013!
 

dieva

Utente Standard
professione: CAD Manager - AutoCAD sw developer
software: AutoCAD | BricsCAD | 3DSMax | Revit
regione: puglia
allego il file script
 

Allegati

  • LINEE_ARCO.zip
    199 bytes · Views : 39

Lucacr88

Utente poco attivo
professione: progettista
software: autocad
regione: lombardia
Grazie mille dieva, alla fine sono riuscito a risolvere andando a tentativi :finger:

Provo a chiedere un altro consiglio visto che mi sono bloccato su un altra stupidata....
Come faccio a cambiare colore alle linee?

Ho provato cambiando layer, usando il comando "color" ed usando il comando _amlayer_hatc ma non ne sono ancora uscito :(
Lo scopo è di creare una serie di linee e curve bianche per poi disegnarne anche una serie di rosse, l idea che volevo seguire era di attivare il colore rosso dove serve per poi riattivare il bianco e viceversa, sarebbe un po scomodo avere 1500linee di comando "bianche" e 1500 "rosse" separate tra loro in blocchi perché spesso i due tipi di linee appartengono allo stesso componente e separarle creerebbe non poca confusione :/

Oltre al colore c è la differenza di spessore linea, per questo usare layer standard di autocad coi comandi _amlayer_"" sarebbe star molto comodo!

Qualche suggerimento? :)
 

dieva

Utente Standard
professione: CAD Manager - AutoCAD sw developer
software: AutoCAD | BricsCAD | 3DSMax | Revit
regione: puglia
Mi sa che l'unica soluzione è con i layer .
O ne crei 2, uno con colore bianco ed uno con colore rosso e di volta in volta li rendi correnti tramite il comando _amlayer oppure, se vuoi tenere gli oggetti tutti su un unico layer al fine di sottolineare l'appartenenza ad uno stesso componente, ti servirà solo cambiare colore alle linee di colore diverso da quello del layer di appartenenza. Le altre 1500 naturalmente avranno il colore del layer.
Quindi ad esempio se il layer corrente ha colore bianco devi solo cambiare colore alle linee di colore rosso. Utilizzerai il comado _color prima di disegnare la liena o _change dopo averla disegnata.
Un'altra alternativa più elegante potrebbe essere quella di disegnare gli oggetti di colore rosso con delle polilinee in maniera da poterle selezionare con una istruzione AutoLISP da passare al comando cambia alla fine dello script velocizzando tutta la procedura:
;inizio script
_change
(ssget "x" '((0 . "POLYLINE")))

_p
_c
1

;fine script
 

Lucacr88

Utente poco attivo
professione: progettista
software: autocad
regione: lombardia
Grazie ancora per la risposta!
In realtà i colori non servono ad identificare diversi componenti tra di loro ma a identificare parti di ogni singolo componente non fondamentali oppure proiezioni ecc.

Con _colore pensavo di aver risolto ma si blocca sempre sulla finestra di dialogo e non riesco ad aitomatizzarlo, mi piace l idea dei layer ma non so gestirla per niente, non so i comandi per crearne uno nuovo e per poi intercambiarli tra loro :/

Col comando _amlayer_hatc si imposta sull utilizzo di un layer colore rosso con spessore linea 0,25 (che è ciò che voglio per quel tipo di linee) ma poi.... Anche se i comandi successivi dicono di disegnare linee archi ecc li disegna sempre e solo bianchi!
Ho controllato che le linee prendono il colore da "layer" e provando a tracciare linee e quant altro manualmente col layer hatc attivo effettivamente me le disegna rosse...

Non so proprio come uscirne, saresti cosi infinitamente gentile da scrivermi uno script (non lips ma un semplice foglio di testo) di uno script che da solo disegna una linea bianca poi una rossa ed infine un altra bianca?
Magari inserendomi anche le righe di comando che creano i layers che poi verranno usati per disegnare?

In ogni caso grazie per l aiuto, sei il numero uno :)
 

dieva

Utente Standard
professione: CAD Manager - AutoCAD sw developer
software: AutoCAD | BricsCAD | 3DSMax | Revit
regione: puglia
bisogna usare "-colore" per non visualizzare la finestra di scelta colori.
allego gli script
 

Allegati

  • script_di_esempio.zip
    519 bytes · Views : 28

Statistiche forum

Discussioni
59,382
Messaggi
507,068
Utenti registrati
111,785
Ultimo utente registrato
mrcmarconluca

Utenti online

Top