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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Мультвыноска - отсутствует контточка на конце выноски (стрелки)

Мультвыноска - отсутствует контточка на конце выноски (стрелки)

Ответ
Поиск в этой теме
Непрочитано 12.04.2024, 09:21 #1
Мультвыноска - отсутствует контточка на конце выноски (стрелки)
Sege
 
Санкт-Петебург
Регистрация: 05.07.2007
Сообщений: 110

Не могу понять, пришел чертеж, а там все мультивыноски без конточки (точки привязки) на конце стрелки
Т.е. стрелка не имеет точку привязки
Пример во во вложении

Вложения
Тип файла: dwg
DWG 2010
выноска.dwg (67.5 Кб, 18 просмотров)

Просмотров: 1261
 
Непрочитано 12.04.2024, 09:54
#2
CaMoCAD


 
Регистрация: 25.03.2008
Зелик
Сообщений: 1,600


Выноска вставлена в дальние края с координатой по Z = -7.3660E+88
У Вас бинокль слабый.
__________________
* Буква "ё" не используется в тексте исключительно в связи с требованиями ЕСКД.
CaMoCAD вне форума  
 
Непрочитано 12.04.2024, 09:57
#3
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,401


Выноска летает в 3D. Можно разбить и посмотреть координаты концов линий
AlexCondor вне форума  
 
Автор темы   Непрочитано 12.04.2024, 10:09
#4
Sege


 
Регистрация: 05.07.2007
Санкт-Петебург
Сообщений: 110


Всем спасибо ))) Про бинокль отдельно оценил шутку )
Применяю FLATTEN - разбивает нафиг выноску
Как можно сбросить в выноске координату Z на 0 без разбития выноски?
Sege вне форума  
 
Непрочитано 12.04.2024, 10:52
1 | #5
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


(defun C:z0 (/ en_dat en_set # z10 z11 en new_en_set ## a10 a11)
(setq en_set (ssget "X" '((0 . "MULTILEADER"))))
(setq # 0)
(repeat (sslength en_set)
(setq en (ssname en_set #))
(setq en_dat (entget en))
(setq z10 (subst 0.0000 (car (reverse (assoc 10 en_dat))) (assoc 10 en_dat)))
(setq z11 (subst 0.0000 (car (reverse (assoc 11 en_dat))) (assoc 11 en_dat)))
(setq en_dat (subst z10 (assoc 10 en_dat) en_dat))
(setq en_dat (subst z11 (assoc 11 en_dat) en_dat))
(entmod en_dat)
(setq # (+ 1 #))
) ;_ end of repeat
)
Nike вне форума  
 
Автор темы   Непрочитано 12.04.2024, 13:48
#6
Sege


 
Регистрация: 05.07.2007
Санкт-Петебург
Сообщений: 110


Nike (alert "Спасибо")

Только еще по 110 лучше пройтись и тоже обнулить z
Sege вне форума  
 
Непрочитано 12.04.2024, 13:54
#7
Хмурый


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


Цитата:
Сообщение от Sege Посмотреть сообщение
Как можно сбросить в выноске координату Z на 0 без разбития выноски?
https://forum.dwg.ru/showthread.php?t=25474
Хмурый вне форума  
 
Автор темы   Непрочитано 12.04.2024, 14:02
#8
Sege


 
Регистрация: 05.07.2007
Санкт-Петебург
Сообщений: 110


тут еще z координаты сидит и дальше
((-1 . <Имя объекта: 1477e803d50>) (0 . "MULTILEADER") (330 . <Имя объекта: 1477e7fe9f0>) (5 . "29D") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "ДГГС_текст") (48 . 200.0) (100 . "AcDbMLeader") (270 . 2) (300 . "CONTEXT_DATA{") (40 . 1.0) (10 3170.83 1810.17 -7.36599e+88) (41 . 500.0) (140 . 200.0) (145 . 1.0) (174 . 5) (175 . 5) (176 . 2) (177 . 0) (290 . 1) (304 . "H=15м ") (11 0.0 0.0 1.0) (340 . <Имя объекта: 1477e803c90>) (12 4821.83 2410.17 -7.36599e+88) (13 1.0 0.0 0.0) (42 . 0.0) (43 . 757.601) (44 . 1600.13) (45 . 1.0) (170 . 1) (90 . -1073741824) (171 . 3) (172 . 5) (91 . -1027028792) (141 . 1.5) (92 . 0) (291 . 1) (292 . 1) (173 . 0) (293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 4731.35 5324.22 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . "LEADER{") (290 . 1) (291 . 1) (10 4842.83 1810.17 -7.36599e+88) (11 -1.0 0.0 0.0) (90 . 1) (40 . 20.0) (304 . "LEADER_LINE{") (10 5297.94 3713.34 -7.36599e+88) (91 . 0) (170 . 1) (92 . -1056964608) (340 . <Имя объекта: 0>) (171 . -2) (40 . 0.0) (341 . <Имя объекта: 0>) (93 . 0) (305 . "}") (271 . 0) (303 . "}") (272 . 9) (273 . 9) (301 . "}") (340 . <Имя объекта: 1477e7ff960>) (90 . 384996) (170 . 1) (91 . -1056964608) (171 . -2) (290 . 1) (291 . 0) (41 . 20.0) (342 . <Имя объекта: 1477e803c40>) (42 . 200.0) (172 . 2) (343 . <Имя объекта: 1477e803c90>) (173 . 5) (95 . 5) (174 . 1) (175 . 0) (92 . -1073741824) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0) (43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 3) (45 . 1.0) (271 . 0) (272 . 9) (273 . 9) (295 . 0))
Sege вне форума  
 
Непрочитано 12.04.2024, 15:06
| 1 #9
Кулик Алексей aka kpblc
Moderator

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


А если еще вспомнить, что у мультивыноски может быть несколько линий выносок, ситуация станет немного напряжней ИМХО. Может, попытаться в ActiveX покопаться?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.04.2024, 16:52
#10
Dinoxromniy


 
Регистрация: 14.09.2020
Санкт-Петербург
Сообщений: 395


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Может, попытаться в ActiveX покопаться?
не очень понятно, как это работает, кмк - сменить z координату просто так нельзя, потому как примитив плоский наподобие полилинии, поэтому проще сдвинуть в 3d пространстве всю выноску на величину z координаты со знаком минус. При этом линия выноски в приложенном файле нумеруется с единицы, у меня при создании - закономерно с нуля, разбираться почему так опять же некогда, что влечет за собой моветон - On Error Resume Next.
За исключением перечисленных оговорок - да вроде худо-бедно работает, у кого есть желание возиться - облагородят код, я полагаю.
Код:
[Выделить все]
Sub dwg_leaders()

Dim ldrObj As AcadMLeader
Dim i As Integer
Dim sset As AcadSelectionSet
Dim FilterType(0) As Integer
Dim FilterData(0) As Variant
Dim vrtCoo As Variant
Dim dblPnt1(0 To 2) As Double, dblPnt2(0 To 2) As Double
On Error Resume Next
ActiveDocument.SelectionSets.Add ("Q3")
Set sset = ActiveDocument.SelectionSets.Item("Q3")
sset.Clear
FilterType(0) = 0
FilterData(0) = "MULTILEADER"


sset.SelectOnScreen FilterType, FilterData
For i = 0 To sset.count - 1
Set ldrObj = sset.Item(i)
        For j = 0 To 2
                vrtCoo = Empty
                vrtCoo = ldrObj.GetLeaderLineVertices(j)
                If Not IsEmpty(vrtCoo) Then
                dblPnt1(0) = vrtCoo(0)
                dblPnt1(1) = vrtCoo(1)
                dblPnt1(2) = vrtCoo(2)
                dblPnt2(0) = vrtCoo(0)
                dblPnt2(1) = vrtCoo(1)
                dblPnt2(2) = 0
                ldrObj.Move dblPnt1, dblPnt2
                Exit For
            End If
        
        Next j
Next i
sset.Delete
Set sset = Nothing
Set ldrObj = Nothing
End Sub
Dinoxromniy вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Мультвыноска - отсутствует контточка на конце выноски (стрелки)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исчезновение символа стрелки выноски при приближении текста к стрелке, автокад 2017 Tyhig AutoCAD 10 18.03.2025 14:02
Изменение глобального масштаба для выноски в зависимости от высоты текста выноски olga87 LISP 7 23.01.2018 05:44
Выполнение команды лисп после перемещения стрелки выноски rublikdimas LISP 20 29.08.2016 09:31
Помогите продумать поворот части выноски! Tonic Программирование 40 02.07.2007 20:21
Сброс связи линии выноски и MTEXTа выноски kabzzz AutoCAD 3 19.04.2006 12:57