1

(2 ответов, оставленных в .NET)

День добрый! Пробовал запускать приложение и от имени администратора - тоже не получается. Приложение запускается через click-once...Если запустить приложение от имени админа, а автокад от имени юзера, то результат тоже плачевный..

2

(2 ответов, оставленных в .NET)

Добрый день! Создал приложение для работы с дин.блоками (расстановка, корректировка) в автокаде.
Подключаюсь к автокаду поздним связыванием с помощью:
AcadApp = DirectCast(Marshal.GetActiveObject("AutoCAD.Application"), Object)
Всё работает хорошо...Но стоит запустить автокад от имени администратора...программа его не видит!
Подскажите пожалуйста, кто знает...???

3

(3 ответов, оставленных в .NET)

Опять пытаюсь "поднять" данную тему...Почему приложение (vb.net) сильно тормозит с картами Bing???

4

(3 ответов, оставленных в .NET)

Никакого...Описал чем занимается моё приложение...Но почему оно начинает "тормозить" с картами, я нигде найти не могу...

5

(3 ответов, оставленных в .NET)

Добрый день! Создал приложение для работы с дин.блоками (расстановка, корректировка) в автокаде.
Подключаюсь к автокаду поздним связыванием с помощью

AcadApp = DirectCast(Marshal.GetActiveObject("AutoCAD.Application"), Object)

Далее вставляю блоки

Block = Activdoc.ModelSpace.InsertBlock(T, "Блок", 1, 1, 1, 0)

и корректирую

vardynamicblockpropertiesBl = Block.GetDynamicBlockProperties

Всё работает, всё устраивает, но стоит подключить карту Bing, всё начинает жутко тормозить...Как с этим бороться???

6

(2 ответов, оставленных в .NET)

Спасибо. Попробую!

7

(2 ответов, оставленных в .NET)

Добрый день! Есть часть кода:

Activdoc.Utility.GetEntity(obj11, basePnt, "Выберите полилинию или блок-ГНБ!!!")
Dim tmpObj As AcadObject = CType(obj11, AcadObject)
strObjName = tmpObj.ObjectName
str1 = "(handent """ + tmpObj.Handle + """" + ")"
str = "_.measure "
str = str & str1 & vbCr & "_Y" & vbCr & "20" & vbCr
Activdoc.SendCommand(str)

Вопрос: Как выбрать с какого конца полилинии её разметить? Если пользоваться командой автокада, то какой конец выбираешь, то с того и начинает. А тут какая-то своя логика. Как привязать basePnt?

8

(17 ответов, оставленных в .NET)

Да уж одно круче другого....)

9

(17 ответов, оставленных в .NET)

Да, именно так! Никак не могу "доапаться" до свойства Мтекста, которое отключает форматирование..

10

(17 ответов, оставленных в .NET)

вырезка из кода:

Imports System.IO
Imports Autodesk.AutoCAD.Interop.Common
Imports Autodesk.AutoCAD.Interop
Imports System.Runtime.InteropServices
Imports System
Imports System.Diagnostics
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Collections.Generic
Imports System.Text
Imports System.Drawing
Imports System.Drawing.Printing

   Private Sub ToolStripMenuItem60_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem60.Click
        On Error GoTo end_prg
        Dim AcadApp As AcadApplication = Nothing
        Dim Activdoc As AcadDocument = Nothing
        Dim objSelSet, sloj As Object
        Dim varAttributes, vardynamicblockproperties, vartext As Object
        Dim ss As New Process
        Dim ss1, ttt As Object
        Dim obj As AcadObject
        Dim varInsertionpoint, varAttributes1 As Object
        Dim objSelSet1, ima, l As Object
        Dim objpointer As AcadEntity
        Dim dxfInt(0 To 4) As Short, dxfType(0 To 4) As Object
        Dim objSelCol, objSelCol1 As AcadSelectionSets
        ttt = 0

        ss = Process.GetProcessesByName("acad")(0)
        ss1 = ss.Id
        AppActivate(ss1)
        AcadApp = DirectCast(Marshal.GetActiveObject(progIDstr), AcadApplication)
        Activdoc = AcadApp.ActiveDocument

        Dim style As AcadTextStyle ' создание текстового стиля
        Dim style1 As AcadTextStyles
        style1 = Activdoc.TextStyles
        For i = 0 To style1.Count - 1
            If style1(i).name = "GS-GOST2304" Then
                ttt = 1
            End If
        Next
        If ttt = 0 Then
            style = Activdoc.TextStyles.Add("GS-GOST2304")
            style.fontFile = "cs_gost2304.shx"
            style.Width = 0.8
            style.ObliqueAngle = 0
            style.Height = 0
        End If ' создание текстового стиля



        Dim AcadApp1 As AcadBlocks
        Dim elem As AcadBlock
        Dim elem1 As Object

        AcadApp1 = Activdoc.Blocks
        ProgressBar1.Visible = True
        ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = AcadApp1.Count
        ProgressBar1.Value = 0
        ProgressBar1.Step = 1
        ProgressBar1.PerformStep()
        For i = 0 To AcadApp1.Count - 1
            ProgressBar1.PerformStep()
            elem = AcadApp1.Item(i)
            If elem.Name.Contains("*U") = True Or elem.Name = "*Model_Space" Or elem.Name = "*Paper_Space" Then
                For y = 0 To elem.Count - 1
                    elem1 = elem.Item(y)
                    If elem1.ObjectName = "AcDbMText" Then
                        Dim text As AcadMText
                        elem1.stylename = "GS-GOST2304"
                    End If

                If elem1.ObjectName = "AcDbText" Then
                elem1.stylename = "GS-GOST2304"
                elem1.ScaleFactor = 0.8
                elem1.ObliqueAngle = 0
            End If

            If elem.Name <> "*Model_Space" And elem.Name <> "*Paper_Space" Then
                If elem1.ObjectName = "AcDbAttributeDefinition" Then
                    elem1.stylename = "GS-GOST2304"
                    elem1.ScaleFactor = 0.8
                    elem1.ObliqueAngle = 0
                End If
            End If
        Next
            End If
        Next

11

(17 ответов, оставленных в .NET)

Я без проблем нахожу многострочный текст в автокаде, далее


   

MText mtx = ent as MText; 
   mtx.UpgradeOpen(); 
   string newtxt = mtx.Text; 
   ed.WriteMessage("\nText: {0}\n", newtxt); 
   mtx.Contents = newtxt; 

так понимаю нужно открыть МТекст в каком-то редакторе....тут и проблема..

12

(17 ответов, оставленных в .NET)

Не, не получается! Но всё равно большое спасибо!

13

(17 ответов, оставленных в .NET)

надо разбираться с c#, а это туго, буду пробывать...

14

(17 ответов, оставленных в .NET)

Спасибо!! Попробую разобраться.

15

(17 ответов, оставленных в .NET)

Подскажите пож-та, как удалить форматирование символов МТекста в автокаде c помощью VB.net???

16

(11 ответов, оставленных в .NET)

А можно на VB.., что-то не могу найти(

17

(11 ответов, оставленных в .NET)

Всё-равно спасибо!

18

(11 ответов, оставленных в .NET)

<code>
sloy.color=3
</code>
так работает без проблем, а вот с дробным не получается!

19

(11 ответов, оставленных в .NET)

что-то вылетает на..
<code>
Dim color As New AcadAcCmColor
</code>

20

(11 ответов, оставленных в .NET)

Тогда я просто поменяю цвет объекта, а не цвет слоя. А работаю я в Net, просто мне показалось удобнее)

21

(11 ответов, оставленных в .NET)

Добрый день хочу создать слой с "дробным" цветом.

<code>
        Dim sloy As Object
        sloy = Activdoc.Layers.Add("Слой")
        sloy.truecolor = RGB(255,15,15) ----> не получется
        sloy.Linetype = "Continuous"
        sloy.Lineweight = 70
</code>

Просто я хочу в диалоговом окне выбрать нужные мне файлы (не только dwg) и всё это послать на принтер!

что-то не мгу найти...может не там ищу...

Подскажите пожалуйста как програмно распечать уже настроенные листы dwg файлов с помощью VB.net?

25

(3 ответов, оставленных в AutoCAD)

<code>
Private Sub ToolStripMenuItem_Click....

Dim AcadApp As AcadApplication = Nothing
Dim Activdoc As AcadDocument = Nothing
Dim varAttributes vardynamicblockproperties As Object
Dim truba As Object

AcadApp = DirectCast(Marshal.GetActiveObject(progIDstr), AcadApplication)
Activdoc = AcadApp.ActiveDocument
truba = Activdoc.ModelSpace.InsertBlock(T2, "Труба", 1, 1, 1, 0)
vardynamicblockproperties = truba.getdynamicblockproperties
vardynamicblockproperties(0).value = CDbl(10) ' растягивает блок
.......



</code>


Блок меняется, а вот штриховка остается на месте, пока прямо в автокаде как-нибудь не изменить блок...Такая проблема в Акаде 2011, в других нет...