UCS (LUW) obrót układu


perlon

Recommended Posts

O UCS(LUW) było już w kontekście dopasowania do obiektu. Mi nie zgadza się obracanie układu. 

Command: UCS
Currently in World UCS.
Enter an option [?/Face/3point/Delete/OBject/Origin/Previous/Restore/Save/View/X/Y/Z/ZAxis/World] <World>: z

Enter angle of rotation about Z axis <90>: 

W tym momencie punkt obrotu automatycznie jest w 0,0 i program pyta o drugi punkt kierunkowy. Powinien zapytać o kąt poprzez wskazanie dwóch punktów a nie przyjmować pierwszy domyślnie. W takim wariancie nie pozostaje mi nic innego jak najpierw narysować linię a następnie zrobić UCS to Object. Wolałbym jednak po staremu czyli prze dwa punkty.

Edited by perlon
Link to comment
Share on other sites

  • 9 months later...

Tak dokładnie.

W 2015 jest tak:

Command: _UCS
Currently in World UCS.
Specify origin of UCS or [?/Face/3point/Delete/OBject/Origin/Previous/Restore/Save/View/X/Y/Z/ZAxis/World] <World>: Z
Enter angle of rotation about Z axis <90>: 

W tym momencie można podać z łapy kąt lub wskazać punkt początkowy wektora osi X a następnie punkt końcowy tego wektora

W 2018

Command: _UCS
Currently in World UCS.
Specify origin of UCS or [?/Face/3point/Delete/OBject/Origin/Previous/Restore/Save/View/X/Y/Z/ZAxis/World] <World>: Z
Enter angle of rotation about Z axis <90>: 

Ale w tym momencie punkt bazowy wektora jest już wskazany i możemy podać z łapy kąt albo drugi punkt wektora osi X.

Edited by perlon
Link to comment
Share on other sites

  • 2 weeks later...

Stworzyliśmy małego LISPa, który może nieco ułatwi obrót UCS.

Po jego załadowaniu będzie dostępne polecenie ucsz (niemniej można go sobie zmienić wedle uznania).

ucsz.gif

 

Skrypt LISP do pobrania UCS_Rotate.lsp i kod źródłowy.

;;;
;;;www.zwcad.pl | Skrypt do obrotu układu UCS o wskazany kąt.
;;;
(defun ZWCAD:Getpoint (tresc P0 domyslny / SelPt Wynik )
;(ZWCAD:Getpoint tresc P0 domyslny )
	(setq tresc (strcat "\n" tresc ": "))
	(if (not(null P0))
		(setq SelPt(vl-catch-all-apply 'getpoint (list P0 tresc )))
		(setq SelPt(vl-catch-all-apply 'getpoint (list  tresc )))
	)
	(if (vl-catch-all-error-p SelPt)
	(progn
		(prompt (vl-catch-all-error-message SelPt))
		(setq Wynik nil )
	)
	(progn				
	  (if (null SelPt) 
		(setq Wynik domyslny )
		(setq Wynik SelPt)
	  )
	)
  )
  Wynik
)

(defun r2d (rads / )(/(* 180 rads)pi))

(defun C:UCSZ (  / *error* p1 p2 ang)
	(defun *error* ( msg / ) 
		(if (not (null msg ) )	(progn (princ "\nC:UCS_Rotate:*error*: " ) (princ msg ) (princ "\n")	) )
	)
	(setq p1 (ZWCAD:Getpoint "Wskaż pierwszy punkt odniesienia"  nil nil ) )
	( if ( not (null p1 ) ) (progn
		(setq p2 (ZWCAD:Getpoint "Wskaż drugi punkt odniesienia" p1 nil ) )
		( if ( not (null p2 ) ) (progn
			(setq ang (angle p1 p2 ) ) 
			(command "_UCS" "_Z" (rtos (r2d ang ) ) )
		))
	))
	(princ "" )
)

 

Link to comment
Share on other sites

  • 7 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...