30 settembre 2019

7 cose di nanoCAD che gli altri CAD non hanno

Si parla sempre di 'cloni di AutoCAD' ma tanti CAD così definiti oltre a fornire comandi identici a quelli del CAD di riferimento posseggono a volte propri comandi e funzionalità davvero interessanti...

è il caso di nanoCAD Plus del quale mi piace segnalare 7 cose che potrebbero (e dovrebbero) essere presenti anche negli altri CAD:
  1. composizione testo delle quote
  2. editor tabelle avanzato
  3. incorporare immagini raster nel DWG
  4. applicazioni JavaScript
  5. esplosione e rimozione di oggetti Proxy
  6. osnap su immagini raster
  7. virtual command

1 Composizione testo delle quote

Chi si occupa di disegno meccanico sa quanto importante sia il testo delle quote e le sue annotazioni.
Se non si possiede un CAD orientato alla disciplina Meccanica, impostare delle tolleranze, degli scostamenti albero/foro, inserire particolari simboli diventa davvero laborioso utilizzando la sola tavolozza delle Proprietà dell’oggetto.

nanoCAD, quando si edita il valore di una quota, presenta una finestra di dialogo completa di tutti i controlli per impostare rapidamente il valore e il formato della quota.

Occorre un doppio clic sulla quota per richiamare la finestra di dialogo.

Nell’immagine seguente sono evidenziati i vari controlli ed il loro scopo:

Il pannello dei formati delle tolleranze, usato in combinazione con la finestra di dialogo che contiene le tabelle di accoppiamento albero/foro,

permette di ottenere tutti i tipi di rappresentazione richiesti.
Nell'immagine seguente si nota come la stessa tolleranza cambia rappresentazione in base al pulsante scelto nel pannello dei formati.
i diversi tipi di rappresentazione in base al formato selezionato
Completa il comando un piccolo menù contestuale, richiamabile sulla casella del testo della quota, che dà accesso a delle impostazioni aggiuntive come:
  • numero di decimali del valore della quota
  • inserimento simboli
  • inserimento frazioni

2 Editor tabelle avanzato

Non credo esista un altro CAD di fascia simile a quelli che tratto in questo blog che abbia una gestione delle tabelle così spinta.
nanoCAD offre un editor avanzato, ricco di funzioni, un piccolo Excel incorporato nel CAD.

Il comando di creazione della tabella si presenta con una ampia finestra di dialogo nella quale si possono selezionare le modalità di creazione della tabella:
  • tabella personalizzata: consente di stabilire il numero di righe e colonne e l’altezza dei testi delle celle oltre che il titolo, crea così una griglia vuota;
  • caricare un modello predefinito: da un elenco a discesa è possibile selezionare dei modelli pre impostati e/o creati dall’utente;
  • caricare da file: richiede di selezionare un file con estensione .tbl, .dat, .mdb, .xls, .xlsx, .csv, .txt o xml. Come si vede è supportato anche il database di Microsoft per il quale è possibile selezionare una eventuale query memorizzata nel file per filtrare i dati.
  • creazione tramite importazione da Excel: importa i dati del foglio Excel correntemente aperto
  • creazione tramite importazione da Appunti: importa i dati presenti negli Appunti
  • creazione in base agli oggetti del disegno: questa opzione richiede di selezionare quali oggetti (o meglio i loro dati) faranno parte della tabella.
     Tramite il pulsante Select si accede al pannello ‘Quick selection’ e dopo aver selezionato gli oggetti tutte le loro proprietà popoleranno la lista posta al centro della finestra di dialogo.

Vediamo un esempio relativo a quest'ultima opzione. 
Immaginiamo di voler ottenere una tabella con le lunghezze e i nomi dei layer di 3 polilinee.
Dopo aver selezionato le 3 polilinee, nella lista presente nella finestra di dialogo attiveremo il segno di spunta solo su ‘Layer’ e ‘Length’.
per ottenere una tabella come quella nell’immagine seguente.


Sin qui nulla di particolare ma, editando la tabella, si scopre un ‘universo’. L’editor (attivabile con un doppio click sulla tabella) consente una gestione 'capillare' della tabella, molto simile a quanto si farebbe in un foglio elettronico.

Molte icone e menù raccolgono tutte le funzionalità applicabili alla tabella.


Nell’area grafica, in giallo, sono evidenziati gli oggetti a cui fanno capo i dati, è un riscontro visivo per sottolineare il link bidirezionale che esiste tra tabella e oggetti.

Questo ambiente ha le stesse funzionalità di un Foglio elettronico, e si può:
  • aggiungere, inserire, cancellare righe e colonne
  • assegnare formule alle celle a mano o tramite un apposito Espression Builder
  • gestire la rappresentazione grafica degli elementi della tabella
  • formattare i dati delle celle
  • importare ed esportare i dati in altri formati di file
  • gestire la divisione della tabella su più pagine
  • raggruppare celle
  • nascondere righe o colonne
  • propagazione di valori in celle adiacenti
  • ordinare i valori delle colonne in maniera ascendente o discendente
    e tanto altro.
Questo argomento meriterebbe un articolo dedicato. Per chi volesse saperne di più può guardare questo video che continua ad illustrare, passo passo, la creazione della tabella relativa alle 3 polilinee/tubazioni mostrata sopra, con l’aggiunta di calcoli per il peso e i totali.

3 Incorporare immagini nel DWG

Questa funzionalità è davvero utile, sono certo che - a breve - la vedremo proposta anche negli altri CAD basati su DWG.

Nella finestra di dialogo dei riferimenti esterni (XREF), selezionando nell’elenco una immagine si attiva un pulsante per incorporarla nel disegno (vedi immagine sotto).

Nel campo path non ci sarà più il percorso del file raster ma la sigla “<embedded>” (incorporato).

Quello che fa nanoCAD è ricodificare l’immagine e salvarla in una struttura di dati interna al DWG.
Questa operazione fa aumentare le dimensioni del file DWG, ma si ha il vantaggio di avere tutti i file delle immagini contenuti in un unico file DWG.

Se il DWG fosse aperto con altri CAD le immagini non sarebbero visibili.

4 Applicazioni JavaScrpt

Oltre ai soliti linguaggi (C, .NET. LISP, VBA) nanoCAD offre un ulteriore linguaggio per  scrivere applicazioni personalizzate: JavaScript.

JavaScript accede alla stessa maniera del VBA (Visual Basic for Application) al modello ad oggetti che espone Proprietà, Metodi ed Eventi per operare con gli oggetti del disegno.

I file .js possono essere scritti con un qualsiasi editore di testo e non necessitano di essere compilati, basta caricarli dal ribbon Manage / Application o  digitare da tastiera il comando JS per caricare il file.

Conoscendo la sintassi del JavaScript e un po’ di come è organizzata la struttura degli oggetti del CAD, è facile scrivere le proprie ‘macro’, magari per disegnare un oggetto parametrico di uso frequente.

Un esempio molto semplice: immaginiamo un programma che disegni una piastra rettangolare con 4 fori.
Il programma richiederebbe: punto di inserimento, altezza, base e diametro dei fori:
la piastr con 4 fori disegnata tramite il programma in JavaScript
Questo di seguito è il semplice codice che realizza quanto mostrato nell’animazione precedente

//   DISEGNO PIASTRA RETTANGOLARE CON 4 FORI
// |----------------------------------------------|
// | esempio di utilizzo di JavaScript in nanoCAD |
// | 19-09-2019 - d.ieva - www.CADsemplice.it     |
// |----------------------------------------------|
//

// memorizza nomi oggetti per utilizzo successivo
var ms = ThisDrawing.ModelSpace;
var ut = ThisDrawing.Utility;

//
// Punto base della piastra (in basso a sx)
var ptbase = ut.GetPoint(null, "> Posiziona la piastra:");

//
// Richiede i valori della base e altezza
var base = ut.GetDistance(ptbase, "> misura della Base:");
var alt = ut.GetDistance(ptbase, "> misura della Altezza:");

//
// Richiede diametro foro
var dia = ut.GetReal("> Diametro Fori:");

//
// Calcola gli altri 3 vertici della piastra
var pt1 = ut.PolarPoint(ptbase, 0, base)
var pt2 = ut.PolarPoint(ptbase, Math.PI / 2.0, alt)
var pt3 = ut.PolarPoint(pt1, Math.PI / 2.0, alt)

//
// Disegna i 4 lati della piastra
ms.AddLine(pt1, ptbase);
ms.AddLine(pt2, ptbase);
ms.AddLine(pt3, pt1);
ms.AddLine(pt2, pt3);

//
// Calcola la posizione dei 4 fori
// nb: i fori sono distanti dal vertice della piastra
// la misura del diametro lungo la bisettrice del vertice
var ang45 = Math.PI / 4.0  // memorizza angolo da 45° in radianti
var f1 = ut.PolarPoint(ptbase, ang45 , dia); 
var f2 = ut.PolarPoint(pt1, ang45 * 3, dia);
var f3 = ut.PolarPoint(pt2, ang45 * 7 , dia); 
var f4 = ut.PolarPoint(pt3, ang45 * 5 , dia); 

//
// Disegna i 4 fori
ms.AddCircle(f1, dia / 2.0);
ms.AddCircle(f2, dia / 2.0);
ms.AddCircle(f3, dia / 2.0);
ms.AddCircle(f4, dia / 2.0);

//
// Calcola e visualizza area netta della piastra
area = (base * alt) - (4 * (Math.PI * (dia / 2.0) * (dia / 2.0)));
ut.Prompt(" La superficie netta della piastra è: " + area);

5 Esplosione e rimozione di Proxy Objects

Gli oggetti personalizzati (Custom Object) sono quelli oggetti non standard del CAD che sono stati creati da una applicazione aggiuntiva al CAD. Gli oggetti personalizzati hanno proprie caratteristiche e comportanti.

Per fare un esempio, Autodesk Civil 3D crea degli oggetti propri relativi alla disciplina della topografia, della progettazione stradale ecc. Lo stesso fa AutoCAD Mechanical.

Quando si apre un disegno che contiene questi oggetti ma non è presente il programma applicativo che li ha creati, essi perdono le loro proprietà e funzione. Potrebbero essere statici ed inamovibili, senza nessuna possibilità di essere modificati o cancellati (dipende da come sono stati progettati). Sono questi i Proxy Object, oggetti orfani della applicazione che li ha creati.

In questi casi sono utilissimi i 2 comandi proposti da nanoCAD per ‘ripulire’ il disegno o acquisire la geometria degli oggetti Proxy:
  • XPROXY
  • RMPROXY
Il primo esplode l’oggetto proxy consentendo di modificare e recuperare le entità che lo compongono.
Il secondo rimuove gli oggetti proxy dal disegno, anche le strutture di dati (proxy non grafici) che potrebbero appesantire il disegno (nb: quest’ultima caratteristica è presente da nanoCAD Plus 11).

6 Osnap su immagini raster

nanoCAD offre questo aiuto al disegno che si può utilizzare solo quando si sono inserite immagini in bianco e nero (meglio se TIFF).

Con questo tipo di immagini il programma riesce a rilevare in tempo reale le figure geometriche  (linee, archi e cerchi) in prossimità del cursore, ne visualizza il vettore rilevato e propone il punto con l’osnap applicabile.

Per attivare questa modalità bisogna attivare l’osnap “Raster object”.
un esempio di rilevamento di punti su un file raster

7 Virtual command

Si possono creare rapidamente dei nuovi comandi basati sui comandi interni di nanoCAD.
Sono una specie di 'macro' nelle quali si richiama un comando e si immettono i valori dei suoi parametri/opzioni.

Per creare un ‘Virtual command’ bisogna richiamare il comando INTERFACE, che serve a personalizzare l’interfaccia del programma.

Nell’elenco dei comandi, mostrato nella lista posta a destra, bisogna immettere un clic destro del mouse in maniera da far apparire il menù contestuale.

e scegliere la voce: Virtual command.

Nella nuova finestra di dialogo che appare inserire il nome del nuovo comando, il comando su cui si basa e la sequenza di parametri separati da spazi.

Immaginiamo di voler creare, semplicemente richiamando 1 comando, una figura rettangolare di 50x100 unità con i vertici arrotondati con un raggio di 5 unità.


Nell'immagine si nota il nome assegnato al comando (Piastra1), il comando che utilizza (Rectangle) e la sequenza dei parametri che sono:
  • F per l'opzione fillet (raccordo)
  • 5 la misura del raccordo
  • 0,0 le coordinate del vertice in basso a sinistra
  • 100,50 le coordinate del vertice in alto a destra
il nuovo comando PIASTRA esegue il comando rettangolo con una serie di impostazioni predefinite

Al nuovo comando può essere attribuita anche una icona per consentire l’inserimento in toolbar.




2 commenti:

  1. Le quote ordinate non sono pratiche e veloci come in autocad e nelle tavole solidworks, ogni volta che tiri una quota devi sempre partire dal riferimento e arrivare all'oggetto, in autocad una volta stabilito il riferimento con un nuovo ucs si va solo sui punti da quotare. inoltre le quote ordinate funzionano solo per quelle orizzontali, c'è una soluzione a questo?

    RispondiElimina
    Risposte
    1. Sicuramente il processo di inserimento delle Ordinate non è intuitivo come quello di AutoCAD.

      Il metodo dovrebbe essere questo:
      Comando DIM poi inserire la prima ordinata, poi - senza chiudere il comando - digitare "Base" e selezionare l'ordinata appena creata: essa da adesso rappresenta l'origine.
      Le ordinate successive faranno riferimento a quella selezionata come base.

      Effettivamente risulta difficoltoso inserire i valori della coordinata Y in orizzontale (con il testo in posizione orizzontale).

      Noo credo sia un bug, ma la cosa non è nemmeno documentata nella manualistica.

      Elimina