Подскажите по Autolisp. Объекты не встают на заданые места на чертеже.
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Подскажите по Autolisp. Объекты не встают на заданые места на чертеже.

Подскажите по Autolisp. Объекты не встают на заданые места на чертеже.

Ответ
Поиск в этой теме
Непрочитано 26.06.2011, 08:42 #1
Подскажите по Autolisp. Объекты не встают на заданые места на чертеже.
cmrd
 
Регистрация: 26.06.2011
Сообщений: 2

Здраствуйте. Подскажите в чем может быть дело. Я совсем новичек в autolisp`e, но ничего сложного программировать и не собираюсь.
Вообщем ситуация следующая. Имеется программа, которая собирает данные из листа Ecxel2003 и далее с помощью команды mtext заносит их на чертеж (чертеж сохранен в формате acad2004, работаю в ACAD2008). Вопрос вообщем то не по программе, но если надо могу выложить. При выполнение программы очень часто текстовые данные, как будто сползают со своих мест, появляются где-то около заданной точки(наверно в пределах до 20мм). При том что в программе коордиты заданы жестко числами. Еще я заметил, что если в области чертежа, где происходит вывод текстовых данных, нарисован например отрезок, то он каким-то образом тоже влияет на смещение. Вообщем, если в районе вывода находятся какие-либо объекты, текстовые данные никогда не встанут на заданные места. Но даже на чистом листе, это случается очень часто. Что за танцы такие? Как вылечить?

P.S. Помогает удаление всего что есть на экране, потом regenall и загрузка програмы по новой. Хватает на один раз и то не каждый раз получается. Доходит до смешного. Вроде все встает на свои места кроме одной надписи. Перемещаю строку в программе отвечающую за вывод этой надписи и она начинает появлятся уже в другом месте. Какое-то рандомное программирование получается.
Просмотров: 2060
 
Непрочитано 26.06.2011, 09:07
#2
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Привязку отключай, во время выполнения программы.....
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 27.06.2011, 04:24
#3
cmrd


 
Регистрация: 26.06.2011
Сообщений: 2


Цитата:
Сообщение от DEM Посмотреть сообщение
Привязку отключай, во время выполнения программы.....
Спасибо тебе большое. Помогло. Это у меня первый опыт написания подобной программы. Ни когда бы не догодался, что это может влиять таким образом. Не мышкой же тыкаю ). Я уже не знал на что и думать, кучу времени убил, давно бы уже дописал прогу. Наступило счастье - теперь все четко .

P.S. Тему можно закрывать и удалять. Раз все так примитивно просто оказалось.
cmrd вне форума  
 
Непрочитано 27.06.2011, 06:52
#4
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Цитата:
Сообщение от cmrd Посмотреть сообщение
Спасибо тебе большое. Помогло. Это у меня первый опыт написания подобной программы.
Это типичная ошибка, когда пользуются командными методами, так что привязку, ортогональность и сетку лучше на время выполнения программы отключать, а значения сохранять в локальных переменных, перед выходом из программы, значения возвращаются в исходный вид.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 26.08.2011, 13:42
#5
FSergio


 
Регистрация: 26.08.2011
Сообщений: 20


А как именно это сделать програмно?
FSergio вне форума  
 
Непрочитано 26.08.2011, 14:01
#6
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от FSergio Посмотреть сообщение
А как именно это сделать програмно?
Была хорошая тема http://forum.dwg.ru/showthread.php?t...F0%F3%E3%E8%E5 Почитайте...
А с п.36 начните изучение
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 26.08.2011, 14:03
#7
Psyakrev


 
Регистрация: 17.06.2010
Сообщений: 438


Цитата:
Сообщение от FSergio Посмотреть сообщение
А как именно это сделать програмно?
Код:
[Выделить все]
 (setq old_osmode (getvar "osmode"))
(setvar "osmode" 0)
<< что-то делаем>>
(setvar "osmode" old_osmode)
Psyakrev вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Подскажите по Autolisp. Объекты не встают на заданые места на чертеже.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некоторые объекты на чертеже нельзя перенести Wind AutoCAD 7 08.04.2011 18:44
Как привести все объекты на чертеже в 3d тело? red-nicolas AutoCAD 3 03.03.2011 20:24
Помогите понять как связаны объекты в чертеже KennyMckormik AutoCAD 5 08.04.2010 13:19
Как программно выделить (подсветить) объекты на текущи чертеже? Michigan Программирование 2 26.05.2009 22:09
Все объекты в чертеже на 0.000 по Z ? wehrwolf AutoCAD 21 08.06.2008 00:41