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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > помогите, 2+2=5, простая программа а не работает

помогите, 2+2=5, простая программа а не работает

Ответ
Поиск в этой теме
Непрочитано 13.12.2007, 15:24 #1
помогите, 2+2=5, простая программа а не работает
butlug
 
Регистрация: 13.12.2007
Сообщений: 1

простая программа по отрисовке детали по координатам, запускаю на исполнение - линии косые!, иногда почти все хорошо, но в одном месте вместо двух линий чертит одну по диагонали, пересматривать форум некогда, просто понять не могу - пишу словно 2+2, а получается 5
вводятся две точки - задают нааправление оси
и два числа с клавиатуры, первое толщина линии, второе габаритный размер детали от которой пропорционально определяются координаты другой
текст программы:
(defun c:d()
;секция ввода данных
(setq p1 (getpoint "\nEnter 1 center:"))
(setq p2 (getpoint p1 "\nEnter 2 center:"))
(setq w (getdist p1 "\nEnter width:"))
;секция промежуточных вычислений
(setq h (getdist "\nEnter ligth:"))
(setq a (angle p1 p2))
;
(setq a1 (polar p1 (+ a (/ pi 2)) (* h 0.012)))
(setq a2 (polar a1 a (* h 0.109)))
(setq a3 (polar a2 (+ a (/ pi 2)) (* h 0.006)))
(setq a4 (polar a3 a (* h 0.085)))
(setq a5 (polar a4 (+ a (/ pi 2)) (* h 0.036)))
(setq a6 (polar a5 a (* h 0.194)))
(setq a7 (polar a6 (+ a (/ pi 2)) (* h 0.03)))
(setq a8 (polar a7 a (* h 0.182)))
(setq a9 (polar a8 (- a (/ pi 2)) (* h 0.024)))
(setq a10 (polar a9 a (* h 0.018)))
(setq a11 (polar a10 (+ a (/ pi 2)) (* h 0.121)))
(setq a12 (polar a11 a (* h 0.267)))
(setq a13 (polar a12 (- a (/ pi 2)) (* h 0.14)))
(setq a14 (polar a13 a (* h 0.145)))
; отрисовка квадрата
(command "PLINE" p1 "w" w "" a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 p1 "CLOSE")
)
нет, просто интересно, вчера не работала, а сегодня рисует, из-за чего рисует косыми линиями?!
Просмотров: 3097
 
Непрочитано 13.12.2007, 15:30
#2
Дима_

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


привязки отключи (setvar "osmode" 0) будет всегда работать - не зависимо от масштаба
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.12.2007, 15:34
#3
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Наверное состояние привязок не плохо вначале запомнить, дабы, после обнуленя и выполнения программы, привязки вернуть к исходному
Хмурый вне форума  
 
Непрочитано 13.12.2007, 15:44
#4
Дима_

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


согласен - вариант классика:
(setq tmposmode (getvar "osmode"))
(setvar "osmode" 0)
.... действия без привязки
(setvar "osmode" tmposmode)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.12.2007, 16:09
#5
Александр Ривилис

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


А мне больше нравится вариант без отключения/включения привязок - с использованием "_none".
Александр Ривилис вне форума  
 
Непрочитано 13.12.2007, 16:39
#6
Дима_

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


2 Александр Ривилис - раскажи может и мне больше понравится.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 13.12.2007, 16:48
#7
Кулик Алексей aka kpblc
Moderator

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


А лично мне еще больше нравится вариант entmakex или (vla-add-lightweightpolyline)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.12.2007, 16:48
#8
Profan


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


Мне тоже такой способ нравится. Например, если определены точки pt1 и pt2, то можно выражение для отрисовки отрезка записать так:
Код:
[Выделить все]
 
(vl-cmdf "_LINE" "_none" pt1 "_none" pt2 "")
Profan вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > помогите, 2+2=5, простая программа а не работает

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа AlxdDike под а2004 работает? LLEXA AutoCAD 8 03.05.2011 21:41
кто работает в CadWork помогите!!! Артемка Прочее. Программное обеспечение 12 20.11.2009 22:55
Фундамент с динамическими нагрузками в Scad Tlelaxu SCAD 9 31.08.2007 10:44
Помогите!!! Raster Design не работает Галина Прочее. Программное обеспечение 2 30.07.2004 14:58