i use VLIDE . I do this chage and the VLIDE shows me no errors but when i run in autocad this lisp gives me this error
; error: bad argument type: point: nil
I don't know what to do please show me ......
I thing that something is missing here !!
vp: (2876.41 2749.1 0.0)
ep: (998.326 2749.1 0.0)
p1: (4098.56 4418.83 0.0)
Distance vp->p1: 2069.22
Angle ep->vp->p1: 126.202130
***
vp: (2876.41 2749.1 0.0)
ep: (998.326 2749.1 0.0)
p2: (1919.34 4327.0 0.0)
Distance vp->p2: 1845.47
Angle ep->vp->p2: 58.761219
***
vp: (2876.41 2749.1 0.0)
ep: (998.326 2749.1 0.0)
p3: (5303.42 3782.05 0.0)
Distance vp->p3: 2637.68
Angle ep->vp->p3: 156.945096
***
vp: (2876.41 2749.1 0.0)
ep: (998.326 2749.1 0.0)
p4: (3746.29 1714.6 0.0)
Distance vp->p4: 1351.62
Angle ep->vp->p4: 229.940411
***
vp: (2876.41 2749.1 0.0)
ep: (998.326 2749.1 0.0)
p5: (1351.58 1647.18 0.0)
Distance vp->p5: 1881.31
Angle ep->vp->p5: 324.146384
***
1,116.827,12.46
2,138.869,13.55
3,159.3097,14.05
4,182.1792,13.11
< .. > this lisp gives me coordinate and distance, i need angle and distance. How i can do it ?
(defun c:bear2txt (/ p1 p11 p2 p21 p3 p31 d1 fname)
(setq p1 (getpoint "\nPick Base Referene point: "))
(setq p11 (getstring "\nEnter Label Base Referene point: "))
(setq p2 (getpoint p1 "\nPick Second point: "))
(setq p21 (getstring "\nEnter Label of Second point: "))
(setq fname (getfiled "Save Text File As:" (getvar 'dwgprefix) "TXT" 1))
(setq fil (open fname "w"))
(If (< (car p1) (car p2))
(progn (setq tmp p1) (setq p1 p2) (setq p2 tmp))
)
(setq cnt 1)
(setq pn p1)
(while (not (equal pn nil))
(if (setq pn (getpoint (strcat "\nPick point " (itoa cnt) " : ")))
(progn (setq pnl (getstring (strcat "\nEnter Label of point " (itoa cnt) " : ")))
(write-line
(strcat pnl "," (rtos (distance p1 pn) 2 2) "," (rtos (- (angle p1 p2) (angle p1 pn)) 2 2))
fil
)
(setq cnt (1+ cnt))
)
)
)
(alert (strcat (itoa (- cnt 1)) " points written in file " fname))
(close fil)
(princ)
)
1,116.827,12.46
2,138.869,13.55
3,159.3097,14.05
4,182.1792,13.11
1,16.8274g,12.46
2,38.8698g,13.55
3,59.3097g,14.05
4,82.1792g,13.11
1,116.8274g,12.46
2,138.8698g,13.55
3,159.3097g,14.05
4,182.1792g,13.11
(defun c:bear2txt (/ p1 p11 p2 p21 p3 p31 d1 fname)
(setq p1 (getpoint "\nPick Base Referene point: "))
(setq p11 (getstring "\nEnter Label Base Referene point: "))
(setq p2 (getpoint p1 "\nPick Second point: "))
(setq p21 (getstring "\nEnter Label of Second point: "))
(setq
fname (getfiled "Save Text File As:" (getvar 'dwgprefix) "TXT" 1)
)
(setq fil (open fname "w"))
(If (< (car p1) (car p2))
(progn (setq tmp p1) (setq p1 p2) (setq p2 tmp))
)
(setq cnt 1)
(setq pn p1)
(while (not (equal pn nil))
(if (setq pn (getpoint (strcat "\nPick point " (itoa cnt) " : ")))
(progn (setq
pnl (getstring
(strcat "\nEnter Label of point " (itoa cnt) " : ")
)
)
(setq ang (/ (* (- (angle p1 p2) (angle p1 pn)) 200) pi))
(write-line
(strcat (itoa cnt)
","
pnl
","
(rtos ang 2 2)
","
(rtos (distance p1 pn) 2 2)
)
fil
)
(setq cnt (1+ cnt))
)
)
)
(alert
(strcat (itoa (- cnt 1)) " points written in file " fname)
)
(close fil)
(princ)
)
(defun c:bear2txt (/ p1 p11 p2 p21 p3 p31 d1 fname)
(setq p1 (getpoint "\nPick Base Referene point: "))
(setq p11 (getstring "\nEnter Label Base Referene point: "))
(setq p2 (getpoint p1 "\nPick Second point: "))
(setq p21 (getstring "\nEnter Label of Second point: "))
(setq
fname (getfiled "Save Text File As:" (getvar 'dwgprefix) "TXT" 1)
)
(setq fil (open fname "w"))
(If (< (car p1) (car p2))
(progn (setq tmp p1) (setq p1 p2) (setq p2 tmp))
)
(setq cnt 1)
(setq pn p1)
(while (not (equal pn nil))
(if (setq pn (getpoint (strcat "\nPick point " (itoa cnt) " : ")))
(progn (setq
pnl (getstring
(strcat "\nEnter Label of point " (itoa cnt) " : ")
)
)
(setq ang (/ (* (- (angle p1 p2) (angle p1 pn)) 200) pi))
(if (< ang 0)
(setq ang (+ ang 400))
)
(write-line
(strcat (itoa cnt)
","
pnl
","
(rtos ang 2 2)
"g,"
(rtos (distance p1 pn) 2 2)
)
fil
)
(setq cnt (1+ cnt))
)
)
)
(alert
(strcat (itoa (- cnt 1)) " points written in file " fname)
)
(close fil)
(princ)
)
but i have an error with the angleThe (angtos) function takes the ANGBASE variable into account. This may explain the wrong values.