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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > глюк с началом координат

глюк с началом координат

Ответ
Поиск в этой теме
Непрочитано 02.02.2007, 20:44 #1
глюк с началом координат
Sleekka
 
-
 
Москва
Регистрация: 24.07.2005
Сообщений: 1,335

Помогите кто знает:
Если делать _copybase и вводить ручками 0,0
потом _pasteclip и вводить ручками 0,0
то все ок,
если же использовать макросы вида:
^C^C(vl-cmdf "_.copybase" '(0 0 0) (ssget) "");
^C^C(command "_.pasteclip" "0,0,0")
^C^C(setq ss (ssget));_.copybase;0,0;!ss;;
^C^C(vl-cmdf "_.pasteclip" '(0 0 0));
^C^C_.pasteclip;0,0,0;
получалась сбивка при вставке, причем макросы без использования лиспа давали сбивку, а макросы с лиспом не давали, я уже думал что победил ету оказию, дак нет теперь и с лиспом тоже, (происходит на тяжелых чертежах).
В чем может быть проблема?
Просмотров: 2463
 
Непрочитано 02.02.2007, 22:00
#2
VNKTOP

проектировщик
 
Регистрация: 05.12.2006
Калининград
Сообщений: 337


Попробуй перед вставкой отключить всю объектную привязку (там кажись какойто сис. переменной соответствующие значение присвоить)
VNKTOP вне форума  
 
Непрочитано 02.02.2007, 23:44
#3
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


Вариант с польз. функциями, работать у Вас без них не будет.
Код:
[Выделить все]
(defun C:cc (/ ss)
  (apel-com
    '(progn
      (APEL-SETVAR (list (list "CMDECHO" 0)))
      (if
       (not (setq ss (ssget "I")))
       (setq ss (ssget))
      )
      (if
       ss
       (progn
	(VL-CMDF "_.UCS" "_W")
	(VL-CMDF "_.copybase" (list 0 0 0) ss "")
	(VL-CMDF "_.UCS" "_P")
       )
      )
     )
  )
)

(defun c:vv ()
  (apel-com '(progn
	      (APEL-SETVAR (list (list "CMDECHO" 0)))
	      (VL-CMDF "_.UCS" "_W")
	      (VL-CMDF "_.pasteclip" (list 0 0 0))
	      (VL-CMDF "_.UCS" "_P")
	     )
  )
)
Вариант облегченный (но и более уязвимый):
Код:
[Выделить все]
(defun C:cc (/ ss old_s)
  (getvar old_s (getvar "CMDECHO"))
  (SETVAR "CMDECHO" 0)
  (if
    (not (setq ss (ssget "I")))
     (setq ss (ssget))
  )
  (if
    ss
     (progn
       (VL-CMDF "_.UCS" "_W")
       (VL-CMDF "_.copybase" (list 0 0 0) ss "")
       (VL-CMDF "_.UCS" "_P")
     )
  )
  (SETVAR "CMDECHO" old_s)
  (princ)
)
Код:
[Выделить все]
(defun c:vv (/ old_s)
  (getvar old_s (getvar "CMDECHO"))
  (SETVAR "CMDECHO" 0)
  (VL-CMDF "_.UCS" "_W")
  (VL-CMDF "_.pasteclip" (list 0 0 0))
  (VL-CMDF "_.UCS" "_P")
  (SETVAR "CMDECHO" old_s)
)
Соответсно сс - копировать , а vv - вставить
__________________
apel.fas
Apelsinov вне форума  
 
Автор темы   Непрочитано 05.02.2007, 21:55
#4
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Спасибо за лекарство, а если можно про причину в 2х словах.
Sleekka вне форума  
 
Непрочитано 06.02.2007, 19:03
#5
VNKTOP

проектировщик
 
Регистрация: 05.12.2006
Калининград
Сообщений: 337


да там вроде при выполнении сценариев приоритет отдается объектной привязке
VNKTOP вне форума  
 
Непрочитано 12.02.2007, 19:08
#6
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Можно проще без отключения объектных привязок: перед вводом координат вставить _none. Т.е. строка макроса:
Код:
[Выделить все]
^C^C_.pasteclip;0,0,0;
будет выгледеть так:
Код:
[Выделить все]
^C^C_.pasteclip;_none;0,0,0;
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > глюк с началом координат