Autore |
Discussione |
|
Arch_luca
Utente Master
Regione: Piemonte
340 Messaggi |
Inserito il - 21 settembre 2012 : 08:16:26
|
Salve a tutti, avrei bisogno di creare un blocco dinamico che permetta di modificare le dimensioni di elementi con forma rettangolare - e fin qui nessun problema - ma che riportasse anche sui singoli lati (o solo su quelli di mio interesse) la misura effettiva risultante dopo le modifiche dimensionali ottenute agendo sui grip. E' possibile? Grazie in anticipo! (AutoCAD 2009)
|
Luca |
|
Giuseppe Mauro
Amministratore
Regione: Campania
Prov.: Napoli
2707 Messaggi |
Inserito il - 21 settembre 2012 : 15:21:11
|
Certo che e' possibile. basta che tu inserisca nel blocco le quote che vuoi visualizzare. Modificando il rettangolo, trascinerai anche le quote e quindi vedrai le lunghezze real-time
Se hai la furbizia di metterle su un layer che non si stampa, le vedrai a video senza stamparle... Basta solo far viaggiare la fantasia.
|
|
|
Arch_luca
Utente Master
Regione: Piemonte
340 Messaggi |
Inserito il - 21 settembre 2012 : 15:47:01
|
Non mi sono spiegato bene: so che quotando in Editor Blocchi e utilizzando l'azione Stira è possibile adattare la quotatura alle modifiche apportate con lo stiramento ma quello che vorrei è che fosse possibile inserire una sorta di oggetto Attributo che "leggesse" la misura di una determinata linea ma senza inserire oggetti quota. Per spiegarmi meglio allego un dwg.
Scarica allegato:
Disegno1.zip 22,45 KB |
Luca |
|
|
Giuseppe Mauro
Amministratore
Regione: Campania
Prov.: Napoli
2707 Messaggi |
Inserito il - 21 settembre 2012 : 17:30:46
|
Domanda: cosa cambia se i due numeri ai lati sono in realta' valori di quota, impostando la linea di quota off, le linee di delimitazione off ed i blocchetti delle quote off? Non cambia nulla. Restera' un numero che varia (immediatamente) al variare delle dimensioni del rettangolo.
L'altra via e' usare non un rettangolo, ma 4 segmenti, ed inserire dei campi dati. L'aggio delle misure avviene solo dopo il regen e non puoi in maniera immediata spostare il punto di inserimento del campo dati.
Dai un occhio ai 2 blocchi dinamici nell'allegato.
Scarica allegato:
Disegno1a.zip 26,88 KB |
|
|
Arch_luca
Utente Master
Regione: Piemonte
340 Messaggi |
Inserito il - 22 settembre 2012 : 08:10:14
|
Quella di usare le quote e disattivarne linee e frecce è davvero un'ottima idea... non ci avevo proprio pensato: grazie! Con questo accorgimento risolvo al 90% gli "automatismi" del blocco che mi serve. Ma visto che ci sono provo a sottoporti anche la richiesta di soluzione per il rimanente 10%: si tratta in pratica di realizzare un blocco per disegnare la carpenteria del cemento armato di una sezione rettangolare in cui sia possibile variare a piacimento la misura dei lati rendendo automatico l'inserimento delle singole misure dei tratti rettilinei delle barre di armatura; con la dritta che mi hai dato ottengo in automatico la misura dei singoli tratti. Esiste la possibilità di rendere automatico anche l'inserimento della misura totale (somma dei singoli tratti rettiline)?
Scarica allegato:
Disegno1.zip 27,11 KB |
Luca |
|
|
GP
Utente Master
Regione: Piemonte
Prov.: Vercelli
2778 Messaggi |
Inserito il - 22 settembre 2012 : 12:10:26
|
Come ti ha detto Giuseppe puoi inserire un campodati della lunghezza della poly, ma l'aggiornamento del valore viene visualizzato solamente dopo un regen. |
|
|
Giuseppe Mauro
Amministratore
Regione: Campania
Prov.: Napoli
2707 Messaggi |
Inserito il - 22 settembre 2012 : 16:26:48
|
Come suggerito anche da GP, puoi inserire nel blocco un campo dati (_field) in cui vai a prendere la lunghezza totale della polilinea. Si aggiornara' al regen, ma meglio di niente e'.
In tutti i casi, trovo che la via che stai perseguendo e' di difficile percorrenza. Dovresti avere un tipo di blocco per ogni tipologia di barra d'armatura. Alla piu piccola variazione (una piega, una sezione non rettangolare, una barra a 45°..) il sistema con i blocchi va a farsi benedire. Anche se vari il copriferro, il tutto va a farsi benedire... Complicata la tua soluzione. Ma so' che altre strade percorribili non ce ne sono, a meno di non rivolgersi a programmi specifici (o a persone particolarmente dotate )
|
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 22 settembre 2012 : 21:56:53
|
Il valore del campo dati lo aggiorni anche con _UPDATEFIELD, non solo REGEN. Alternativa può essere la creazione del solito reattore collegato alla lunghezza della polilinea. |
Modificato da - Terminator in data 22 settembre 2012 22:03:54 |
|
|
Giuseppe Mauro
Amministratore
Regione: Campania
Prov.: Napoli
2707 Messaggi |
Inserito il - 23 settembre 2012 : 10:38:38
|
Termi, come crei il reattore?
E il reactor lega in maniera univoca la plice con il campo? Dammi 2 drittine, mi interessa la questione.
|
|
|
Arch_luca
Utente Master
Regione: Piemonte
340 Messaggi |
Inserito il - 23 settembre 2012 : 22:29:56
|
<div align="center" id="quote2"><table class="quote"><tr><td class="quotetd"></td></tr><tr><td class="quotetd2"><span class="quotetext">Messaggio inserito da Giuseppe Mauro
Come suggerito anche da GP, puoi inserire nel blocco un campo dati (_field) in cui vai a prendere la lunghezza totale della polilinea. Si aggiornara' al regen, ma meglio di niente e'.
In tutti i casi, trovo che la via che stai perseguendo e' di difficile percorrenza. Dovresti avere un tipo di blocco per ogni tipologia di barra d'armatura. Alla piu piccola variazione (una piega, una sezione non rettangolare, una barra a 45°..) il sistema con i blocchi va a farsi benedire. Anche se vari il copriferro, il tutto va a farsi benedire... Complicata la tua soluzione. Ma so' che altre strade percorribili non ce ne sono, a meno di non rivolgersi a programmi specifici (o a persone particolarmente dotate )
</span></td></tr></table></div align="center" id="quote2">
Per adesso mi interessa solo creare un blocco dinamico per la carpenteria dei muri di sostegno con solettone e parete a sezione rettangolare: le caratteristiche geometriche delle barre di armatura rimangono le stesse, cambia solo altezza e larghezza. Allego un semplice esempio per il solettone di base armato con staffoni. Per la parete la cosa si complica un pochino per via dei diversi tipi di barre e delle relative sovrapposizioni dei ferri ma funziona anche questa. L'unico neo è che non si riesce a "domare" la posizione degli attributi con le azioni di stiramento: variando le dimensioni della sezione occorre poi riposizionare manualmente gli attributi (quello dove ho scritto "INSERIRE")... C'è un rimedio per questo? Scarica allegato: Solettone_CA.zip 40,33 KB
|
Luca |
Modificato da - Arch_luca in data 23 settembre 2012 22:39:49 |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 24 settembre 2012 : 09:31:09
|
| Messaggio inserito da Giuseppe Mauro
Termi, come crei il reattore?
E il reactor lega in maniera univoca la plice con il campo? Dammi 2 drittine, mi interessa la questione.
|
Nella sua sinteticità potrebbe essere una cosa di questo tipo:
(defun C:AGGPO ()
(setq pol (vlax-ename->vla-object (car(entsel "\nSelezionare polilinea: ")))
polreactor (vlr-object-reactor (list pol) "Polyline Reactor" '((:vlr-modified . lunpoli)))
testo(vlax-ename->vla-object (car (entsel "\nSelezionare testo: ")))
)
;;; ogni volta che modifico la polilinea si attiva la callback function lunpoli
(defun lunpoli (pol rea lista)
(vla-put-textstring testo (rtos (vla-get-Length pol)))
)
)
Seleziono la polilinea e il testo ed ogni volta che si modifica la polilinea, il testo si aggiorna automaticamente con il variare della lunghezza. In questo caso il campo dati neppure serve.
Questo è grossomodo un reattore applicato alla polilinea. Ci sarebbero altri controlli da inserire, primo fra tutti la possibilità di cliccare un'altra polilinea con il suo relativo testo. In questo caso i reattori sarebbero due distinti applicati a due entità separate. |
|
|
Giuseppe Mauro
Amministratore
Regione: Campania
Prov.: Napoli
2707 Messaggi |
Inserito il - 24 settembre 2012 : 09:43:00
|
Quindi se ho capito bene polreactor contiene il reattore di pol e lo assegna ad una funzione lunpoli.
La funzione lunpoli ti chiede quale testo aggiornare (vlax-ename->vla-object (car (entsel "\nSelezionare testo: "))) ogni volta che modifichi la poly.
Ma la funzione resta attiva solo per ogni sessione del disegno. O sbaglio? Se chiudo e riapro, ho perso il reattore? E non ho vincolato quel testo a quella polilinea. Il testo in questa stesura e' su richiesta della funzione, vero? |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 24 settembre 2012 : 10:16:09
|
Il testo viene selezionato all'inizio una sola volta, di seguito cambierà al variare della lunghezza della polilinea. La funzione non chiede di aggiornare il testo, cambia in automatico la stringa del testo con la lunghezza della polilinea. Il reattore viene perso una volta chiuso il disegno, a meno di non renderlo permanente. |
|
|
|
Discussione |
|