Aller au contenu

deplacement origine scu


Messages recommandés

Invité ingoenius
Posté(e)

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

Posté(e)

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)

merci mon "h_min" est souvant un nombre negatif ex - 12.4 est j'arrive pas a le faire fonctionner

 

 

Posté(e)

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)

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"  "" ) 
 )




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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité