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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как задать точку вставки элемента?

Как задать точку вставки элемента?

Ответ
Поиск в этой теме
Непрочитано 20.10.2005, 10:44 #1
Как задать точку вставки элемента?
Александер
 
Регистрация: 15.06.2005
Сообщений: 184

Такой вопрос:
вставляю некий объект в рисунок, (точку вставки пользователь указывает, например р1(x1,y1,z1)) надо этот элемент еще раз вставить, точка вставки тоже указывает пользователь, но координаты y,z должны совпадать с координатами y,z первой точки. Желательно чтобы вторая точка вставки отслеживалась как-то. (например как при черчении отрезка идет отслеживание).
Просмотров: 6995
 
Непрочитано 20.10.2005, 11:11
#2
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


А если так:
"_copy" <Enter> @ <расстояние по "Х">, 0, 0 <Enter>?
Лентяй вне форума  
 
Автор темы   Непрочитано 20.10.2005, 13:42
#3
Александер


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


Спасибо, можно и так, практически то что нужо
Александер вне форума  
 
Непрочитано 20.10.2005, 17:38
#4
VetalBY


 
Регистрация: 16.05.2005
г. Минск
Сообщений: 276


То ли я чего-то не понял, то ли понял все правильно и можно вот так:
Код:
[Выделить все]
(setq p1 (getpoint "\nУкажите первую точку"))
(setq p2 (getpoint "\nУкажите вторую точку" p1))
Далее преобразуешь p2 (или p1)
VetalBY вне форума  
 
Автор темы   Непрочитано 21.10.2005, 08:26
#5
Александер


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


> VetalBY - понял не совсем правильно, т.е. мне надо было точку задать указанием машью (это в твоем примере и описано), но при этом координата "у" должна быть фиксированной и равной координате "у" первой точки. и чтобы после указания первой точки, вторая отслеживалась.
вариант Лентяя очень даже подошел, даже получилось проще чем я расчитывал
Александер вне форума  
 
Непрочитано 21.10.2005, 10:16
#6
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Цитата:
Александер: вариант Лентяя очень даже подошел, даже получилось проще чем я расчитывал
Душевно рад. Вам же по такому поводу следует ежеденно утренне и нощно возносить Господу - подателю просветления и мудрости благодарствие за то, что я есть.
Лентяй вне форума  
 
Автор темы   Непрочитано 21.10.2005, 13:26
#7
Александер


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


еще вопросик в дагонку
как пользоваться сист. переменной lastpoint.
последней точкой является почка вторая вставки, как можно вставить кусок текста с точкой вставки, смещенной относительно последней точки, координаты которой записаны в сист. пер. last point?
что-то вроде

(setq a10 (getvar "lastpoint"))
(setq a11 (polar a10 (* pi 0.6) 1017))
(command "_text" "_m" a10 ang txt)

так не выходит.... ошибку выдает.
Александер вне форума  
 
Непрочитано 21.10.2005, 15:06
#8
VetalBY


 
Регистрация: 16.05.2005
г. Минск
Сообщений: 276


А так:
Код:
[Выделить все]
 (setq hold (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))))
     (if (zerop hold)
       (command "_text" "_m" a11 <Высота текста> ang txt) 
       (command "_text" "_m" a11 ang txt) 
 )
И что за ошибку выдает?
VetalBY вне форума  
 
Непрочитано 21.10.2005, 15:13
#9
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


А если так:
Код:
[Выделить все]
 (setq hold (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))) 
     (if (zerop hold) 
       (command "_text" "_m" a11 <Высота текста> ang txt "") 
       (command "_text" "_m" a11 ang txt "") 
 )
:?:
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.10.2005, 15:17
#10
VetalBY


 
Регистрация: 16.05.2005
г. Минск
Сообщений: 276


Идет проверка, в текущем текстовом стиле установлена высота?
Далее ветвление, если высота не задана, значит ее нало задать в комманде text, иначе задавать не надо
VetalBY вне форума  
 
Непрочитано 21.10.2005, 15:28
#11
VetalBY


 
Регистрация: 16.05.2005
г. Минск
Сообщений: 276


<Высота текста> - это переменная либо константа
VetalBY вне форума  
 
Непрочитано 21.10.2005, 15:41
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Я не про это. Я про то, что в конце команды у меня стоит дополнительный Enter - "", завершающий "_.dtext"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.10.2005, 15:52
#13
Александер


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


видимо я суть проблемы описал не точно, раз все меня не поняли
проблема не с написанием текста, высота у меня учитывается и проверяется, проблема в задании точки вставки.
а ошибка вот какая:

"Неверная точка"
далее пишет "функция отменена; сброс после ошибки"

суть вопроса - как использую сист. переменную lastpoint можно задать координаты точке вставке текста. текст надо вставить в точке, смещенной от lastpoint на некую величину:

для этого и пишу, примерно так:

(setq a10 (getvar "lastpoint")) - присваиваю переменной a10 координаты последней точки.

(setq a11 (polar a10 (* pi 0.6) 1017)) - пытаюсь другой точке (точка куда надо вставить текст) задать координаты.

(command "_text" "_m" a10 ang txt) - пытаюсь вставить текст в нужной точке

и не получается т.к. точка вставки не нравиться - как ее правильно задать???
Александер вне форума  
 
Непрочитано 21.10.2005, 16:07
#14
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Давай соберем все воедино, а?
Код:
[Выделить все]
(setq a10 (getvar "lastpoint")) 
(setq a11 (polar a10 (* pi 0.6) 1017)
      text_height 3 ; Эту строку сделал для проверки
      ang 0           ; Эту строку сделал для проверки
      txt "test"      ; Эту строку сделал для проверки
      )
 (setq hold (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))) 
     (if (zerop hold) 
       (command "_text" "_m" a11 text_height ang txt "") 
       (command "_text" "_m" a11 ang txt "") 
 )
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.10.2005, 17:21
#15
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 424


см. ниже
ытя вне форума  
 
Непрочитано 21.10.2005, 17:22
#16
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 424


Цитата:
Сообщение от Александер
(command "_text" "_m" a10 ang txt) - пытаюсь вставить текст в нужной точке
д.б.:
(command "_text" "_m" a10 "" ang txt "")
или (command "_text" "_m" a10 height ang txt "")
ытя вне форума  
 
Непрочитано 21.10.2005, 23:40
#17
VetalBY


 
Регистрация: 16.05.2005
г. Минск
Сообщений: 276


Цитата:
Сообщение от kpblc
Я не про это. Я про то, что в конце команды у меня стоит дополнительный Enter - "", завершающий "_.dtext"
oops, сразу не заметил, только он там абсолютно лишний, он повторит последнюю комманду :shock:
и не "_.dtext", а "_.text", а это существенная разница.
Пятница.... :?

ЗЫ: Да я же поэт!
VetalBY вне форума  
 
Непрочитано 22.10.2005, 00:00
#18
VetalBY


 
Регистрация: 16.05.2005
г. Минск
Сообщений: 276


Цитата:
Сообщение от Александер
для этого и пишу, примерно так:

(setq a10 (getvar "lastpoint")) - присваиваю переменной a10 координаты последней точки.

(setq a11 (polar a10 (* pi 0.6) 1017)) - пытаюсь другой точке (точка куда надо вставить текст) задать координаты.
Здесь все правильно. (крЫс пример привел, все пашет)
Приведи лучше свой код точный, может чего и подскажем...

ЗЫ обрати внимание, ты текст вставляешь в точку a10, а не a11 (а если перед (command "_text" ....) было (setq a10 "test"))
Посмотри внимательнее свой код...
VetalBY вне форума  
 
Автор темы   Непрочитано 24.10.2005, 11:10
#19
Александер


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


Всем спасибо, разобрался

просто забыл паузу поставить:

(command "_.copy" a1 a2 a3 a4 a5 a6 a7 a8 "" a1 pause) - в этой строке
(setq a10 (getvar "lastpoint"))
(setq a11 (polar a10 (* pi 0.4) 1017))
(command "_.text" "_m" a11 ang txt )

а все остальное было правильно
Александер вне форума  
 
Непрочитано 24.10.2005, 11:27
#20
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


> VetlaBY : :?:
Цитата:
oops, сразу не заметил, только он там абсолютно лишний, он повторит последнюю комманду
и не "_.dtext", а "_.text", а это существенная разница.
для 2005-го не повторяет, а именно завершает. Если тестировалось на 2006, то там не знаю, но у меня идет завершение команды.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как задать точку вставки элемента?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск