乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: comcu

[编程交流] vba自动填充图形寄存器

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 22:39:01 | 显示全部楼层
我认为另一种方法是,如果保存的接收图形具有包含所需信息的文件名。
 
但同样,这可能会导致错误,因为每次都必须正确格式化文件名。
 
我提出这一点的唯一原因是,我以前工作的公司保存了每张图纸,文件名不仅包含图纸编号,还包含项目编号、项目名称、修订号和图纸标题。因此,我认为这是一个可能的解决方案。
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 22:43:05 | 显示全部楼层
供应链上下的合作与协调可以提高许多领域的效率。将文件命名结构修改为商定的标准肯定是一个良好的开端。
回复

使用道具 举报

34

主题

105

帖子

91

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
224
发表于 2022-7-6 22:46:27 | 显示全部楼层
嗨,大家好,我昨晚完成了工作,并且成功了。它基本上允许您选择4个多行文字,然后创建一个excel表并保存它,然后使其可见。然后,它将四个选定字段传输到avitve excel表,然后提供活动单元格,然后再将下一个文本字符串传输到当前活动单元格。我在代码中内置了一个部分,如果您没有选择任何值,它将结束子部分。这允许用户移动到不同的布局或图形,然后重新启动sub。选择四个多行文字,然后再次添加到活动单元格。
 
我将寻找整合seants代码,这样它就可以让你选择属性,文本或多行文字。我想我必须写3个ocde变体来解释不同的类型。我想写的另一部分是允许用户选择所选实体的数量。将代码设置为在excel工作表中输入四个值后转到下一行。我希望允许用户在commnad行中键入金额,因为人们的模板可能不同,有时项目编号是图纸的一部分,不意味着需要3个实体来选择
 
如。
 
项目编号图纸编号
利润
标题
 
其他时候有四种选择
 
项目编号
图纸编号
利润
标题
 
我很高兴,我知道这将节省我很多时间。
 
它的一个问题是它有一个bug。似乎每一次代码运行时,值被传输到excel的部分就会崩溃。我完成的时候真的很晚了,所以稍后我会再看一遍,因为我确信这很简单。再次原谅代码,如果它看起来有点凌乱,我会看看,看看我是否可以简化它,使它更容易阅读,但在这一刻,它的工作,所以这始终是我的首要目标。
 
请发表评论。
 
下一篇文章中的代码。
 
干杯
 
col公司
 
ps我同意你seant
 
 
但我不是要求这些东西的人。我们是一家幕墙铝玻璃公司,我们收到的图纸来自建筑师。这些人在食物链中处于较高的位置,所以我只能忍受,并想出解决问题的方法。
回复

使用道具 举报

34

主题

105

帖子

91

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
224
发表于 2022-7-6 22:49:46 | 显示全部楼层
  1. Public MyTxtStr(0 To 3) As String
  2. Public Cnt As Integer
  3. Public WorkbookOpen As Integer
  4. Public RowCnt As Integer
  5. Public ErrorHandler As Error
  6. Public Excel As Excel.Application
  7. Public ExcelSheet As Object
  8. Public ExcelWorkbook As Object
  9. Public CurrRange As Range
  10. Sub DrgRecivedRegAutoComplete3()
  11. 'allows selecting text on screen
  12. 'stores the  text  value
  13. Dim MyMTxt As AcadMText
  14. Dim MyoEnt As AcadEntity
  15. Dim MyObjSS As AcadSelectionSet
  16. Dim i As Double
  17. i = 0
  18. '
  19. On Error Resume Next
  20. ThisDrawing.SelectionSets("Selecttext").Delete
  21. On Error Resume Next
  22.        Set MyObjSS = ThisDrawing.SelectionSets.Add("Selecttext") '' create a new selectionset
  23.                  
  24.            
  25.        MyObjSS.SelectOnScreen '' let user select entities interactively
  26.       
  27.            
  28. '      ThisDrawing.Utility.prompt objSS.Count & " entities selected"
  29.           ' ThisDrawing.Utility.GetString True, vbLf & "Enter to continue Escape To Exit"
  30.    
  31.    
  32.       
  33.        MyObjSS.Highlight True
  34.            If MyObjSS.Count = "0" Then GoTo ErrorHandler
  35.       
  36.        For Each MyoEnt In MyObjSS
  37.       
  38.    
  39.       
  40.         
  41.         
  42.           If TypeOf MyoEnt Is AcadMText Then
  43.          
  44.                Set MyMTxt = MyoEnt
  45.             
  46.                    MyTxtStr(i) = MyMTxt.TextString
  47.                        MyObjSS.Highlight False
  48.                          i = i + 1
  49.                         
  50.                         
  51.                         
  52.       
  53.       
  54.            End If
  55.            Next
  56.         
  57.            Cnt = MyObjSS.Count - 1
  58.            
  59. Tranfer2Excel
  60. ErrorHandler:
  61. Close
  62. End Sub
  63. Private Sub Tranfer2Excel()
  64. If WorkbookOpen = 1 Then GoTo SkipCreatingWorkbook
  65.    ' Launch Excel.
  66.    
  67.    
  68.    Set Excel = New Excel.Application
  69.    ' Create a new workbook and find the active sheet.
  70.    Set ExcelWorkbook = Excel.Workbooks.Add
  71.    Set ExcelSheet = Excel.ActiveSheet
  72.    
  73.    ExcelWorkbook.SaveAs "Drawing Register Transfer Sheet.xls"
  74. Excel.Visible = True
  75. RowCnt = 1
  76.      With Worksheets("Sheet1")
  77.    .Select
  78.    .Range("a1").Activate
  79.        End With
  80.    
  81. SkipCreatingWorkbook:
  82.    
  83.     For i = 0 To Cnt
  84.        Set CurrRange = ActiveCell
  85.            CurrRange.Value = MyTxtStr(i)
  86.                CurrRange.Offset(0, 1).Select
  87.    
  88.    Next
  89.    
  90.    RowCnt = RowCnt + 1
  91.    
  92.     With Worksheets("Sheet1")
  93.    .Select
  94.    .Range("a" & RowCnt).Activate
  95.        End With
  96.    
  97.   WorkbookOpen = 1
  98.   
  99.       
  100.    
  101.    DrgRecivedRegAutoComplete3
  102.   ' Excel.Application.Quit
  103.    'Excel.Application.
  104.   
  105. End Sub
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:51:01 | 显示全部楼层
我已经这样做了,用户选择一个对象,然后你知道它是块还是文本等在文本的情况下,你总是会选择第一个答案,然后下一个等,如果它是块和文本的混合选择,它会变得复杂。
 
答案
回复

使用道具 举报

4

主题

20

帖子

16

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 22:56:30 | 显示全部楼层
 
Hi Lee,
I was surfing the NET looking for inspiration and found the HOLLY GRAIL......
Is this at all possible? to transfer information from AutoCAD to an EXCEL Drawing Register using Attributes??
Any Assistance Would be Greatly Appteciated:shock:
Best Regards
Simon
回复

使用道具 举报

4

主题

20

帖子

16

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 22:56:59 | 显示全部楼层
 
Hi Lee,
 
Ihave tried to send a message twice giving a detailed description of my situation, unfortunately every time i hit the 'submit reply' button it takes me back to the login screen:oops:
 
To cut a long story short......
 
I was surfing the NET looking for inspiration and found the HOLLY GRAIL......
 
Is this at all possible? to transfer information from AutoCAD to an EXCEL Drawing Register using Attributes??
 
Any Assistance Would be Greatly Appteciated:shock:
 
Best Regards
 
Simon
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 23:02:45 | 显示全部楼层
I am sure Lee will be along soon but you could also look at the data extraction tool already in AutoCAD. (Tools|Data Extraction)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 23:03:13 | 显示全部楼层
Simon, check out the Global Attribute Extractor in my sig - this thread is pretty old, but it looks like I accomplished it in the end
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 23:06:47 | 显示全部楼层
 
 
Hi LM
first a big thanks for your global efforts in the fight against Badcad.
 
I didn't want to start a new thread and found this one which I hope can get my question answered.
 
I am starting a new Project which will have over 100 drawings, all with the same title block containing attributed text. I have created an excel table with column headings representing each Attribute, and wish to have one row per drawing, thus creating a title-block table in Excel.
I wish to be able to fill in text for These attributes inside this table rather than have to open up individual drawings.
 
How can I create the link to make these title block attributes read Information from this table?
Kind of like your Global Attribute Extractor, but in reverse!
 
thanks in advance for any insight anyone can give me
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 11:39 , Processed in 0.680826 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表