Invité ingoenius Posté(e) le 14 juin 2007 Posté(e) le 14 juin 2007 je cale sur une betise , je dois deplacer l'origine du scu et j'arrive pas ici ce que je fais je me rappelle plus comment il faut mettre les coordonne car appareament la liste ne marche pas pour cela ;-( (setq N_ucsZ (list 0.0 0.0 h_min )) (command "_ucs" "o" N_ucsZ "" ) merci
BIM G CO Posté(e) le 14 juin 2007 Posté(e) le 14 juin 2007 si h_min est un entier ta liste ne marchera pas (setq h_min 0)par contre si h_min est un nombre réel ta liste correspond à un point 3D (setq h_min 0.0) (setq h_min 0.0) (setq N_ucsZ (list 0.0 0.0 h_min )) (command "_ucs" "_origin" N_ucsZ "" ) Le point d'origine 3D est du style (list X Y Z) Où X, Y et Z sont des nombres [surligneur]réels[/surligneur] Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
Invité ingoenius Posté(e) le 14 juin 2007 Posté(e) le 14 juin 2007 merci mon "h_min" est souvant un nombre negatif ex - 12.4 est j'arrive pas a le faire fonctionner
BIM G CO Posté(e) le 14 juin 2007 Posté(e) le 14 juin 2007 as-tu essayé, avant de l'intégrer dans la liste de le multiplier par [surligneur]1.0[/surligneur]? (setq h_min (* h_min 1.0)) Parce que je ne sais pas comment tu collecte la valeur de la variable "h_min" [Edité le 14/6/2007 par Maximilien] Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
Invité ingoenius Posté(e) le 14 juin 2007 Posté(e) le 14 juin 2007 je t'explique exactement le probleme : je suis en train de faire un script qui devrai servir pour realiser des coupes dans des solides, en utilisant la fonction section donc une fois selectionne les objets a couper le script me fai dessinner une ligne a l'ecran qui determine la coupe, seulement que il faut determiner ou cette coupe se positionne par rapport au scu de facon a etre surs q'uelle coupe reellement les objets selectionnes, le premier probleme serais de trouver la dimension globale du boundingbox de la selection de facon a placer le scu a l'nedroit minimal , extruder la ligne suffisament pour couper tous les objets, faire la coupe et effacer la ligne , ici le debut du script le probleme est , que deja il fonctionne pas das n'importe quues ucs, moi je voudrait que on se place en scu (ecrav vue) et quel on extrude la ligne coupant par rapport a z de la giuste quantité et que elle sois mise au bon endroit , mais appareament c'est plus difficile que prevu ;-( pour tricher dans le script vu que je ne trouve pas les bonnes coordonnes du boundingbox j(ai mis des dimensions enormes de coupe de facon a etre presque sur de couper les objets (defun c:K1 ();KUT de base avec simple selection de 2 point sur l'ecran (setq h_max (list nil)) (setq h_min (list nil)) (prompt "\nSel Objet to KUT :") (setq Obj (ssget)) (setq Quanti (sslength Obj)) ;(command "_ucs" "o" (list 0.0 0.0 -2.0)"") ;(command "_ucs" "_v" "" ) (setq SCU1 (list 0.0 0.0 -1000.0)) (command "_ucs" "_origin" SCU1 "" ) (setq m 0 ) (while (setq ent (ssname Obj m)) (vla-getBoundingBox (vlax-ename->vla-object ent) 'Minpt 'Maxpt ) (setq bb_lst (cons (caddr (vlax-safearray->list Maxpt)) bb_lst)) (setq bb_lst1 (cons (caddr (vlax-safearray->list Minpt)) bb_lst1) m (1+ m) ) ) (setq h_max (apply 'max bb_lst)) ;point max (setq h_min (apply 'min bb_lst1)) ;point min coor z reele per lo spostamento ;della linea di tagliopuo' essere negativo (setq extr (+ 1.0 (+ (abs h_max)(abs h_min)))); altezza estrusione da fare aumentata di 1 per superare l'oggetto (setq extr 2000.0) ; altezza estrusione da fare aumentata di 1 per superare l'oggetto ;(setq h_max 1000) ;vecchia formula ;(setq h_min (/ 2 h_max )) (setq n 0 ) (setq P (getpoint "\nGet Point?\n")) (command "_line" P pause "" ) (setq Kutter (entlast)) ;nomino la linea (setq K1 (entget Kutter)) ;lista entità ligne (command "_extrude" Kutter "" extr "" "") ;estrude le couteau (setq K2 (entlast));nomino l'estrusione ;(setq A (list '0.0 0.0 0.0 )) ;(setq B (list '0.0 0.0 h_min )) ;(command "_move" K2 "" A B );sposto la linea di taglio (repeat (sslength Obj) (setq ent (ssname Obj n)) (command "section" ent "" "s" K2 "" ) ;KUT (setq n (+ 1 n)) );fin repeat (command "_erase" K2 "" "");efface le couteau (command "_ucs" "g" "" ) )
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant