TuttoCAD Forum

TuttoCAD Forum
[ Home | Registrati | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Album Fotografico | Download | | Cerca | FAQ ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 1 - TuttoCAD Software
 AutoLISP
 comando cad in visual lisp
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Peppe27
Nuovo Arrivato



3 Messaggi

Inserito il - 31 dicembre 2013 : 14:56:28  Mostra Profilo Invia a Peppe27 un Messaggio Privato  Rispondi Quotando
Salve a tutti,
stò cercando di realizzare una routine lisp per la creazione di blocchi relativi ai profili h, ma ho difficoltà nell'utilizzare il comando _fillet.
Consigli?

Grazie e buon anno!!!!!!

GP
Utente Master


Regione: Piemonte
Prov.: Vercelli


2778 Messaggi

Inserito il - 31 dicembre 2013 : 16:48:14  Mostra Profilo Invia a GP un Messaggio Privato  Rispondi Quotando
Esistono librerie già create con tanto di menu, ad esempio qui:
http://www.cadlandia.com/topic.asp?TOPIC_ID=13155

Se però vuoi scrivere qualcosa in lisp allega un po' di codice che vediamo.
Torna all'inizio della Pagina

Peppe27
Nuovo Arrivato



3 Messaggi

Inserito il - 05 gennaio 2014 : 16:06:03  Mostra Profilo Invia a Peppe27 un Messaggio Privato  Rispondi Quotando
Grazie per la libreria....
..ma ho l'esigenza di crearne altre con profili americani, russi etc...
Questo è il codice scritto sinora:
;;; ROUTINE PER LA CREAZIONE DI PROFILI AD H CON SPESSORE ALI COSTANTE
;;; DEFINIZIONE DELLE VARIABILI
(defun C:CreaProfiloH ()
(setq h (getreal "\nAltezza profilo"))
(setq h2 (/ h 2))
(setq b (getreal "\nLarghezza profilo"))
(setq b2 (/ b 2))
(setq al (getreal "\nSpessore ala"))
(setq an (getreal "\nSpessore anima"))
(setq an2 (/ an 2))
(setq ra (getreal "\nRaccordo ala-anima"))
(command "_.filletrad" ra)
(setq p (getpoint "\nPunto d'inserimento?"))
;;; CALCOLO DELLE COORDINATE DEI VERTICI DEL PROFILO
(setq xp (car p))
(setq yp (NTH 1 p))
(setq x1 (- xp b2))
(setq x2 (- xp an2))
(setq x3 (+ xp an2))
(setq x4 (+ xp b2))
(setq y1 (+ yp h2))
(setq y2 (- (+ yp h2) al))
(setq y3 (+ (- yp h2) al))
(setq y4 (- yp h2))
;;; DISEGNO DEL PROFILO
(command "_.clayer" "acciaio sezione")
(setq old-snap (getvar "osmode"))
(setvar "osmode" 0)
(command "_.line"
(list x1 y1)
(list x4 y1)
(list x4 y2)
(list x3 y2)
(list x3 y3)
(list x4 y3)
(list x4 y4)
(list x1 y4)
(list x1 y3)
(list x2 y3)
(list x2 y2)
(list x1 y2)
(list x1 y1)
""
)
;;; INSERIRE IL COMANDO FILLET!!!!!!!!!!!!!!!
(command "_.pedit" "all" "" "j" "all" "" "")
;;; INSERIMENTO ASSI
(command "_.clayer" "assi")
(command "_.line"
(list xp (+ y1 50))
(list xp (- y4 50))
""
)
(command "_.line"
(list (- x2 50) yp)
(list (+ x3 50) yp)
""
)
(command "_.move" "all" "" p "0,0")
(command "_.zoom" "e")
(command "_.wblock" PAUSE "" "0,0" "ALL" "")
)
Torna all'inizio della Pagina

GP
Utente Master


Regione: Piemonte
Prov.: Vercelli


2778 Messaggi

Inserito il - 06 gennaio 2014 : 16:42:02  Mostra Profilo Invia a GP un Messaggio Privato  Rispondi Quotando
Mmmm... in giro mi sono imbattuto in un lisp che crea anche i profili che hai elencato, se serve posso tentare di rintracciarlo.

Nel frattempo vedi se puoi risolvere con questo, visto che alla fine sposti tutto sulle coordinate 0,0 ho impostato i punti direttamente in quella posizione.

Completalo con le tue esigenze (layer, wblock, ecc.)


(defun c:PH ( )

    (setq H (getreal "\nAltezza profilo "))
    (setq B (getreal "\nLarghezza profilo "))
    (setq s1 (getreal "\nSpessore ala "))
    (setq s2 (getreal "\nSpessore anima "))
    (setq r (getreal "\nRaccordo ala-anima "))
    (setq corda (sqrt (+ (* r r) (* r r))))

    (setq p1 (list 0 0))
    (setq p2 (polar p1 (* pi 0.5) s1))
    (setq p3 (polar p2 0 (/ (- B s2 r r) 2)))
    (setq p4 (polar p3 (* pi 0.25) corda))
    (setq p5 (polar p4 (* pi 0.5) (- H s1 s1 r r)))
    (setq p6 (polar p5 (* pi 0.75) corda))
    (setq p7 (polar p6 pi (/ (- B s2 r r) 2)))
    (setq p8 (polar p7 (* pi 0.5) s1))
    (setq p9 (polar p8 0 B))
    (setq p10 (polar p9 (* pi 1.5) s1))
    (setq p11 (polar p10 pi (/ (- B s2 r r) 2)))
    (setq p12 (polar p11 (* pi 1.25) corda))
    (setq p13 (polar p12 (* pi 1.5) (- H s1 s1 r r)))
    (setq p14 (polar p13 (* pi 1.75) corda))
    (setq p15 (polar p14 0 (/ (- B s2 r r) 2)))
    (setq p16 (polar p1 0 B))
    (setq pc (polar p1 (angle p1 p9) (* (distance p1 p9) 0.5)))
    (setq px1 (polar pc pi (+ 50. (* s2 0.5))))
    (setq px2 (polar pc 0 (+ 50. (* s2 0.5))))
    (setq py1 (polar pc (* pi 0.5) (+ 50. (* H 0.5))))
    (setq py2 (polar pc (* pi 1.5) (+ 50. (* H 0.5))))
    
    (command
        "_pline"
        "_non" p1
        "_non" p2
        "_non" p3
        "_a"
        "_non" p4
        "_l"
        "_non" p5
        "_a"
        "_non" p6
        "_l"
        "_non" p7
        "_non" p8
        "_non" p9
        "_non" p10
        "_non" p11
        "_a"
        "_non" p12
        "_l"
        "_non" p13
        "_a"
        "_non" p14
        "_l"
        "_non" p15
        "_non" p16
        "_c"
    )

    ;assi
    (command "_line" "_non" px1 "_non" px2 "")
    (command "_line" "_non" py1 "_non" py2 "")
)
Torna all'inizio della Pagina

Peppe27
Nuovo Arrivato



3 Messaggi

Inserito il - 06 gennaio 2014 : 19:21:05  Mostra Profilo Invia a Peppe27 un Messaggio Privato  Rispondi Quotando
Grazie mille!!!
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 0,82 secondi.