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

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

Поделить окружность на равные части..

Ответ
Поиск в этой теме
Непрочитано 17.05.2005, 00:33 #1
Поделить окружность на равные части..
PaSokaS
 
Регистрация: 17.05.2005
Сообщений: 13

Поделить окружность на равные части, точки деления отметить текстом(1,2,3...)
Мда.. може кто поможет найти или напишет ? зарание благодарю
Просмотров: 5650
 
Непрочитано 17.05.2005, 01:37
#2
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Выбирай что тебе больше подходит:

(defun C:div-circ1 ( / acapp adoc dlt htx i len
obj_list mdsp num obj pt txt)
(vl-load-com)
(or acapp (setq acapp (vlax-get-acad-object)))
(or adoc (setq adoc (vla-get-activedocument acapp)))
(cond ((= (vlax-variant-value
(vla-getvariable adoc "TILEMODE")) 1)
(or mdsp (setq mdsp (vla-get-modelspace adoc))))
((= (vlax-variant-value
(vla-getvariable adoc "TILEMODE")) 0)
(or mdsp (setq mdsp (vla-get-paperspace adoc)))))
(vla-startundomark adoc)
(setq htx (getvar "TEXTSIZE"))
(initget 7)
(setq num (getint "\nЧисло делений\n :" ))
(setq obj (vlax-ename->vla-object (car (entsel))))
(if (eq (vla-get-objectname obj) "AcDbCircle")
(progn
(setq i 1
len 0.
dlt (/ (* 2 pi (vla-get-radius obj)) num))
(repeat num
(setq pt (vlax-curve-getpointatdist obj len)
txt (vla-addtext mdsp (itoa i) (vlax-3d-point pt) htx)
obj_list (cons txt obj_list)
len (+ len dlt)
i (1+ i)))))
(mapcar 'vlax-release-object (append obj_list (list obj)))
(vla-regen adoc acactiveviewport)
(vla-endundomark adoc)
(princ)
)



(defun C:div-circ2 ( / acapp adoc an1 an2 arc dan dlt
htx i len mdsp num obj obj_list pt txt)
(vl-load-com)
(or acapp (setq acapp (vlax-get-acad-object)))
(or adoc (setq adoc (vla-get-activedocument acapp)))
(cond ((= (vlax-variant-value
(vla-getvariable adoc "TILEMODE")) 1)
(or mdsp (setq mdsp (vla-get-modelspace adoc))))
((= (vlax-variant-value
(vla-getvariable adoc "TILEMODE")) 0)
(or mdsp (setq mdsp (vla-get-paperspace adoc)))))
(vla-startundomark adoc)
(setq htx (getvar "TEXTSIZE"))
(initget 7)
(setq num (getint "\nЧисло делений\n :" ))
(setq obj (vlax-ename->vla-object (car (entsel))))
(if (eq (vla-get-objectname obj) "AcDbCircle")
(progn
(setq i 1
len 0.
dlt (/ (* 2 pi (vla-get-radius obj)) num)
an1 0.
an2 (/ (* pi 2) num)
dan an2)
(repeat num
(setq pt (vlax-curve-getpointatdist obj len)
arc (vla-addarc mdsp
(vla-get-center obj)(vla-get-radius obj) an1 an2)
txt (vla-addtext mdsp (itoa i) (vlax-3d-point pt) htx)
obj_list (cons arc (cons txt obj_list))
len (+ len dlt)
i (1+ i)
an1 (+ an1 dan)
an2 (+ an2 dan))
)))
(vla-delete obj)
(mapcar 'vlax-release-object (append obj_list (list obj)))
(vla-regen adoc acactiveviewport)
(vla-endundomark adoc)
(princ)
)
fixo вне форума  
 
Непрочитано 17.05.2005, 11:56
#3
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Вообще то писать ничего не надо. Есть стандартная команда _DIVIDE которая поделит вашу окружность на заданное количество сегментов и вставит по вашему усмотрению точки или любые блоки. А текст можно быстро расставить с помощюь _ARRAY (Polar - естественно).
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 17.05.2005, 23:50
#4
PaSokaS


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


Fatty громадное спасибо
PaSokaS вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Поделить окружность на равные части..

Реклама i