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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Делить на measurement scale

Делить на measurement scale

Ответ
Поиск в этой теме
Непрочитано 29.01.2008, 08:03 #1
Делить на measurement scale
Бали
 
Инженер
 
Уфа
Регистрация: 23.03.2007
Сообщений: 197

Здравствуйте уважаемые знатоки!
Имею к вам вопрос по лиспу.
Суть вопроса - возможно ли используя параметр measurement scale размерной линии, задавать длинну размера по факту.
Т.е. допустим мне нужно построить размерную линию со значением 1250мм, measurement scale данной размлинии равен 200, соответственно в реале мне нужно отложить(ввести) 1250/200=6.25 единиц, как сделать так, чтобы вводимое число было равно 1250 (чтобы не делить в уме на 200 ), а лисп сам делил бы на measurement scale.
PS - Черчу в модели по старинке)
Просмотров: 21802
 
Непрочитано 29.01.2008, 08:16
#2
Кулик Алексей aka kpblc
Moderator

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


"Легко и в масштабе" живее всех живых?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 08:21
#3
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


спасибо, в поиске трудно такую тему найдти)
Бали вне форума  
 
Автор темы   Непрочитано 29.01.2008, 08:32
#4
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Извиняюсь конечно, но прогу не смог найди в этой теме.
Не поможете?(
Прога должно быть проще пареной репы, но самому написать не хватает знаний.
Бали вне форума  
 
Непрочитано 29.01.2008, 08:36
#5
Кулик Алексей aka kpblc
Moderator

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


Основной смысл указанной темы примерно таков: "Не мучайся и рисуй в М1:1".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 08:39
#6
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


я так и понял суть той темы, но мне позарез нужна прога, суть которой указана выше. Накидайте "неспеша" код если не влом), или кому не влом)
Бали вне форума  
 
Автор темы   Непрочитано 29.01.2008, 09:04
#7
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


(defun C:разм ()
pt1 (getpoint "\nУкажите величину размера: ")
C1 (Getvar "dimlfac")
(setq pt2 (/ pt1 C1))
(command "_dimlinear" "" pt2)
)


Сам попытался написать, типа этого вроде должно получится, но прога с ошибками и не работает, немогли бы вы поправить код?
Бали вне форума  
 
Непрочитано 29.01.2008, 09:19
#8
Кулик Алексей aka kpblc
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-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 09:27
#9
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


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

(defun C:разм ()
setq pt1 (getpoint "\nУкажите величину размера: ")


(command "_dimlinear" (getpoint) (/ pt1 (Getvar "dimlfac")))

)



все равно не работает
Бали вне форума  
 
Непрочитано 29.01.2008, 09:36
#10
Кулик Алексей aka kpblc
Moderator

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


А если без программы? Просто, вручную?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 09:43
#11
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


кстати да, вы неправильно поняли общую концепцию ) , dimlfac менять ненужно, он уже стоит по умолчанию в размерном стиле.
Еще раз попытаюсь объяснить суть вопроса: димлфак стоит 200, указываю точку, указываю направление, потом 1250. В размере должно будет проставленно значение 1250
Бали вне форума  
 
Непрочитано 29.01.2008, 09:50
#12
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Что значит "указываю направление"? Отрезок, что ли, надо нарисовать? А потом его измерить (проставить размер)?
Profan вне форума  
 
Автор темы   Непрочитано 29.01.2008, 09:54
#13
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Что значит "указываю направление"? Отрезок, что ли, надо нарисовать? А потом его измерить (проставить размер)?
размерную линию можно нарисовать указав точку начальную, направление, и длинну размлинии
Бали вне форума  
 
Непрочитано 29.01.2008, 09:56
#14
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Бали Посмотреть сообщение
кстати да, вы неправильно поняли общую концепцию ) , dimlfac менять ненужно, он уже стоит по умолчанию в размерном стиле.
Еще раз попытаюсь объяснить суть вопроса: димлфак стоит 200, указываю точку, указываю направление, потом 1250. В размере должно будет проставленно значение 1250
dimlfac -> 1. Тогда проставляемое значение будет равно введенному.
P.S. Если честно, я совсем запутался. Пойду работать...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 10:06
#15
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
dimlfac -> 1. Тогда проставляемое значение будет равно введенному.
P.S. Если честно, я совсем запутался. Пойду работать...
да все просто, я то в модели черчу, по "неправильному" методу, у меня куча размерных стилей. у каждого размстиля свой димлфак (эти димлфаки ни в коем случае нельзя менять). шоб получить размер 1250 (при димлфаке 200), мне нужно отложить 6.25 единиц (1250/200), тоесть сначало в уме разделить 1250 на 200, и только потом отложить эти проклятые 6.25 единиц.
Бали вне форума  
 
Непрочитано 29.01.2008, 10:11
#16
Кулик Алексей aka kpblc
Moderator

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


А если лечить не симптомы? А если попробовать рисовать все же в М1:1, а на печать выводить через листы? ИМХО быстрее получится и проще.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2008, 10:14
#17
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Для Бали.
Что-то логики в ваших рассуждениях нет. Если вы от точки хотите задать расстояние 1250, то размер будет 1250 только в том случае, если DIMLFAC=1. А у вас DIMLFAC=200. Тогда расстояние надо задавать в виде 1250/200. Но команда DIST покажет в этом случае 6.25
Profan вне форума  
 
Автор темы   Непрочитано 29.01.2008, 10:15
#18
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А если лечить не симптомы? А если попробовать рисовать все же в М1:1, а на печать выводить через листы? ИМХО быстрее получится и проще.
ваш совет конечно дельный, давно хочу переучиться, да только никто у нас в конторе так не чертит, поучиться не у кого, так что давайте к теме исследуемой программки вернёмся ))))
Бали вне форума  
 
Непрочитано 29.01.2008, 10:15
#19
Кулик Алексей aka kpblc
Moderator

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


Я не способен ее написать.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 10:21
#20
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


дак я ж её почти написал уже, надо немного поправить)
Бали вне форума  
 
Непрочитано 29.01.2008, 11:46
#21
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Код:
[Выделить все]
(defun C:Dimsc ( / pt1 pt2)
(getvar "dimlfac")
(setq pt1 (getpoint "\n_pt1: ") pt2 (getpoint "\n_pt2: ")
);_setq
(vl-cmdf "_dimaligned" pt1 pt2 " ")
);_defun
Holon вне форума  
 
Непрочитано 29.01.2008, 11:49
#22
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Цитата:
(getvar "dimlfac")
Это зачем и почему?
Profan вне форума  
 
Непрочитано 29.01.2008, 11:57
#23
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Я извеняюсь затупил я непонял сразу его проблеммы он должен в модели работать 1:1,
а потом уже использовать маштабируемость стилей, а (getvar "dimlfac") задает маштабируемость
текущего стиля
Holon вне форума  
 
Непрочитано 29.01.2008, 12:06
#24
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Нет, в данном виде: (getvar "dimlfac") - как это выражение в программе используется?
Вместо программы можно просто использовать команду _dimaligned, ведь DIMLFAC уже задана в размерном стиле.
Profan вне форума  
 
Автор темы   Непрочитано 29.01.2008, 12:25
#25
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Для Бали.
Что-то логики в ваших рассуждениях нет. Если вы от точки хотите задать расстояние 1250, то размер будет 1250 только в том случае, если DIMLFAC=1. А у вас DIMLFAC=200. Тогда расстояние надо задавать в виде 1250/200. Но команда DIST покажет в этом случае 6.25


от меня требуется задать 1250, а на 200 прога пусть сама делит шоб получилось 6.25
Бали вне форума  
 
Непрочитано 29.01.2008, 12:33
#26
Кулик Алексей aka kpblc
Moderator

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


Я теперь ни хрена не понял, прошу прощения за грубость. Вторая часть #8 пропала втуне?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 12:38
#27
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Я теперь ни хрена не понял, прошу прощения за грубость. Вторая часть #8 пропала втуне?
нужно шоб прога делила вводимое значение на димлфак.

(defun C:разм ()
(setq pt1 (getpoint "\nУкажите базовую точку: ")
pt2 (getpoint (/ pt1 (Getvar "dimlfac"))' (pt1)"\nЕщё раз: "))
(command "_dimlinear" pt1 pt2))

типа этого , но это не работает)
Бали вне форума  
 
Непрочитано 29.01.2008, 12:50
#28
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Если я правильно понял тебе нужно это:
(command "_dimlinear" (getpoint "Начало ") (getpoint "Конец ") "_t" )
p.s. - но лучше рисуй 1:1
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 29.01.2008, 12:59
#29
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Если я правильно понял тебе нужно это:
(command "_dimlinear" (getpoint "Начало ") (getpoint "Конец ") "_t" )
p.s. - но лучше рисуй 1:1


_t - это же принудительное изменение значения , оно будет не истинным.
Походу меня никто не понял(
еще раз попробую:
1)чтобы значение размера (при димлфаке 200) было равно 1250, мне нужно ввести 6.25(это без проги)
2) с прогой мне всего лишь надо ввести 1250, прога сама разделит 1250 на 200 и поймет что я хотел ввести 6.25 и соответственно вычертит размлинию длинной 6.25 и со значением 1250 и скажет мне еще спасибо)))))
Бали вне форума  
 
Непрочитано 29.01.2008, 13:03
#30
Кулик Алексей aka kpblc
Moderator

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


Сейчас меня закидают гнилыми пидоморами... dimlfac -> 1, dimscale -> 200.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2008, 13:11
#31
Zouss


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


я потрясён...
"вводимый размер" (порнуха какая-то) - это размерный текст, расстояние или что???
Кулик Алексей aka kpblc, прав - для образмеривания чертежа, построенного в масштабе достаточно настроить dimlfac (значение обратное масштабу чертежа) и dimscale, чтоб стрелки/черточки были нужного размера
Бали, картинку с похотелками давайте
Zouss вне форума  
 
Автор темы   Непрочитано 29.01.2008, 13:14
#32
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Сейчас меня закидают гнилыми пидоморами... dimlfac -> 1, dimscale -> 200.

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 и шоб результат такой же получился
Бали вне форума  
 
Непрочитано 29.01.2008, 13:24
#33
Zouss


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


если вы вторую размерную линию ставите на расстоянии 1250 от первой то размерный текст будет 1250 при dimlfac=1
если вы вторую размерную линию ставите на расстоянии 1250 от первой то размерный текст будет 6.25 при dimlfac=0.005
если вы вторую размерную линию ставите на расстоянии 6.25 от первой то размерный текст будет 1250 при dimlfac=200
Zouss вне форума  
 
Автор темы   Непрочитано 29.01.2008, 13:30
#34
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Zouss Посмотреть сообщение
если вы вторую размерную линию ставите на расстоянии 1250 от первой то размерный текст будет 1250 при dimlfac=1
если вы вторую размерную линию ставите на расстоянии 1250 от первой то размерный текст будет 6.25 при dimlfac=0.005
если вы вторую размерную линию ставите на расстоянии 6.25 от первой то размерный текст будет 1250 при dimlfac=200

правильно!!!!!!!!!!!
а смагете так: если вы вторую размерную линию ставите на "расстоянии" 1250 от первой то размерный текст будет 1250 при dimlfac=200
Бали вне форума  
 
Непрочитано 29.01.2008, 13:43
#35
Кулик Алексей aka kpblc
Moderator

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


При прямом переназначении текста.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2008, 13:48
#36
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Бали, вы запудрили мозги людям. Зачем вы измеряете пустоту в ваших примерах? Вам нужно НАЧЕРТИТЬ, скажем, отрезок длиной 6.25. После этого при DIMLFAC=200 размер этого отрезка окажется равным 1250. Вот этого некоторые и желают: чертить в масштабе. Да это и логично - сначала начертить, а потом образмерить. "Как чертить в масштабе" - вот ваш вопрос, а не "Делить на measurement scale"
Profan вне форума  
 
Непрочитано 29.01.2008, 13:52
#37
Zouss


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


Profan, +0,5
можно использовать несколько размерных стилей с разными значениями dimlfac
Zouss вне форума  
 
Автор темы   Непрочитано 29.01.2008, 14:04
#38
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Бали, вы запудрили мозги людям. Зачем вы измеряете пустоту в ваших примерах? Вам нужно НАЧЕРТИТЬ, скажем, отрезок длиной 6.25. После этого при DIMLFAC=200 размер этого отрезка окажется равным 1250. Вот этого некоторые и желают: чертить в масштабе. Да это и логично - сначала начертить, а потом образмерить. "Как чертить в масштабе" - вот ваш вопрос, а не "Делить на measurement scale"
Я так и черчу - но шоб было иногда попроще, хотел программно вычислять длины отрезков (сами наверно знаете как трудно с этими масштабами иногда приходится чертить)
Бали вне форума  
 
Непрочитано 29.01.2008, 14:04
#39
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


По сути можно вообще начертить как попало, но при образмеривании воспользоваться опцией "_Mtext" или "_Text" и ввести там то значение, которое нужно. Плевать, что в этом случае покажет команда "_Dist"...
Profan вне форума  
 
Автор темы   Непрочитано 29.01.2008, 14:10
#40
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
По сути можно вообще начертить как попало, но при образмеривании воспользоваться опцией "_Mtext" или "_Text" и ввести там то значение, которое нужно. Плевать, что в этом случае покажет команда "_Dist"...

нет, нет, мне важно что покажет _dist, нужно шоб он правильно показывал. Лисп написать нереально?
А может есть где нить форум где собираются чуваки которые чертят "неправильно-в-модели-в-масштабе-как-на-кульмане" и уже давно все проги нужные для облегчения "неправильно-в-модели-в-масштабе-как-на-кульмане-черчения" написали?
Бали вне форума  
 
Непрочитано 29.01.2008, 14:25
#41
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Вот мы и пришли к вопросу - как переопределить команду "_dist". Все одно и то же...
Profan вне форума  
 
Непрочитано 29.01.2008, 14:25
#42
Кулик Алексей aka kpblc
Moderator

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


Бали, если тебе не жалко, выложи свой "неправильный" файлик на всеобщее растерзание - может, чего и посоветуется. А таких форумов (где "неправильно-модель-кульман-масштаб-и-все-для-такого") лично я не знаю
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2008, 14:30
#43
TheBuTeK

преподавание
 
Регистрация: 28.09.2005
Москваград
Сообщений: 131
<phrase 1=


Как же, а был тут, помнится, орел по прозванию Horsy...
__________________
Добрым словом и пистолетом можно добиться гораздо большего, чем одним добрым словом.
TheBuTeK вне форума  
 
Автор темы   Непрочитано 29.01.2008, 14:32
#44
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Бали, если тебе не жалко, выложи свой "неправильный" файлик на всеобщее растерзание - может, чего и посоветуется. А таких форумов (где "неправильно-модель-кульман-масштаб-и-все-для-такого") лично я не знаю
задача чисто гипотетическая, но файлик все же выложу
Вложения
Тип файла: dwg
DWG 2004
Drawing1.dwg (52.1 Кб, 741 просмотров)
Бали вне форума  
 
Автор темы   Непрочитано 29.01.2008, 14:34
#45
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от TheBuTeK Посмотреть сообщение
Как же, а был тут, помнится, орел по прозванию Horsy...
я понимаю что идет война между "правильными" и "неправильными" автакадчиками, не на жись, а на смерть. но я в этой войне чиста партизан)))))
Бали вне форума  
 
Непрочитано 29.01.2008, 14:34
#46
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Бали Посмотреть сообщение
правильно!!!!!!!!!!!
а смагете так: если вы вторую размерную линию ставите на "расстоянии" 1250 от первой то размерный текст будет 1250 при dimlfac=200
Тогда так получается:
(defun c:dlf ( / a b)
(setq a (getpoint "Начало")
b (getpoint a "Конец"))
(command "_dimlinear" a b "_t" (rtos (distance a b)))
)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 29.01.2008, 14:36
#47
Кулик Алексей aka kpblc
Moderator

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


А ты работаешь в 2008-м, что ли?
---
То, что у меня получилось "по-быстрому"
Вложения
Тип файла: zip Drawing1.zip (60.7 Кб, 79 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 29.01.2008 в 14:42.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2008, 14:39
#48
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А ты работаешь в 2008-м, что ли?
Ты это кто?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 29.01.2008, 14:42
#49
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А ты работаешь в 2008-м, что ли?
Ну типа того, это есть плохо?
Бали вне форума  
 
Непрочитано 29.01.2008, 14:44
#50
Кулик Алексей aka kpblc
Moderator

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


Дима_, вопрос был к Бали. Я твоего поста еще не видел.
Бали, да в общем-то в 2008-м масса вещей сделана для того как раз, чтоб рисовать в М1:1, и при печати не иметь проблем с масштабируемыми вещами типа блоков, текстов и размеров. Посмотри мой пост #47 - я там выложил чего получилось.
Все, я испаримшись на некоторое время.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 14:49
#51
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А ты работаешь в 2008-м, что ли?
---
То, что у меня получилось "по-быстрому"
Тема обсуждается бурно, но толку нету, одна вода. Я до сих пор не уверен, что мой вопрос вообще понят кем либо.
Господа, меня прога интересует, суть проги в названии данной темы.
Вводим расстояние от первой точки 1250 единиц, а прога откладывает (1250/димлфак) единиц
Бали вне форума  
 
Непрочитано 29.01.2008, 14:54
#52
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Все пипиец! - распиши как для детей дебилов - последовательность действий программы. что в твоей интерпртитации значит "вводим расстояние" и "прога откладывает"???
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 29.01.2008, 15:03
#53
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Все пипиец! - распиши как для детей дебилов - последовательность действий программы. что в твоей интерпртитации значит "вводим расстояние" и "прога откладывает"???
Исходные данные: Dimlfac=200
Задание:
1) укажите базовую точку: поставил 0,0
2) какой размер хотите отложить? (1250, 3000, 640, etc): написал 1250

Результат:
размерная линия - одна точка на (0, 0) , вторая точка на (6.25, 0), и на ентой размерной линии написано 1250.


Еще проще не могу написать, русский язык плохо знаю))))
Бали вне форума  
 
Непрочитано 29.01.2008, 15:08
#54
Кулик Алексей aka kpblc
Moderator

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


А что должно показать _.dist?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.01.2008, 15:15
#55
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А что должно показать _.dist?
6.25
Бали вне форума  
 
Непрочитано 29.01.2008, 15:18
#56
Дима_

Продуман
 
Регистрация: 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)))
)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 29.01.2008, 15:22
#57
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Дима_ Посмотреть сообщение
На:
(defun c:dlf ( / a len)
(setq a (getpoint "Начало")
len (/ (getreal "Размер") (getvar "dimlfac")))
(command "_dimlinear" a (list (+ (nth 0 a) len) (nth 1 a)))
)
вот вот вот, осталось только чуть чуть, как направление указывать не продумал)
Бали вне форума  
 
Непрочитано 29.01.2008, 15:24
#58
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Опять пустоту меряют.
Вот что должно быть:
Исходные данные: DIMLFAC=200
Рисуем отрезок. Указываем первую точку и указываем расстояние 1250. Проставляем размер - получается 1250. Находим длину отрезка в свойствах - 1250. Команда "_list" показывает 1250. Команда "_dist" показывает 1250.
Выводим на печать и видим 6.25
Profan вне форума  
 
Непрочитано 29.01.2008, 15:32
#59
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Код:
[Выделить все]
(defun c:test ( / pt pt1)
  (setq
    pt
        (getpoint
          "\nSpecify first extension line origin or <select object>: "
        ) ;_ end of getpoint
    pt1 (polar
          pt
          0.
          (/ (getdist pt "\nSpecify second extension line origin: ")
             (getvar "dimlfac")
          ) ;_ end of /
        ) ;_ end of polar
  ) ;_ end of setq
  (setvar "texteval" 1)
  (setvar "cmdecho" 1)
  (command "_DIMLINEAR" pt pt1 pause)
) ;_ end of defun
CB вне форума  
 
Непрочитано 29.01.2008, 15:37
#60
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Бали Посмотреть сообщение
вот вот вот, осталось только чуть чуть, как направление указывать не продумал)
(defun c:dlf ( / napr a len)
(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))))
)

По моему ерунда какая-то, но соответствует ТЗ (или нет?)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 29.01.2008, 16:07
#61
Дима_

Продуман
 
Регистрация: 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))))
)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 29.01.2008, 16:50
#62
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от CB Посмотреть сообщение
Код:
[Выделить все]
(defun c:test ( / pt pt1)
  (setq
    pt
        (getpoint
          "\nSpecify first extension line origin or <select object>: "
        ) ;_ end of getpoint
    pt1 (polar
          pt
          0.
          (/ (getdist pt "\nSpecify second extension line origin: ")
             (getvar "dimlfac")
          ) ;_ end of /
        ) ;_ end of polar
  ) ;_ end of setq
  (setvar "texteval" 1)
  (setvar "cmdecho" 1)
  (command "_DIMLINEAR" pt pt1 pause)
) ;_ end of defun
почти то что мне надо, некорректно работает при попытке поставить размлинию вертикально. Еще одна просьба) , можно ли в эту прогу добавить возможность введения второй точки не численно , а еще и графически?
Бали вне форума  
 
Автор темы   Непрочитано 29.01.2008, 16:52
#63
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Ох и запарил я наверно всем мозги, но оно того стоит!!!!! Супер полезный инструмент рождается на свет, такое не кажный день случается однако.
Бали вне форума  
 
Непрочитано 29.01.2008, 18:07
#64
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Если я правильно понял ваши смутные рассуждения
Код:
[Выделить все]
(defun c:test ( / pt pt1)
  (if (and
    (setq pt (getpoint  "\nSpecify first extension line origin or <exit>: "))
    (setq pt1 (getpoint pt "\nSpecify second extension line origin or <exit>: "))
    (setq pt1 (polar pt (angle pt pt1)(/ (distance pt pt1)(getvar "dimlfac"))))
    (setvar "texteval" 1)
    (setvar "cmdecho" 1)
    )
  (command "_DIMLINEAR" "_non" pt "_non" pt1 pause)
    )
) ;_ end of defun
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 29.01.2008, 18:22
#65
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от VVA Посмотреть сообщение
Если я правильно понял ваши смутные рассуждения
Код:
[Выделить все]
(defun c:test ( / pt pt1)
  (if (and
    (setq pt (getpoint  "\nSpecify first extension line origin or <exit>: "))
    (setq pt1 (getpoint pt "\nSpecify second extension line origin or <exit>: "))
    (setq pt1 (polar pt (angle pt pt1)(/ (distance pt pt1)(getvar "dimlfac"))))
    (setvar "texteval" 1)
    (setvar "cmdecho" 1)
    )
  (command "_DIMLINEAR" "_non" pt "_non" pt1 pause)
    )
) ;_ end of defun
круто, но говоря графически я имел ввиду, что прога буит работать буквално также как просто комманда dimlinear)
Т.е. если вторая точка указывается графически(кликом), то она без изменений буит второй точкой размлинии
Бали вне форума  
 
Непрочитано 29.01.2008, 18:55
#66
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Код:
[Выделить все]
(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
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 29.01.2008, 19:03
#67
Бали

Инженер
 
Регистрация: 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

великий вам респект!!!!!!!!
еще один момент - ваша прога спрашивает про пересчет, возможно ли сделать так шоб не спрашивала, а сама догадалась, что если человеки ставят точку кликом, то значит пересчитывать ничего не надо! Хотя ваше прога и так реально превзошла мои ожидания!)))
Бали вне форума  
 
Непрочитано 29.01.2008, 19:12
#68
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Только если подскажешь как догадаться, что человеки ставят точку кликом
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 29.01.2008, 19:18
#69
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от VVA Посмотреть сообщение
Только если подскажешь как догадаться, что человеки ставят точку кликом

комманда dimlinear по похожей схеме работает, я сам в программировании ничего не смыслю, но чувствую что реально можно замутить ето
Бали вне форума  
 
Автор темы   Непрочитано 29.01.2008, 19:23
#70
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Кароче я хочу написанной вами прогой полностью исключить комманду dimlinear из своего использования, для этого она должна быть максимально похожа на оригинальный dimlinear
Бали вне форума  
 
Непрочитано 29.01.2008, 19:56
#71
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Все еще меряем пустоту. У меня тоже еще днем был простенький вариант без оптимизации:
Код:
[Выделить все]
 
(defun C:DAD ( / dlf pd1 pd2 dst)
(setq dlf (getvar "DIMLFAC"))
(setq pd1 (getpoint "\nНачало первой выносной линии: "))
(initget 3)
(setq pd2 (getpoint pd1 "\nНачало второй выносной линии или направление и расстояние: "))
(setq dst (* dlf (distance pd1 pd2)))
(princ "\nПоложение размерной линии: ")
(vl-cmdf "_dimaligned" pd1 pd2 "_t" dst pause)
(princ)
)
Подумал я, что это чепуха и не стал дорабатывать и выкладывать. Для чего строить размер в пустоте? Постройте сначала отрезок в масштабе 1:200, а потом образмерьте его.
Profan вне форума  
 
Автор темы   Непрочитано 29.01.2008, 20:00
#72
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Все еще меряем пустоту. У меня тоже еще днем был простенький вариант без оптимизации:
Код:
[Выделить все]
 
(defun C:DAD ( / dlf pd1 pd2 dst)
(setq dlf (getvar "DIMLFAC"))
(setq pd1 (getpoint "\nНачало первой выносной линии: "))
(initget 3)
(setq pd2 (getpoint pd1 "\nНачало второй выносной линии или направление и расстояние: "))
(setq dst (* dlf (distance pd1 pd2)))
(princ "\nПоложение размерной линии: ")
(vl-cmdf "_dimaligned" pd1 pd2 "_t" dst pause)
(princ)
)
Подумал я, что это чепуха и не стал дорабатывать и выкладывать. Для чего строить размер в пустоте? Постройте сначала отрезок в масштабе 1:200, а потом образмерьте его.
я часто размер в пустоте рисую - удобно бывает в отдельных случаях, и еще черчу "неправильно"
Бали вне форума  
 
Непрочитано 29.01.2008, 20:15
#73
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Так вот меня и интересует, как именно неправильно вы рисуете. Размер - это чепуха. Вот как в модели построить прямогольник из произвольной точки с размерами 1280х1024 в масштабе 1:200?
Profan вне форума  
 
Автор темы   Непрочитано 29.01.2008, 20:33
#74
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Так вот меня и интересует, как именно неправильно вы рисуете. Размер - это чепуха. Вот как в модели построить прямогольник из произвольной точки с размерами 1280х1024 в масштабе 1:200?
L enter 6.4 enter 5.12 enter 6.4 enter 5.12 enter))))))))))))))
Бали вне форума  
 
Непрочитано 29.01.2008, 20:59
#75
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Рисуете, значит, отрезками, в режиме ORTHO, направление указываете мышью, длины вычислили в уме. Я-то имел в виду "_rectangle". Но пусть так. Строите ведь вы, вычисляя в уме. Другие товарищи интересовались, как именно рисовать в масштабе, не вычисляя в уме. А вас, выходит дело, это не беспокоит. Не беспокоят абсолютные координаты, не беспокоят длины в единицах рисунка. Беспокоят только проставленные размеры?
Profan вне форума  
 
Непрочитано 29.01.2008, 21:14
#76
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Складывается впечатление, что вы сначала хотите отрисовать размеры по программе, а потом впихнуть в эти размеры объекты. Такого я еще не видел.
Profan вне форума  
 
Автор темы   Непрочитано 29.01.2008, 21:22
#77
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Рисуете, значит, отрезками, в режиме ORTHO, направление указываете мышью, длины вычислили в уме. Я-то имел в виду "_rectangle". Но пусть так. Строите ведь вы, вычисляя в уме. Другие товарищи интересовались, как именно рисовать в масштабе, не вычисляя в уме. А вас, выходит дело, это не беспокоит. Не беспокоят абсолютные координаты, не беспокоят длины в единицах рисунка. Беспокоят только проставленные размеры?
Да , вы почти правы, про проставленные размеры вы немного загнули, я тоже интересуюсь про невычесления в уме, и вариант с размлиниией прояснил бы суть искомого метода, ведь алгоритм данной проги можно было бы использовать и в dimaligned и в line и тд и тп.
Бали вне форума  
 
Непрочитано 29.01.2008, 21:34
#78
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,925
<phrase 1=


Цитата:
Сообщение от Бали Посмотреть сообщение
Да , вы почти правы, про проставленные размеры вы немного загнули, я тоже интересуюсь про невычесления в уме, и вариант с размлиниией прояснил бы суть искомого метода, ведь алгоритм данной проги можно было бы использовать и в dimaligned и в line и тд и тп.
Да нет Profan прав, вы получается зубы через анус лечите, теоретически можно, а вот на практике.
Переходите на черчение 1:1. А то на другую работу устроитесь там могут и не дать так извращаться, а вот наказать за задержку материально вполне могут.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 29.01.2008, 21:48
#79
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от zenon Посмотреть сообщение
Да нет Profan прав, вы получается зубы через анус лечите, теоретически можно, а вот на практике.
Переходите на черчение 1:1. А то на другую работу устроитесь там могут и не дать так извращаться, а вот наказать за задержку материально вполне могут.
А есть общеутвержденные стандарты пользования автокадом, или может ГОСТ есть такой))) шоб работадатель мог предъявлять типа я неправильно черчу))))
Ну да ладно, тема то не об этом, а о проге которую почти уже написали до конца. Еще чуть чуть осталось.
Бали вне форума  
 
Непрочитано 29.01.2008, 21:59
#80
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,925
<phrase 1=


Цитата:
Сообщение от Бали Посмотреть сообщение
А есть общеутвержденные стандарты пользования автокадом, или может ГОСТ есть такой))) шоб работадатель мог предъявлять типа я неправильно черчу))))
а он ничего предьявлять не будет, просто срежет оклад или попросит написать по собственному тк задерживаешь процесс дальнейшего проектирования, или хочешь вести проект весь один???
Пойми, что не только один человек работает над проектом, а команда.
В другом месте сослуживцы просто пошлют этот проект подальше и все.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 29.01.2008, 22:07
#81
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от zenon Посмотреть сообщение
а он ничего предьявлять не будет, просто срежет оклад или попросит написать по собственному тк задерживаешь процесс дальнейшего проектирования, или хочешь вести проект весь один???
Пойми, что не только один человек работает над проектом, а команда.
В другом месте сослуживцы просто пошлют этот проект подальше и все.
Вы конечно правы, но и нас поймите, нас то, если буим как вы чертить, тоже не похвалят, остальные коллеги чертят то "неправильно".
Вернёмся к нашим баранам!
Бали вне форума  
 
Непрочитано 29.01.2008, 22:08
#82
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Бали Посмотреть сообщение
А есть общеутвержденные стандарты пользования автокадом, или может ГОСТ есть такой))) шоб работадатель мог предъявлять типа я неправильно черчу))))
Ну да ладно, тема то не об этом, а о проге которую почти уже написали до конца. Еще чуть чуть осталось.
Корпоративные стандарты... Нет, еще раз я не выдержу
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2008, 22:09
#83
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,925
<phrase 1=


ну ну
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 29.01.2008, 22:10
#84
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Для Бали.
Нет, не могу я согласиться с вашей постановкой задачи. Объект первичен, размер вторичен. Если вы сможете нарисовать объект в модели в масштабе, размер будет диктоваться одной только перемнной DIMLFAC и для образмеривания не нужны будут никакие дополнительные программы. Сейчас я специально не упоминаю DIMSCALE. По-моему, вы сознательно уводите нас от сакраментального вопроса: "Как рисовать (чертить) в масштабе" подходом якобы с другой стороны.
Profan вне форума  
 
Автор темы   Непрочитано 29.01.2008, 22:13
#85
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Корпоративные стандарты... Нет, еще раз я не выдержу
если бы я хотел спорить что лучше а что хуже я б на ранее открытых темах спорил бы. А в даннной теме меня интересует лишь программка, так хорошо всё начиналось, почти добили прогу, и сорвалось!)))
Давайте добьем, а?
Бали вне форума  
 
Автор темы   Непрочитано 29.01.2008, 22:15
#86
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Для Бали.
Нет, не могу я согласиться с вашей постановкой задачи. Объект первичен, размер вторичен. Если вы сможете нарисовать объект в модели в масштабе, размер будет диктоваться одной только перемнной DIMLFAC и для образмеривания не нужны будут никакие дополнительные программы. Сейчас я специально не упоминаю DIMSCALE. По-моему, вы сознательно уводите нас от сакраментального вопроса: "Как рисовать (чертить) в масштабе" подходом якобы с другой стороны.
немогу понять ваших поводов для возмущения, ну допустим это есть метод черчения в масштабе, ну и что? Или вы принципиально не хотите облегчать жись таким как я?
Бали вне форума  
 
Непрочитано 29.01.2008, 22:24
#87
Profan


 
Регистрация: 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
Владимир Громов - это я.
Profan вне форума  
 
Автор темы   Непрочитано 29.01.2008, 22:37
#88
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Как раз наоборот. Достаточно посмотреть сюда:
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=25833zs
и сюда:
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=28264gr
Владимир Громов - это я.
Ну так помогите с вопросом)
Бали вне форума  
 
Непрочитано 29.01.2008, 22:41
#89
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,925
<phrase 1=


Цитата:
Сообщение от Бали Посмотреть сообщение
немогу понять ваших поводов для возмущения, ну допустим это есть метод черчения в масштабе, ну и что? Или вы принципиально не хотите облегчать жись таким как я?
Наоборот хотим облегчить.
Не давай голодному рыбы, а дай удочку, а лучше дать знание как сделать удочку (с)
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 30.01.2008, 08:22
#90
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


По моему начался новый виток темы "Легко и в масштабе" .
CB вне форума  
 
Непрочитано 30.01.2008, 08:36
#91
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Бали Посмотреть сообщение
немогу понять ваших поводов для возмущения, ну допустим это есть метод черчения в масштабе, ну и что? Или вы принципиально не хотите облегчать жись таким как я?
Лично я принципиально не хочу поощрять неверный (с моей точки зрения) метод работы. Вот фактически единственная причина, по которой я не стал ничего придумывать. Вполне возможно, я поступаю неправильно, но "сделанного не воротишь"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.01.2008, 08:54
#92
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Судя по масштабам (например, 1:200), Бали не машиностроитель, среди которых много сторонников чертить в масштабе...
Profan вне форума  
 
Непрочитано 30.01.2008, 08:59
#93
Кулик Алексей aka kpblc
Moderator

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


Как будто строители из другого теста...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.01.2008, 09:02
#94
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Лично я принципиально не хочу поощрять неверный (с моей точки зрения) метод работы. Вот фактически единственная причина, по которой я не стал ничего придумывать. Вполне возможно, я поступаю неправильно, но "сделанного не воротишь"

Вот человек хороший (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

всё классно работает, так как я хотел. есть конечно моменты которые можно доработать. А вы боялись))
Бали вне форума  
 
Непрочитано 30.01.2008, 09:30
#95
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Можно еще "_DIMLINEAR" заменить на "_DIMALIGNED" и тогда вообще райская жизнь наступит. Можно безбоязненно мерять пустоту, сгущать тьму.
Profan вне форума  
 
Автор темы   Непрочитано 30.01.2008, 09:34
#96
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Можно еще "_DIMLINEAR" заменить на "_DIMALIGNED" и тогда вообще райская жизнь наступит. Можно безбоязненно мерять пустоту, сгущать тьму.
можно на "_line" также заменить))
Бали вне форума  
 
Непрочитано 30.01.2008, 10:14
#97
Profan


 
Регистрация: 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)
)
Profan вне форума  
 
Автор темы   Непрочитано 30.01.2008, 10:19
#98
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Отрисовка отрезка с проставлением размера. За основу взята программа 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)
)
оригинал получше всетаки
Бали вне форума  
 
Непрочитано 30.01.2008, 10:29
#99
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Ну, тогда сами вставьте в оригинал "_line".
Profan вне форума  
 
Непрочитано 30.01.2008, 10:29
#100
Кулик Алексей aka kpblc
Moderator

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


> Бали: Ессно лучше. У тебя привязки не обнуляются
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.01.2008, 11:20
#101
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Ну, тогда сами вставьте в оригинал "_line".
(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
Бали вне форума  
 
Непрочитано 30.01.2008, 11:33
#102
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


А причем тогда здесь выносные линии? И я специально ограничился одним отрезком. При текущем размерном стиле нарисовали отрезок и тут же получили его размер. Это ведь все TESTы, а не законченные программы.
Profan вне форума  
 
Автор темы   Непрочитано 30.01.2008, 11:43
#103
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
А причем тогда здесь выносные линии? И я специально ограничился одним отрезком. При текущем размерном стиле нарисовали отрезок и тут же получили его размер. Это ведь все TESTы, а не законченные программы.


я уже сам запутался, хотется уже увидеть не тестовый код , а готовый инструмент. в оригинале VVA прога спрашивает 1) точку начальную 2) цифру или точку с пересчетом или точку без пересчета.
Нельзя ли шоб во втором шаге прога запрашивала только цифру или точку без пересчета?
Бали вне форума  
 
Непрочитано 30.01.2008, 11:53
#104
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Вот и думайте, что для вас важнее - нарисовать отрезок в масштабе или проставить размер. Это были бы две разные программы (или три). Однако, чертим мы не только отрезки, но и еще всякие загогулины. Как быть с ними? Будем продолжать в уме или на бумажке (калькуляторе) делить?
Profan вне форума  
 
Автор темы   Непрочитано 30.01.2008, 11:57
#105
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от Profan Посмотреть сообщение
Вот и думайте, что для вас важнее - нарисовать отрезок в масштабе или проставить размер. Это были бы две разные программы (или три). Однако, чертим мы не только отрезки, но и еще всякие загогулины. Как быть с ними? Будем продолжать в уме или на бумажке (калькуляторе) делить?
пост № 103 . есть варианты?
Бали вне форума  
 
Непрочитано 30.01.2008, 12:26
#106
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Ну, это как VVA распорядится.
Profan вне форума  
 
Непрочитано 30.01.2008, 13:54
#107
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Я свой вопрос задал в #68
Цитата:
Только если подскажешь как догадаться, что человеки ставят точку кликом
Поясню:
Когда в ответ на (getpoint) ты на клавиатуре вбиваешь цифру (расстояние), то тут используется метод "направление-рассояние". Направление берется по направлению курсора (орто, трассировка или от балды), а расстояние с клавиатуры. В результате getpoint все равно возвращает некую точку не зависимо от того, пнул в некое место экрана мышкой или ввел на клавиатуре. Вот я и спрашиваю, как узнать как юзер эту точку задал?
Можно попробовать отслеживать ввод с помошью grread, но там не будут работать объектные привязки. А показывать точки рядом с нужными даже при неправильном способе черчения я особого смысла не вижу.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 30.01.2008, 14:01
#108
Бали

Инженер
 
Регистрация: 23.03.2007
Уфа
Сообщений: 197


Цитата:
Сообщение от VVA Посмотреть сообщение
Я свой вопрос задал в #68

Поясню:
Когда в ответ на (getpoint) ты на клавиатуре вбиваешь цифру (расстояние), то тут используется метод "направление-рассояние". Направление берется по направлению курсора (орто, трассировка или от балды), а расстояние с клавиатуры. В результате getpoint все равно возвращает некую точку не зависимо от того, пнул в некое место экрана мышкой или ввел на клавиатуре. Вот я и спрашиваю, как узнать как юзер эту точку задал?
Можно попробовать отслеживать ввод с помошью grread, но там не будут работать объектные привязки. А показывать точки рядом с нужными даже при неправильном способе черчения я особого смысла не вижу.
Ну тогда вопросов больше нету, все ответы я получил, всем спасибо.
Бали вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Делить на measurement scale



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эмуляция нажатия клавиш из под 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