(AutoCAD Mechanical) UDAPower: Versione 2.7

Ho rilasciato una nuova versione del tool che ho realizzato per AutoCAD Mechanical.

Queste le novità:

  • FIX: La generazione dei file PDF tramite il tool Elaborazione Disegni Multipla generava dei files senza estensione.
  • ADD: Comando di menu “Cerca un testo …”; consente di individuare un testo all’interno del disegno, anche se si tratta di una direttrice di AutoCAD Mechanical (non mi risulta esista modo per cercare all’interno di questo tipo di geometria).
  • MOD: Il comando PasteGeometryTrusted ora rinomina il blocco inserito, aggiungendo il codice identificativo univoco di 10 caratteri alfanumerici, solo se necessario.
  • FIX: L’individuazione delle quote fuori scala non avviene più basandosi sulla misura, ma sul contenuto della stessa (cioè la mancanza di “<>” nel testo della quota).
  • ADD: Comando “Evidenzia Quote fuori scala”.
  • MOD: La funzione di pulizia geometrie ricorsiva ora, previa richiesta all’utente, è in grado di elaborare anche gli oggetti AutoCAD Mechanical.

Per comodità, il tool è scaricabile da qui: http://digilander.libero.it/udasoft/Software/windows64/UDAPower/index.html

VFAT Check: Tool testuale multipiattaforma per il controllo di Chiavette USB difettose

Partiamo dal perché ho realizzato questo programma: mi ritrovo con una chiavetta USB che mi rovina i files che ci copio sopra; i files sono di tipo multimediale, quindi non particolarmente importanti e ne posso tollerare “la perdita“. Tuttavia voglio capire se è possibile localizzare una zona difettosa ed, eventualmente, isolarla al fine di continuare ad utilizzare la parte buona del dispositivo.

Leggi tutto “VFAT Check: Tool testuale multipiattaforma per il controllo di Chiavette USB difettose”

UDAPower: Tool in VBA per AutoCAD Mechanical

Nel 2009, per un importante lavoro, l’azienda in cui lavoro si è dovuta dotare del software CAD bidimensionale AutoCAD Mechanical 2009.

Era necessario fornire tutta la documentazione tecnica nel formato DWG di questa specifica incarnazione di AutoCAD. Peccato che, per 12 anni buoni (e anche qualcosa in più), avevamo sempre utilizzato software CAD professionali molto diversi (Helix Drafting e CADAM Drafting). Il problema di passare brutalmente ad un sistema completamente nuovo era piuttosto importante.

Sicché decisi di verificare la possibilità di migrare i disegni fatti con i CAD ai quali eravamo abituati e iniziai a sviluppare un software di personalizzazione, scritto in VBA per AutoCAD, che consentiva la trasformazione di un disegno, esportato in DWG e realizzato dai suddetti CAD bidimensionali meccanici, in uno AutoCAD Mechanical 2009.

Il risultato è stato molto buono perché i disegni risultanti sono indistinguibili dai nativi.

Leggi tutto “UDAPower: Tool in VBA per AutoCAD Mechanical”

EMACS: Keyboard MACRO – Come eseguire la stessa operazione ripetutamente

In questo breve articolo voglio trattare di una funzionalità di EMACS, noto editor – anche se forse è un po’ riduttivo chiamarlo così – per il mondo UNIX ma disponibile anche su Windows, trattata nella sua documentazione qui e che da la possibilità all’utente di registrare tutto quello che fa per poi ripeterlo esattamente.

Una cosa praticamente uguale a quella che avviene, ad esempio, nei programmi Office.

Leggi tutto “EMACS: Keyboard MACRO – Come eseguire la stessa operazione ripetutamente”

Installazione dell’ambiente di sviluppo MinGW + MSYS + EMACS + FLTK

Da anni uso l’ambiente di sviluppo in oggetto per fare i miei “programmini”.

Leggi tutto “Installazione dell’ambiente di sviluppo MinGW + MSYS + EMACS + FLTK”

Convertire un numero intero (unsigned int) in indirizzo ipv4 in C

Come da titolo avevo la necessità di convertire un unsigned int nella classica forma degli indirizzi IP formata da 4 triplette di numeri separate da punto, tipo: 192.168.0.1

Ho trovato questo codice molto semplice ed efficace:

unsigned int    ipAddress = 3232235521;
unsigned char octet[4] = {0, 0, 0, 0};

for (int i = 0; i < 4; i++) {
 octet[i] = ( ipAddress >> ( i * 8 ) ) & 0xFF;
}

printf("%d.%d.%d.%d\n", octet[3], octet[2], octet[1], octet[0]);