Sostituire entità punti con cerchi

franco75

Utente poco attivo
Buona sera a tutti,
sono nuovo della comunity e mi sembra di capire, rispetto al livello medio, anche piuttosto indietro.
Avrei bisogno di ricevere un aiuto per fare una cosa che sembra stupida ma mi risolverebbe parecchio lavoro.
Devo caricare molti file autocad su un software per preparare dei piazzati di taglio. Il software non riconosce le entità punto e quindi mi trovo a dover sostituire un infinità di punti con dei cerchi, ai quali devo scegliere se dare il diametro 2 mm o 4 mm visto che la macchina ha due punzoni. So che è possibile realizzare delle macro che facciano questo in automatico, mi piacerebbe poter selezionre un area di interesse ed andare a inserire un cerchio per ogni punto appartente al layer specificato definendo in fase di inserimento il diametro del cerchio. Purtorppo non so niente di programmazione lisp e VBA, qualcuno può aiutarmi?
Grazie,
Franco
 
Prova questo...
Codice:
(defun c:pt2cer ( / cmd d pp p n)
    (setq cmd (getvar 'cmdecho))
    (setvar 'cmdecho 0)
    (command "_.undo" "_begin")
    (initget (+ 2 4))
    (or d (setq d 2))
    (setq d (cond
                ( (getdist (strcat "\nDiamentro dei cerchi  <" (rtos d 2 0)">: ")) )
                ( d )
    )       )
    (prompt "\nSelezionare i Punti")
    (setq pp (ssget '((0 . "POINT"))))
    (if pp
        (repeat (setq n (sslength pp))
            (setq p (ssname pp (setq n (1- n))))
            (entmake
                (list
                    (cons 0 "CIRCLE")
                    (cons 10 (cdr (assoc 10 (entget p))))
                    (cons 40 (* 0.5 d) )
                )
            )
            (entdel p)
        )
    )
    (command "_.undo" "_end")
    (setvar 'cmdecho cmd)
)
 

Statistiche forum

Discussioni
59,436
Messaggi
507,573
Utenti registrati
112,034
Ultimo utente registrato
silentdog5992

Utenti online

Indietro
Top