что то я не совсем понимаю...
Есть два различных пути, один - чистая математика, т.е. без использования объектов автокада, второй - графический, т.е. возможны дополнительные построения, обращения к чертежу и.т.д...
Если идти графическим путем, то все это решается гараздо проще! Например, (BPOLY <point>) вернет внешний контур вокруг точки или nil, если будет контур, достаточно замерить расстояния от всех вершин до исходной полилинии, относительно которой проверяем местоположение точки...
Кода, всего на несколько строк!
Если идти путем, что нельзя создавать временные объекты, то проще анализировать, в какую сторону направлен вектор на ближайшей точке контура, если вправо и полилиния по часовой, то внутри...
Правда, здесь возможен случай, что ближайшая точка на вершине, но тогда можно анализировать два соседних сегмента...
А третий вариант, самый интересный, мы передаем в программу список точек и кривизны (тангенс высоты дуги), для этого случая, думаю проще всего переписать встроенные в автокад функции работы с контурами, но для всех контуров, это будет сложно...