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

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

Как рисовать стрелки?

Ответ
Поиск в этой теме
Непрочитано 24.11.2007, 15:26 #1
Как рисовать стрелки?
XYZ
 
mechanical engineering
 
Moscow
Регистрация: 19.07.2006
Сообщений: 35

Как быстро рисовать стрелки (односторонняя: отрезок + наконечник стрелы) разной длины и наклона на плоскости в ACAD? Использовать Leader не всегда возможно, т.к. приходится бороться с полочкой, которая не нужна (когда Leader поворачиваешь, образуется полочка, даже если ее раньше удалось истребить).
Опытные, помогите плиз.
Просмотров: 42048
 
Непрочитано 24.11.2007, 15:44
#2
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Какая версия Автокада?
Александр Бауск вне форума  
 
Автор темы   Непрочитано 24.11.2007, 15:51
#3
XYZ

mechanical engineering
 
Регистрация: 19.07.2006
Moscow
Сообщений: 35


Версии 2005 и 2007
XYZ вне форума  
 
Непрочитано 24.11.2007, 16:05
#4
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Вот выдрал подпрограмму из своей надстройки. Вставляет стрелку в виде лидера.

Код:
[Выделить все]
Public Sub InsertArrow1()
On Error Resume Next

Dim KWord As String
Dim KWords As String
Dim Point1, Point2 As Variant
Dim Ldr As AcadLeader
Dim Angle1, ToScale As Double
Dim annotationObject As AcadEntity
Dim Pnts(0 To 5) As Double

'Определяем параметры вставки
'ToScale = Settings.GetScale

'KWords = "C O CR D A"
'ThisDrawing.Utility.InitializeUserInput 2, KWords
'KWord = ThisDrawing.Utility.GetKeyword("Введите тип стрелки [Closed/Open/Dot/CRoss/Anchor] <Open>:")

AGAIN:
'Запрашиваем точку вставки
On Error Resume Next
Err.Clear
Point1 = Nothing
Point1 = ThisDrawing.Utility.GetPoint(Prompt:="Введите точку начала стрелки или <Выход>:")
If Userio.CheckKey(VK_ESCAPE) Then Exit Sub
If IsError(Point1(0)) Then Exit Sub


'Запрашиваем вторую точку вставки
Err.Clear
Point2 = Nothing
Point2 = ThisDrawing.Utility.GetPoint(Point1, "Введите точку конца стрелки или <Выход>:")
If Userio.CheckKey(VK_ESCAPE) Then Exit Sub
If IsError(Point2(0)) Then Exit Sub 'Вывалиться совсем

On Error GoTo 0
'Угол наклона будущей вставки от оси 0x
Angle1 = ThisDrawing.Utility.AngleFromXAxis(Point1, Point2)

Dim Arr(0) As Variant
Set annotationObject = Nothing
Pnts(0) = Point2(0): Pnts(1) = Point2(1): Pnts(2) = Point2(2)
Pnts(3) = Point1(0): Pnts(4) = Point1(1): Pnts(5) = Point1(2)
Set Ldr = ThisDrawing.ModelSpace.AddLeader(Pnts, annotationObject, acLineWithArrow)

'Select Case KWord
'Case "", "O"
'Ldr.ArrowheadBlock = "E2Open"
'Case "C"
'Ldr.ArrowheadBlock = "rtrt"
'Case "CR"
'Ldr.ArrowheadBlock = "E2Cross1"
'Case "D"
'Ldr.ArrowheadBlock = "E2Dot"
'Case "A"
'Ldr.ArrowheadBlock = "E2Anchor1"
'End Select

'Set Arr(0) = Ldr
'Updaters.SetStandardsByScale Arr, ToScale
On Error Resume Next
GoTo AGAIN
End Sub
Александр Бауск вне форума  
 
Непрочитано 24.11.2007, 16:14
#5
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Так, ладно.
Могу вот дать инсталлятор, если вы не обломаетесь ставить. На 2005 автокад.
Вложения
Тип файла: zip Alto 1.1 - ArrowModified.zip (1.63 Мб, 574 просмотров)
Александр Бауск вне форума  
 
Непрочитано 24.11.2007, 16:23
#6
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Установить и в автокаде написать команду ALTOLOAD
После этого можете щелкать по кнопке с зелененькой стрелочкой или команда E2ARR
Александр Бауск вне форума  
 
Непрочитано 24.11.2007, 16:38
#7
Огурец

Profan
 
Регистрация: 27.04.2005
Москва
Сообщений: 6,760
Отправить сообщение для Огурец с помощью Skype™


Если вручную, то стрелка чертится полилинией с переменной шириной.
Огурец вне форума  
 
Непрочитано 24.11.2007, 17:02
#8
Кулик Алексей aka kpblc
Moderator

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


Или блоком. Или Aligned-размером с подавленными выносными, отключенным 2-м элементом и переопределенным текстом Вариантов масса.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.11.2007, 23:49 Спасибо за советы
#9
XYZ

mechanical engineering
 
Регистрация: 19.07.2006
Moscow
Сообщений: 35


Александр Бауск, спасибо, но у меня с программированием туго, не осилю.
А вот полилинию применил на практике. Понравилось.
XYZ вне форума  
 
Непрочитано 24.11.2007, 23:59
#10
Кулик Алексей aka kpblc
Moderator

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


Полилиния хороша до первого применения overkill.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.11.2007, 00:07
#11
Jerald

Конструктор
 
Регистрация: 04.04.2007
Киев
Сообщений: 536


А я на глазок прикидую
Jerald вне форума  
 
Непрочитано 25.11.2007, 05:08
#12
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Это чем не нравится?
Код:
[Выделить все]
^C^C_leader;\\;;_n
Krieger вне форума  
 
Непрочитано 25.11.2007, 05:58
#13
Profan


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Полилиния хороша до первого применения overkill.
А что с ней сделает overkill?
Profan вне форума  
 
Непрочитано 25.11.2007, 06:06
#14
Profan


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


Вот программа изменения ширины произвольного сегмента полилинии:
Код:
[Выделить все]
 
  ;**************** lw_width.lsp *********************************
  ;  Изменение начальной и конечной ширины
  ;  произвольного сегмента полилинии.
  ;  Автор  Евгений Елпанов.
(defun C:LW_WIDTH(/ ENDWIDTH GR LW PAR STARTWIDTH)
(vl-load-com)
(vla-StartUndoMark(vla-get-activedocument(vlax-get-acad-object)))
(setq lw(entsel "\n Выберите нужный сегмент в полилинии. "))
(if(and lw(=(cdr(assoc 0(entget(car lw)))) "LWPOLYLINE"))
(progn(setq par(vlax-curve-getParamAtPoint(car lw)
(vlax-curve-getClosestPointTo(car lw)(cadr lw)))
 lw(vlax-ename->vla-object(car lw)))
(princ "\n Задайте ширину начала сегмента.\t")
(vla-GetWidth lw(fix par) 'StartWidth 'EndWidth)
(while(and(setq gr(grread 5))(=(car gr) 5))
(vla-SetWidth lw(fix par)
(setq StartWidth(*(distance(cadr gr)
(vlax-curve-getClosestPointTo lw(cadr gr))) 2.))EndWidth))
(if(=(car gr) 2)(vla-SetWidth lw(fix par)
(setq StartWidth(atof(strcat(princ(vl-list->string(cdr gr)))
(getstring)))) EndWidth))
(princ "\n Задайте ширину конца сегмента.\t")
(while(and(setq gr(grread 5))(=(car gr) 5))
(vla-SetWidth lw(fix par) StartWidth(*(distance(cadr gr)
(vlax-curve-getClosestPointTo lw(cadr gr))) 2.)))
(if(=(car gr) 2)(vla-SetWidth lw(fix par) StartWidth
(atof(strcat(princ(vl-list->string(cdr gr)))(getstring))))))
(princ "\n Ничего не выбрано или объект не полилиния.\t"))
(vla-EndUndoMark(vla-get-activedocument(vlax-get-acad-object)))
(princ)
)
Почему-то VVA не захотел включить ее в свой пакет программ для работы с полилинией.
Profan вне форума  
 
Непрочитано 25.11.2007, 15:15
#15
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Ну так возьмите инсталятор. Там экзешник с пакетом, который я у себя в конторе использую, сырой, правда, все руки не дойдут до ума довести. Программировать не надо. Заодно сможете им масштаб отображения контролировать.
Александр Бауск вне форума  
 
Непрочитано 26.11.2007, 12:48
#16
Hans667

сети
 
Регистрация: 12.04.2007
SPb
Сообщений: 539


Цитата:
Сообщение от Александр Бауск Посмотреть сообщение
Так, ладно.
Могу вот дать инсталлятор, если вы не обломаетесь ставить. На 2005 автокад.
а на последущие версии ничего похожего нет?
Hans667 вне форума  
 
Непрочитано 26.11.2007, 14:49
#17
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


>а на последущие версии ничего похожего нет?

Не-а. С нового года буду серьезно заниматься.
Хочу забабахать туда менеджер слоев, всякую хрень для CAD-менеджерства типа пользовательских конвертеров и шаблонов слоев и свойств, упрощенную быструю выборку типа "1) выделить рамкой все, 2) выбросить из выделения все размеры, 3) а теперь оставим только вертикальные линии", средства для централизованной настройки и так далее.
Александр Бауск вне форума  
 
Непрочитано 27.11.2007, 09:21
#18
Yura

ЦТП, котельные, отопление, вентиляция
 
Регистрация: 21.02.2007
Кишинев
Сообщений: 548
<phrase 1= Отправить сообщение для Yura с помощью Skype™


У меня все проще: просто блок вставляю с соответствующим масштабом...
Вложения
Тип файла: dwg
DWG 2000
стрелка.dwg (36.1 Кб, 20543 просмотров)
Yura вне форума  
 
Непрочитано 27.11.2007, 10:27
#19
misht

градостроительство
 
Регистрация: 11.01.2007
С-Пб
Сообщений: 77
<phrase 1=


а в Download-ах выкладывали неплохую динамическую стрелку, я ей пользуюсь, если быстро нада...
misht вне форума  
 
Автор темы   Непрочитано 27.11.2007, 20:24 Стрелка- невидимка
#20
XYZ

mechanical engineering
 
Регистрация: 19.07.2006
Moscow
Сообщений: 35


Yura, в ACAD-2007 ни чего не вижу. Стрелка- невидимка.
XYZ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как рисовать стрелки?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работать с дигитайзером в AutoCad? Yusuf AutoCAD 21 11.09.2010 13:38
на злобу дня !! zaza-noza Разное 63 22.05.2009 15:10
Как можно рисовать мультилинией для кювета(те _|_|_|_|_|_) ESA AutoCAD 14 21.02.2008 12:00
Как сделать правильный чертеж pk77 Разное 64 03.04.2007 16:36
Как упорядочить наложение штриховок,полилиний (Draworder)? mmmx Программирование 7 13.07.2006 10:13