Welcome,
Guest
. Please
login
or
register
.
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
News:
Home
Help
Login
Register
TheSwamp
»
Code Red
»
AutoLISP (Vanilla / Visual)
»
Topic:
Error in vlax-3d-point
« previous
next »
Print
Pages: [
1
] |
Go Down
Author
Topic: Error in vlax-3d-point (Read 2143 times)
0 Members and 1 Guest are viewing this topic.
@_Bilal
Mosquito
Posts: 19
Error in vlax-3d-point
«
on:
March 05, 2018, 04:22:37 PM »
Hello,
Could some one help me to fix this error or explain to me why I get this error
"Error: Automation Error. UCS X axis and Y axis are not perpendicular" when
runing the below routine, noting that the the 2 segments are perpendicular.
Code - Auto/Visual Lisp:
[Select]
(
defun
ucsadd
(
ORg Xpt Ypt NAME
/
acaddoc_obj ucs_obj item
)
(
vl-load-com
)
;; V^V
;; Cross product of two vectors
(
defun
v
^
v
(
u v
)
(
list
(
-
(
*
(
cadr
u
)
(
caddr
v
)
)
(
*
(
caddr
u
)
(
cadr
v
)
)
)
(
-
(
*
(
caddr
u
)
(
car
v
)
)
(
*
(
car
u
)
(
caddr
v
)
)
)
(
-
(
*
(
car
u
)
(
cadr
v
)
)
(
*
(
cadr
u
)
(
car
v
)
)
)
)
)
;; Endof//v^v
;; Calculate the yptp which is perpendicular to segment Org and Xpt
;; u and v vectors
(
setq
u
(
list
(
-
(
car
Xpt
)
(
car
ORg
)
)
(
-
(
cadr
Xpt
)
(
cadr
ORg
)
)
(
-
(
caddr
Xpt
)
(
caddr
ORg
)
)
)
)
(
setq
v
(
list
(
-
(
car
Ypt
)
(
car
ORg
)
)
(
-
(
cadr
Ypt
)
(
cadr
ORg
)
)
(
-
(
caddr
Ypt
)
(
caddr
ORg
)
)
)
)
(
setq
z
(
v
^
v u v
)
)
;; calculate z vector
(
setq
Yptp
(
v
^
v z u
)
)
;;;Start adding UCS
(
setq
acaddoc_obj
(
vla-get-activedocument
(
vlax-get-acad-object
)
)
)
(
setq
ucs_obj
(
vla-get-UserCoordinateSystems
acaddoc_obj
)
)
(
setq
item
(
vla-add
ucs_obj
(
vlax-3d-point
org
)
;;origin
(
vlax-3d-point
Xpt
)
;;x axis point
(
vlax-3d-point
Yptp
)
;;y axis point
name
;;name
)
;_ end of vla-add
)
;_ end of setq
(
princ
)
)
;; Endof//ucsadd
Logged
Stefan
Bull Frog
Posts: 319
The most I miss IRL is the Undo button
Re: Error in vlax-3d-point
«
Reply #1 on:
March 05, 2018, 05:09:50 PM »
Xpt is in WCS and Yptp is relative to origin.
Change this line
Code:
[Select]
(setq Yptp (mapcar '+ org (v^v z u)))
Logged
ribarm
Gator
Posts: 3274
Marko Ribar, architect
WWW
Re: Error in vlax-3d-point
«
Reply #2 on:
March 05, 2018, 05:12:34 PM »
Try changing this line :
Code - Auto/Visual Lisp:
[Select]
(
setq
Yptp
(
v
^
v z u
)
)
To this :
Code - Auto/Visual Lisp:
[Select]
(
setq
Yptp
(
mapcar
'
+
ORg
(
v
^
v z u
)
)
)
Note that your Yptp in your code is vector, and you need point at position of ORg + vector...
Logged
Marko Ribar, d.i.a.
(graduated engineer of architecture)
M.R. on Youtube
@_Bilal
Mosquito
Posts: 19
Re: Error in vlax-3d-point
«
Reply #3 on:
March 05, 2018, 05:33:46 PM »
Thank you very much Ribarm and Stefan
I changed this line, the routine and i get accurate result
I understand where was my fault
thanks again
Logged
Print
Pages: [
1
] |
Go Up
« previous
next »
TheSwamp
»
Code Red
»
AutoLISP (Vanilla / Visual)
»
Topic:
Error in vlax-3d-point