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

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

линия

Ответ
Поиск в этой теме
Непрочитано 16.12.2004, 18:32 #1
линия
Ден
 
Сообщений: n/a

Не подскажите как сделать так, чтобы указав на линии точку линия разбивалась на две
Просмотров: 3300
 
Непрочитано 16.12.2004, 19:08
#2
MIP

инженер
 
Регистрация: 13.12.2004
Минск
Сообщений: 496


Есть прекрасная команда _break (разорвать), которая разрывает линейный примитив (объект) на две части. Она вынесена кнопкой в стандартной панели инструментов "Редактирование" в двух вариантах "Разорвать в точке" и "Разорвать", (только если у Вас нормально преведенный Автокад) Вам подходит первый вариант. Если такой кнопки в панели нет то иожно создать свою с макросом ^C^C_break \_f \@ Еще вариант выбрать из выпадающего меню "Редактирование", это стандартная команда _break (разорвать) и тогда прийдется вводить две точки разрыва , в Вашем случае это будет одна и та же точка. Здесь следует помнить, что по умолчанию при выборе первой, берется точка выбора объекта и сразу запрашивается вторая точка разрыва, если нужно переопределить первую точку следует по правому клику выбрать из выпавшего меню строку "Первая точка" и указать ее на примитиве.
__________________
Сейчас такая знаний бездна
доступна всякому уму,
что стало спорить бесполезно
и глупо думать самому.
MIP вне форума  
 
Непрочитано 17.12.2004, 01:35
#3
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Если только линию пополам, попробуй это:
(vl-load-com)

(defun C:lineby_2 ()
(setq oldeh (getvar "CMDECHO"))
(setq oldos (getvar "OSMODE"))
(setvar "CMDECHO" 0)
(setvar "OSMODE" 0)
(command "_.undo" "_g")
(setq adoc
(vla-get-activedocument
(vlax-get-acad-object)))

(setq en (car (entsel "\nВЫБРАТЬ ЛИНИЮ : >>> "))
lobj (vlax-ename->vla-object en))
(if (= (vla-get-objectname lobj) "AcDbLine")
(progn
(setq cpt (vlax-curve-getpointatparam lobj
(/ (vla-get-length lobj) 2.0)))
(command "_.break" en cpt cpt)
(vlax-release-object lobj)
)
(princ "Это не линия - сбой программы"))
(command "_.undo" "_e")
(setvar "CMDECHO" oldeh)
(setvar "OSMODE" oldos)
(vla-regen adoc acActiveViewport)
(princ)
)
(C:lineby_2)
(princ)

~'O'~
Олег (jr.) вне форума  
 
Непрочитано 21.12.2004, 00:40
#4
ден


 
Сообщений: n/a


Идея заключалась в том, чтобы линию можно было рвать в любом месте
 
 
Непрочитано 21.12.2004, 01:30
#5
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


*^C^C_break \_f \@
Vova вне форума  
 
Непрочитано 21.12.2004, 09:03
#6
AY


 
Сообщений: n/a


Когда-то давно употреблял "навоял" такой шедевр и даже раза два им пользовался:
Код:
[Выделить все]
(defun c:br1 ( / t1)
(setq t1 (getpoint "\nТочка:"))
(command "_break" t1 "_f" t1 "@" )
)
Мне кажется, что это ближе всего к вопросу автора темы.
Впрочем этот вариант по понятным причинам "неразборчив в выборе своих объектов.
 
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > линия

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

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