Ansys.com


Risultati da 1 a 9 di 9
  1. #1
    Utente Senior
    Iscritto dal
    2008
    Messaggi
    1330
    Professione
    ...
    Regione
    Emilia - Modena
    Software
    autocad11+swx12 sp4 w7 x64+Ready2W2012

    Predefinito Crea blocco usando come nome il layer

    Ciao, normalmente io uso questa lisp ( http://www.4shared.com/file/55379291...ified=16be2a49 ) che mi crea un blocco sostituendo le singole entità
    in appunto un blocco e riposizionandolo sopra il profilo esistente, funziona tutto bene solo che ogni volta debbo

    - digitare il nome del blocco durante la sua creazione
    - selezionare il blocco creato e "portarlo" sul livello appartenente

    Chiedevo, siccome il nome blocco potrebbe essere uguale al livello
    e siccome le entità che hanno composto il blocco erano già nel livello corretto,
    sarebbe possibile modificare la lisp (che non è editabile) o farne una nuova in modo che anche quelle 2 operazioni avvengano in automatico? (sempre "dettandomi" passo-passo quello che debbo fare..)
    Grazie
    ^__^
    [www.cfsystem.it Nastri trasportatori]
    [www.conveyor-belt-sushi.com Nastro trasportatore per sushi]

  2. #2
    Utente Standard L'avatar di rpor66
    Iscritto dal
    2007
    Messaggi
    617
    Professione
    Programmatore
    Regione
    Sicilia
    Software
    AutoCad, CadWorx, Excel, Lisp, VBA

    Predefinito

    Al solito, carica il file, guarda il contenuto, non è protetto, ci sono dei commenti che spiegano un pò il funzionamento.

    Ciao
    File Allegati File Allegati

  3. #3
    Utente Senior
    Iscritto dal
    2008
    Messaggi
    1330
    Professione
    ...
    Regione
    Emilia - Modena
    Software
    autocad11+swx12 sp4 w7 x64+Ready2W2012

    Predefinito

    :D Grazie, lo provo subito :D
    Ultima modifica di reggio; 17-07-2008 alle 01: 02
    Grazie
    ^__^
    [www.cfsystem.it Nastri trasportatori]
    [www.conveyor-belt-sushi.com Nastro trasportatore per sushi]

  4. #4
    Utente Senior
    Iscritto dal
    2008
    Messaggi
    1330
    Professione
    ...
    Regione
    Emilia - Modena
    Software
    autocad11+swx12 sp4 w7 x64+Ready2W2012

    Predefinito

    Citazione Originariamente Scritto da rpor66 Visualizza Messaggio
    Al solito, carica il file, guarda il contenuto, non è protetto, ci sono dei commenti che spiegano un pò il funzionamento.

    Ciao
    Ciao :D quasi quasi... come faccio a dirgli che non tutti gli elementi del layer debbono essere trasformati in blocco, ma SOLO quelli che ti indicherò io???

    (setq Lista (ssget "X" (list (cons 8 Layer)))) ; cre la selezione di tutte le entita del piano contenuto nella variabile Layer

    Porta pazienza :P
    Grazie
    ^__^
    [www.cfsystem.it Nastri trasportatori]
    [www.conveyor-belt-sushi.com Nastro trasportatore per sushi]

  5. #5
    Utente Standard L'avatar di rpor66
    Iscritto dal
    2007
    Messaggi
    617
    Professione
    Programmatore
    Regione
    Sicilia
    Software
    AutoCad, CadWorx, Excel, Lisp, VBA

    Predefinito

    con (setq Lista (ssget (list (cons 8 Layer)))) selezioni le entita e il comando filtra quelle appartenenti al piano <Layer>

    La funzione NewNameLayer, verifica l'esistenza del blocco di nome <Layer>, se esiste aggiunge 1 e ritorna il valore; considerando il nome del piano MURI, diventa MURI1; se esiste MURI1 diventa MURI2 etc., fino a 32767 nomi di blocchi differenti, questo perchè ho usato una variabile intera :D

    Buon divertimento
    File Allegati File Allegati

  6. #6
    Utente Senior
    Iscritto dal
    2008
    Messaggi
    1330
    Professione
    ...
    Regione
    Emilia - Modena
    Software
    autocad11+swx12 sp4 w7 x64+Ready2W2012

    Predefinito

    Ciao :D è QUASI perfetto!!!

    ...scusa la pignoleria, ma ho notato che alcuni blocchi li riposiziona correttamente, altri invece li sposta....
    Riesci a capire perchè???

    Nell'altro che ho mi chiede il punto di origine, il massimo invece sarebbe che si prendesse una coordinata dell'oggetto che tocchi x indicarlo e tenesse quella sia per origine che per riposizionarlo... che dici?

    ...uhmmm e poi e poi... si potrebbe fare in modo che, invece di chiamare il blocco come il livello aggiungendo 1,2,3,... fosse direttamente il livello a diventare da "traverso" a "traverso1" "traverso2" ... e QUINDI creare il blocco? perchè in questo modo mi basta toccare il blocco x sapere (guardando il layer) qual'è il suo nome e in questo modo lo potrei esplodere, modificare e ribloccare modificando tutti i suoi "fratelli" in un colpo solo ^__^ ...però in questo modo mi creerebbe semplicemente un ulteriore blocco e NON sovrascriverebbe quello corretto vero? :( uhmmm.... sono fregato quindi mi rimangio questa parte, a meno che tu non abbia già nel cappello un'idea più geniale :P

    Grazie infinite :D
    Ultima modifica di reggio; 19-07-2008 alle 12: 19
    Grazie
    ^__^
    [www.cfsystem.it Nastri trasportatori]
    [www.conveyor-belt-sushi.com Nastro trasportatore per sushi]

  7. #7
    Utente Standard L'avatar di rpor66
    Iscritto dal
    2007
    Messaggi
    617
    Professione
    Programmatore
    Regione
    Sicilia
    Software
    AutoCad, CadWorx, Excel, Lisp, VBA

    Predefinito

    ...scusa la pignoleria, ma ho notato che alcuni blocchi li riposiziona correttamente, altri invece li sposta....

    credo sia dovuto agli osnap, ho aggiunto del codice per ovviare al problema.

    la coordinata del punto di inserimento è, ora, estratta dalla prima entita selezionata.

    riguardo alla parte in rosso, sarà il caldo ma fatico a capire cosa ti serve!
    se devi modificare un blocco, usa BEDIT (Block Editor), se esplodi un blocco, ricordati di fare il purge
    (command "_purge" "_b" "" "_N") prima di usare BL.

    Ciao
    File Allegati File Allegati

  8. #8
    Utente Senior
    Iscritto dal
    2008
    Messaggi
    1330
    Professione
    ...
    Regione
    Emilia - Modena
    Software
    autocad11+swx12 sp4 w7 x64+Ready2W2012

    Predefinito

    Citazione Originariamente Scritto da rpor66 Visualizza Messaggio
    ...scusa la pignoleria, ma ho notato che alcuni blocchi li riposiziona correttamente, altri invece li sposta....

    credo sia dovuto agli osnap, ho aggiunto del codice per ovviare al problema.

    la coordinata del punto di inserimento è, ora, estratta dalla prima entita selezionata.
    F I C H I S S I M O ! ! !

    Citazione Originariamente Scritto da rpor66 Visualizza Messaggio
    riguardo alla parte in rosso, sarà il caldo ma fatico a capire cosa ti serve!
    Ciao, non è questione di caldo è che dopo oltre 12anni di autocad uso ancora la ACAD14 al 20% delle possibilità... e scoprendo questo forum scopro che invece lo conosco al 10% :(
    Detto questo però, provo a spiegarmi meglio: questa funzione dovrebbe servire a creare rapidamente un blocco di una vista (ne considero creabili al max 3: "vista,pianta,sez o laterale"), nominando il blocco con il nome del livello di appartenenza (e questo ora lo fà),
    fatto questo il bello è prendere questi blocchi e usarli in varie parti del disegno (quì mi sorge spontanea un'altra domanda da profano che però farò alla fine).
    Normalmente accade però che ad un certo punto mi accorgo che x esempio la pos di un foro vorrebbe spostata più in alto di 10mm (quì entra in gioco la domanda in rosso), quindi dovrei
    - esplodere il blocco,
    - spostare il foro
    - ricreare il blocco con lo stesso nome, posizionato nello stesso modo
    così tutti gli altri blocchi sparsi sul disegno verrebbero in automatico aggiornati (vero?)
    La difficoltà che trovavo ora, usando il tuo lisp è:
    "come si chiamava questo blocco? ... tavolo1, tavolo2 o tavolo3????"

    Citazione Originariamente Scritto da rpor66 Visualizza Messaggio
    se devi modificare un blocco, usa BEDIT (Block Editor), se esplodi un blocco, ricordati di fare il purge [/COLOR][/COLOR](command "_purge" "_b" "" "_N") prima di usare BL.
    e siccome che il comando BEDIT (che nn conoscevo ... :( ) pare nn funzionare con acad14
    <Comando: _bedit
    Comando sconosciuto "BEDIT">

    ..la mia idea era quella di:
    - prima di creare un blocco "tavolo" + numero progressivo
    - creo un nuovo layer + numero progressivo, su cui andrò a mettere tutte le entità che andrò a selezionare, SOLO a questo punto creerò un blocco chiamato (non più "livello" + numero progressivo), come il layer appena creato, che sarà appunto "tavolo2".

    Così facendo, quando avrò necessità di sbloccare, modificare e ribloccare il blocco, mi basterà guaradare a che layer appartiene "tavolo2" e ricrearlo, digitando a mano il nome del blocco semplicemente copiando il nome layer...

    Spero ora sia + chiaro (e che magari vi siano soluzioni + semplici)
    Grazie
    ^__^
    [www.cfsystem.it Nastri trasportatori]
    [www.conveyor-belt-sushi.com Nastro trasportatore per sushi]

  9. #9
    Utente Standard L'avatar di rpor66
    Iscritto dal
    2007
    Messaggi
    617
    Professione
    Programmatore
    Regione
    Sicilia
    Software
    AutoCad, CadWorx, Excel, Lisp, VBA

    Predefinito

    Bedit non c'è in R14.

    Prova questo, comincio a capire.

    Ciao
    File Allegati File Allegati


  • Discussioni Simili

    1. Crea lista di determinati layer
      Di zintonio nel forum Lisp per Autocad
      Risposte: 7
      Ultimo Messaggio: 27-08-2010, 15: 25
    2. Blocco dinamico che crea serie
      Di caster79 nel forum AutoCAD
      Risposte: 3
      Ultimo Messaggio: 20-01-2010, 16: 20
    3. Risposte: 1
      Ultimo Messaggio: 19-11-2009, 13: 53
    4. Blocco su un layer
      Di power23 nel forum AutoCAD
      Risposte: 1
      Ultimo Messaggio: 17-11-2009, 12: 16
    5. Crea nota - blocco IV2010?
      Di mdbosca nel forum Inventor
      Risposte: 2
      Ultimo Messaggio: 05-10-2009, 22: 05

    Segnalibri

    Segnalibri

    Permessi di Scrittura

    • Tu non puoi inviare nuove discussioni
    • Tu non puoi inviare risposte
    • Tu non puoi inviare allegati
    • Tu non puoi modificare i tuoi messaggi
    •  



    CAD3D.it - la community dei progettisti