That's what I mean. To you, 0° means North, but to AutoCAD, 0° means the direction of the x-axis (in other words, "East"), not North. And it increases as you go counterclockwise. So it's like a bearing (if you're familiar), except that the bearing's "North" is towards the east and goes counterclockwise. That's how it works in AutoCAD. For your reference, try:
Turn Dynamic Input On
Start a LINE command
Click a point
Move your mouse around, and you'll notice how the angle behaves. It's referenced to the positive x-axis of the UCS.
That's why I was trying to confirm from my post earlier:
"So you basically want to insert a block at the direction of the angle mirrored along a vertical axis as the 0 degrees is to the north. When you click two points, the angle is returned counterclockwise from x-axis. (for instance, if the angle resulting from (angle p1 p2) is 15°, then you want the arrow to be pointing at 165° if I'm understanding it right. If angle supplied is 240°, then arrow points to 300°). Is that right?"
I potentially never use (command) because it tends to be at least six times slower, but in your case, you're only inserting one block. And your error is, once again, caused by a spelling mistake ANGT, as opposed to ANGFT
Your line
(setq ANGF1 (angle REAL1 REAL2))
would return the same thing as getangle either way, so using getangle is shorter, quicker, and easier to use, which is why I used that instead. You probably want to use this then:
(defun c:test ( / ang blkname bpt)
(setq blkname "ARROWNORTH")
(and
(setq ang (getangle "\nSpecify angle or click two points <exit>: ")) ; ok thats the angle
(setq bpt (getpoint "\nSpecify arrow location <exit>: ")) ; thats the arrow basepoint
(entmake
(list
'(0 . "INSERT")
(cons 2 blkname)
(cons 10 bpt)
'(41 . 1.0)
'(42 . 1.0)
'(43 . 1.0)
(cons 50 (if (< ang pi) (- pi ang) (- (* 3 pi) ang)))
)
)
)
(princ)
)