|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Делить на measurement scale
Инженер
Уфа
Регистрация: 23.03.2007
Сообщений: 197
|
||
Просмотров: 21802
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
"Легко и в масштабе" живее всех живых?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Основной смысл указанной темы примерно таков: "Не мучайся и рисуй в М1:1".
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
(defun C:разм ()
pt1 (getpoint "\nУкажите величину размера: ") C1 (Getvar "dimlfac") (setq pt2 (/ pt1 C1)) (command "_dimlinear" "" pt2) ) Сам попытался написать, типа этого вроде должно получится, но прога с ошибками и не работает, немогли бы вы поправить код? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Ну код и не должен работать. Во-первых, перед pt1 забыт (setq; во-вторых, поделить список (а точка является списком) на число так, как сделано, невозможно; в третьих, вариант (command "_.dimlinear" "" предполагает, что следующим будет указание образмериваемого объекта.
Откровенно говоря, я не очень понимаю сути проблемы. Допустим, dimlfac = 10. Вводим команду _.dimlear, указываем точку, потом направление (просто двинуть мышу), следом вводим значение, например, 100.5. Будет проставлен размер с фактическим значением 100.5, а отображаться будет 1005. Соответственно для твоего варианта надо dimlfac = 0.005; указать точку; в режиме орто (F8) указать направление; потом 1250. В размере будет проставлено значение 6,25 (если я верно понял общую концепцию).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
вы меня правильно поняли, но написать такую прогу мне не подсилу. не могу врубиться как показать направление.
(defun C:разм () setq pt1 (getpoint "\nУкажите величину размера: ") (command "_dimlinear" (getpoint) (/ pt1 (Getvar "dimlfac"))) ) все равно не работает |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
А если без программы? Просто, вручную?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
кстати да, вы неправильно поняли общую концепцию ) , dimlfac менять ненужно, он уже стоит по умолчанию в размерном стиле.
Еще раз попытаюсь объяснить суть вопроса: димлфак стоит 200, указываю точку, указываю направление, потом 1250. В размере должно будет проставленно значение 1250 |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Цитата:
P.S. Если честно, я совсем запутался. Пойду работать...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
да все просто, я то в модели черчу, по "неправильному" методу, у меня куча размерных стилей. у каждого размстиля свой димлфак (эти димлфаки ни в коем случае нельзя менять). шоб получить размер 1250 (при димлфаке 200), мне нужно отложить 6.25 единиц (1250/200), тоесть сначало в уме разделить 1250 на 200, и только потом отложить эти проклятые 6.25 единиц.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
А если лечить не симптомы? А если попробовать рисовать все же в М1:1, а на печать выводить через листы? ИМХО быстрее получится и проще.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Для Бали.
Что-то логики в ваших рассуждениях нет. Если вы от точки хотите задать расстояние 1250, то размер будет 1250 только в том случае, если DIMLFAC=1. А у вас DIMLFAC=200. Тогда расстояние надо задавать в виде 1250/200. Но команда DIST покажет в этом случае 6.25 |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
ваш совет конечно дельный, давно хочу переучиться, да только никто у нас в конторе так не чертит, поучиться не у кого, так что давайте к теме исследуемой программки вернёмся ))))
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Я не способен ее написать.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
от меня требуется задать 1250, а на 200 прога пусть сама делит шоб получилось 6.25 |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Я теперь ни хрена не понял, прошу прощения за грубость. Вторая часть #8 пропала втуне?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
(defun C:разм () (setq pt1 (getpoint "\nУкажите базовую точку: ") pt2 (getpoint (/ pt1 (Getvar "dimlfac"))' (pt1)"\nЕщё раз: ")) (command "_dimlinear" pt1 pt2)) типа этого , но это не работает) |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
_t - это же принудительное изменение значения , оно будет не истинным. Походу меня никто не понял( еще раз попробую: 1)чтобы значение размера (при димлфаке 200) было равно 1250, мне нужно ввести 6.25(это без проги) 2) с прогой мне всего лишь надо ввести 1250, прога сама разделит 1250 на 200 и поймет что я хотел ввести 6.25 и соответственно вычертит размлинию длинной 6.25 и со значением 1250 и скажет мне еще спасибо))))) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Сейчас меня закидают гнилыми пидоморами... dimlfac -> 1, dimscale -> 200.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
я потрясён...
"вводимый размер" (порнуха какая-то) - это размерный текст, расстояние или что??? Кулик Алексей aka kpblc, прав - для образмеривания чертежа, построенного в масштабе достаточно настроить dimlfac (значение обратное масштабу чертежа) и dimscale, чтоб стрелки/черточки были нужного размера Бали, картинку с похотелками давайте |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
1)Command: DIMLINEAR 2)Specify first extension line origin or <select object>: "задал здесь базовую точку" 3)Specify second extension line origin: 6.25 "дернул мышкой в требуемую сторону и сказал компу шоб на 6.25 единиц от первой точки он поставил вторую" 4)Specify dimension line location or [Mtext/Text/Angle/Horizontal/Vertical/Rotated]: "ну и мышкой определил положение размлини по высоте" 5)Dimension text = 1250 "это сказал комп" это если использовать команду dimlinear. Я же хочу шоб в пункте №3 вместо 6.25 написать 1250 и шоб результат такой же получился |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
если вы вторую размерную линию ставите на расстоянии 1250 от первой то размерный текст будет 1250 при dimlfac=1
если вы вторую размерную линию ставите на расстоянии 1250 от первой то размерный текст будет 6.25 при dimlfac=0.005 если вы вторую размерную линию ставите на расстоянии 6.25 от первой то размерный текст будет 1250 при dimlfac=200 |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
правильно!!!!!!!!!!! а смагете так: если вы вторую размерную линию ставите на "расстоянии" 1250 от первой то размерный текст будет 1250 при dimlfac=200 |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
При прямом переназначении текста.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Бали, вы запудрили мозги людям. Зачем вы измеряете пустоту в ваших примерах? Вам нужно НАЧЕРТИТЬ, скажем, отрезок длиной 6.25. После этого при DIMLFAC=200 размер этого отрезка окажется равным 1250. Вот этого некоторые и желают: чертить в масштабе. Да это и логично - сначала начертить, а потом образмерить. "Как чертить в масштабе" - вот ваш вопрос, а не "Делить на measurement scale"
|
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
|
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
нет, нет, мне важно что покажет _dist, нужно шоб он правильно показывал. Лисп написать нереально? А может есть где нить форум где собираются чуваки которые чертят "неправильно-в-модели-в-масштабе-как-на-кульмане" и уже давно все проги нужные для облегчения "неправильно-в-модели-в-масштабе-как-на-кульмане-черчения" написали? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Бали, если тебе не жалко, выложи свой "неправильный" файлик на всеобщее растерзание - может, чего и посоветуется. А таких форумов (где "неправильно-модель-кульман-масштаб-и-все-для-такого") лично я не знаю
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
задача чисто гипотетическая, но файлик все же выложу
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
(defun c:dlf ( / a b) (setq a (getpoint "Начало") b (getpoint a "Конец")) (command "_dimlinear" a b "_t" (rtos (distance a b))) )
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
А ты работаешь в 2008-м, что ли?
--- То, что у меня получилось "по-быстрому"
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 29.01.2008 в 14:42. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Дима_, вопрос был к Бали. Я твоего поста еще не видел.
Бали, да в общем-то в 2008-м масса вещей сделана для того как раз, чтоб рисовать в М1:1, и при печати не иметь проблем с масштабируемыми вещами типа блоков, текстов и размеров. Посмотри мой пост #47 - я там выложил чего получилось. Все, я испаримшись на некоторое время.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
Господа, меня прога интересует, суть проги в названии данной темы. Вводим расстояние от первой точки 1250 единиц, а прога откладывает (1250/димлфак) единиц |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Все пипиец! - распиши как для детей дебилов - последовательность действий программы. что в твоей интерпртитации значит "вводим расстояние" и "прога откладывает"???
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
Задание: 1) укажите базовую точку: поставил 0,0 2) какой размер хотите отложить? (1250, 3000, 640, etc): написал 1250 Результат: размерная линия - одна точка на (0, 0) , вторая точка на (6.25, 0), и на ентой размерной линии написано 1250. Еще проще не могу написать, русский язык плохо знаю)))) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
А что должно показать _.dist?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
На:
(defun c:dlf ( / a len) (setq a (getpoint "Начало") len (/ (getreal "Размер") (getvar "dimlfac"))) (command "_dimlinear" a (list (+ (nth 0 a) len) (nth 1 a))) )
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
|
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Опять пустоту меряют.
Вот что должно быть: Исходные данные: DIMLFAC=200 Рисуем отрезок. Указываем первую точку и указываем расстояние 1250. Проставляем размер - получается 1250. Находим длину отрезка в свойствах - 1250. Команда "_list" показывает 1250. Команда "_dist" показывает 1250. Выводим на печать и видим 6.25 |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
(setq a (getpoint "Начало") len (/ (getreal "Размер") (getvar "dimlfac"))) (initget "влево вправо вверх вниз") (setq napr (getkword "\n Тип профиля? [влево/вправо/вверх/вниз]")) (if (= napr "влево") (command "_dimlinear" a (list (- (nth 0 a) len) (nth 1 a)))) (if (= napr "вправо") (command "_dimlinear" a (list (+ (nth 0 a) len) (nth 1 a)))) (if (= napr "вверх") (command "_dimlinear" a (list (nth 0 a) (+ (nth 1 a) len)))) (if (= napr "вниз") (command "_dimlinear" a (list (nth 0 a) (- (nth 1 a) len)))) ) По моему ерунда какая-то, но соответствует ТЗ (или нет?)
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Тоже самое но "направлением":
(defun c:dlf ( / orto napr a len) (setq orto (getvar "orthomode")) (setvar "orthomode" 1) (setq a (getpoint "Начало") len (/ (getreal "Размер") (getvar "dimlfac")) napr (getpoint a "Направление")) (setvar "orthomode" orto) (if (> (nth 0 a) (nth 0 napr)) (command "_dimlinear" a (list (- (nth 0 a) len) (nth 1 a)))) (if (< (nth 0 a) (nth 0 napr)) (command "_dimlinear" a (list (+ (nth 0 a) len) (nth 1 a)))) (if (< (nth 1 a) (nth 1 napr)) (command "_dimlinear" a (list (nth 0 a) (+ (nth 1 a) len)))) (if (> (nth 1 a) (nth 1 napr)) (command "_dimlinear" a (list (nth 0 a) (- (nth 1 a) len)))) )
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Если я правильно понял ваши смутные рассуждения
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
великий вам респект!!!!!!!! еще один момент - ваша прога спрашивает про пересчет, возможно ли сделать так шоб не спрашивала, а сама догадалась, что если человеки ставят точку кликом, то значит пересчитывать ничего не надо! Хотя ваше прога и так реально превзошла мои ожидания!))) |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Только если подскажешь как догадаться, что человеки ставят точку кликом
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
|
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Все еще меряем пустоту. У меня тоже еще днем был простенький вариант без оптимизации:
Код:
|
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
я часто размер в пустоте рисую - удобно бывает в отдельных случаях, и еще черчу "неправильно"
|
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
|
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Рисуете, значит, отрезками, в режиме ORTHO, направление указываете мышью, длины вычислили в уме. Я-то имел в виду "_rectangle". Но пусть так. Строите ведь вы, вычисляя в уме. Другие товарищи интересовались, как именно рисовать в масштабе, не вычисляя в уме. А вас, выходит дело, это не беспокоит. Не беспокоят абсолютные координаты, не беспокоят длины в единицах рисунка. Беспокоят только проставленные размеры?
|
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
|
|||
![]() |
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,925
![]() |
Цитата:
Переходите на черчение 1:1. А то на другую работу устроитесь там могут и не дать так извращаться, а вот наказать за задержку материально вполне могут.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
Ну да ладно, тема то не об этом, а о проге которую почти уже написали до конца. Еще чуть чуть осталось. |
|||
![]() |
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,925
![]() |
Цитата:
Пойми, что не только один человек работает над проектом, а команда. В другом месте сослуживцы просто пошлют этот проект подальше и все.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
Вернёмся к нашим баранам! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Цитата:
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Для Бали.
Нет, не могу я согласиться с вашей постановкой задачи. Объект первичен, размер вторичен. Если вы сможете нарисовать объект в модели в масштабе, размер будет диктоваться одной только перемнной DIMLFAC и для образмеривания не нужны будут никакие дополнительные программы. Сейчас я специально не упоминаю DIMSCALE. По-моему, вы сознательно уводите нас от сакраментального вопроса: "Как рисовать (чертить) в масштабе" подходом якобы с другой стороны. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
если бы я хотел спорить что лучше а что хуже я б на ранее открытых темах спорил бы. А в даннной теме меня интересует лишь программка, так хорошо всё начиналось, почти добили прогу, и сорвалось!)))
Давайте добьем, а? |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Как раз наоборот. Достаточно посмотреть сюда:
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=25833zs и сюда: http://www.caduser.ru/cgi-bin/f1/board.cgi?t=28264gr Владимир Громов - это я. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
|
|||
![]() |
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,925
![]() |
Цитата:
Не давай голодному рыбы, а дай удочку, а лучше дать знание как сделать удочку (с)
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
![]() |
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
По моему начался новый виток темы "Легко и в масштабе" .
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Цитата:
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Как будто строители из другого теста...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
Вот человек хороший (VVA) сваял прогу отличную (defun c:test ( / pt pt1) (if (and (setq pt (getpoint "\nНачало первой выносной линии <выход>: ")) (if (setq pt1 (getpoint pt "\nНачало второй выносной линии (с пересчетом dimlfac) <покажу точку без перечсета>: ")) (setq pt1 (polar pt (angle pt pt1)(/ (distance pt pt1)(getvar "dimlfac")))) t ) ) (progn (setvar "texteval" 1) (setvar "cmdecho" 1) (command "_DIMLINEAR" "_non" pt ) (if pt1 (command "_non" pt1)) (while (> (getvar "CMDACTIVE") 0)(command pause)) ) ) ) ;_ end of defun всё классно работает, так как я хотел. есть конечно моменты которые можно доработать. А вы боялись)) |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Отрисовка отрезка с проставлением размера. За основу взята программа VVA.
(defun c:test ( / pt pt1) (if (and (setq pt (getpoint "\nНачальная точка <выход>: ")) (if (setq pt1 (getpoint pt "\nКонечная точка (с пересчетом dimlfac) <покажу точку без пересчета>: ")) (setq pt1 (polar pt (angle pt pt1)(/ (distance pt pt1)(getvar "dimlfac")))) t ) ) (progn (setvar "texteval" 1) (command "_LINE" "_non" pt "_non" pt1 "") (princ "\nУкажите положение размерной линии: ") (command "_DIMALIGNED" pt pt1 pause) ) ) (princ) ) |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
> Бали: Ессно лучше. У тебя привязки не обнуляются
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
(defun c:test ( / pt pt1);_ основа взята у VVA)
(if (and (setq pt (getpoint "\nНачало первой выносной линии <выход>: ")) (if (setq pt1 (getpoint pt "\nНачало второй выносной линии (с пересчетом dimlfac) <покажу точку без перечсета>: ")) (setq pt1 (polar pt (angle pt pt1)(/ (distance pt pt1)(getvar "dimlfac")))) t ) ) (progn (setvar "texteval" 1) (setvar "cmdecho" 1) (command "_line" "_non" pt ) (if pt1 (command "_non" pt1)) (while (> (getvar "CMDACTIVE") 0)(command pause)) ) ) ) ;_ end of defun |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
я уже сам запутался, хотется уже увидеть не тестовый код , а готовый инструмент. в оригинале VVA прога спрашивает 1) точку начальную 2) цифру или точку с пересчетом или точку без пересчета. Нельзя ли шоб во втором шаге прога запрашивала только цифру или точку без пересчета? |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Вот и думайте, что для вас важнее - нарисовать отрезок в масштабе или проставить размер. Это были бы две разные программы (или три). Однако, чертим мы не только отрезки, но и еще всякие загогулины. Как быть с ними? Будем продолжать в уме или на бумажке (калькуляторе) делить?
|
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Я свой вопрос задал в #68
Цитата:
Когда в ответ на (getpoint) ты на клавиатуре вбиваешь цифру (расстояние), то тут используется метод "направление-рассояние". Направление берется по направлению курсора (орто, трассировка или от балды), а расстояние с клавиатуры. В результате getpoint все равно возвращает некую точку не зависимо от того, пнул в некое место экрана мышкой или ввел на клавиатуре. Вот я и спрашиваю, как узнать как юзер эту точку задал? Можно попробовать отслеживать ввод с помошью grread, но там не будут работать объектные привязки. А показывать точки рядом с нужными даже при неправильном способе черчения я особого смысла не вижу.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Инженер Регистрация: 23.03.2007
Уфа
Сообщений: 197
|
Цитата:
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Эмуляция нажатия клавиш из под AutoLisp-a | Supermax | LISP | 89 | 19.11.2007 14:40 |
Linetype Scale для слоев | Werwolf | AutoCAD | 17 | 16.07.2007 14:45 |
Dim Scale Overall ??? | Xo66iT | AutoCAD | 7 | 24.03.2006 17:37 |
ACAD2006. Знаки после запятой в окне Viewport Scale Control | =mik= | AutoCAD | 2 | 16.06.2005 10:57 |
zoom scale при выводе на печать | Rauf | AutoCAD | 3 | 22.01.2005 23:43 |