乐筑天下

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

[编程交流] EXCEL中的AutoCAD标题栏

[复制链接]

10

主题

598

帖子

594

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-6 22:16:39 | 显示全部楼层
我永远记不起它是反斜杠还是正斜杠
 
 
PS“编辑帖子”按钮也不起作用,我必须复制并粘贴笑脸
回复

使用道具 举报

2

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 22:21:55 | 显示全部楼层
对不起,我试过了,但不知道如何将代码放入代码标记中。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:22:46 | 显示全部楼层
我刚刚习惯了手动输入,把这个放在开头,没有空间,可以通过编辑做到,没有问题,有时我键入一个错误,必须回去修复。
[c o d e]
结束是
[/c o d e]
 
Steven-g关于向Autocad发送命令的好消息将保留一份副本。我知道这是可以做到的。
 
您可以从VBA调用lisp,这是一个有趣的想法。
此图纸。SendCommand“(load”+Chr(34)+“s:/autodesk/vba/xxxblockedit.lsp”+Chr(34)+“)+vbCr
回复

使用道具 举报

2

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 22:28:44 | 显示全部楼层
嗨,BIGAL&steven-g
 
 
我尝试了steven-g的方法,但这需要我知道标签的原始值是什么。
史蒂文-有没有办法绕过原值要求?可能是外卡(尝试过,但不起作用)。
 
 

 
 
ATTIN函数(在ATTOUT.LSP中)可以工作,但它会提示输入文件。我不懂LISP,所以不知道如何修改它。
 
 
BIGAL-你能给我发一个修改版的ATTOUT吗。LSP或告诉我要修改哪一行?
我只需要阁楼部分。
 
 
JG公司
回复

使用道具 举报

10

主题

598

帖子

594

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-6 22:29:46 | 显示全部楼层
attedit要求您知道现有的值,并且还允许您添加诸如块和标记值之类的内容,以便您可以缩小到所需的确切块属性。与使用属性句柄的attin命令相反。您说您已经使用了attout命令,这意味着您在那里有旧的属性值,如果您在Excel中工作以保留它们的记录,那么这些值必须在Excel中。
如果不是,那么将上面的代码改编为使用attin命令应该不会有太大的问题,用于从Excel VBA向Autocad发送命令的方法使用包含以下内容的行:
  1. .ActiveDocument.SendCommand
回复

使用道具 举报

2

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 22:33:03 | 显示全部楼层
我们有2000多张图纸需要用这个脚本更新。因此,对每个应用程序使用ATTOUT命令将非常繁琐。
 
 
我使用一个图形(所有其他图形都是从该模板创建的)的ATTOUT输出来获取块和标记键。然后,我将使用电子表格中指定的值更新所有图形,无论当前有什么。
 
 
这样做的原因是为了应用标准值,这是制图人员迄今为止尚未坚持的。
 
 
我知道(感谢BIGAL)如何将命令发送到AutoCAD以运行修改后的ATTIN LSP。但是ATTIN需要选择一个文件,我想自动运行它(怀疑有人想坐在那里选择2000个输入文件)。
 
 
我试图用BIGAL提供的代码修改ATTIN函数。
 
 
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:37:32 | 显示全部楼层
 
你应该仔细看看我发布的VBA,它不需要标签名或Attin,它使用属性创建顺序工作99%的时间不会进入现在。因此,它适用于任何块,但您必须清楚地知道其名称。你甚至不必和block在同一个空间/布局中,它会更新。双击一个块,您将看到顺序。
 
如果我有5个属性,想更新第2个和第4个属性,像这样的东西会工作。
 
  1. attribs(1).TextString = "Freds plans"
  2. attribs(3).TextString = "Revision A"
  3.       
  4. attribs(1).Update
  5. attribs(3).Update
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 22:39:51 | 显示全部楼层
 
 
很简单
  1. Your Code Here[/NOPARSE]
=
  1. Your Code Here
您可以手动键入或使用#插入标记。
 
一些最新的浏览器似乎对所见即所得回复框有问题。进入“设置”>“常规设置”并滚动至“其他选项”,然后在“消息编辑器”界面下选择底部标准编辑器。
回复

使用道具 举报

2

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 22:41:50 | 显示全部楼层
 
 
嗨,比格尔,
 
 
我确实看过你的代码,并试图根据我的要求修改它,但无法使其正常工作。
 
 
我有61个属性需要更改(如果它们不是空的),我尝试循环每个属性。但我的画什么也没发生。
 
 
  1. Sub Update_DWG() ' Performed in a loop for each drawing (over 2000)
  2.    On Error Resume Next
  3.    Set ACAD = GetObject(, "AutoCAD.Application")
  4.    If Err.Description > vbNullString Then
  5.       Err.Clear
  6.       Set ACAD = CreateObject("AutoCAD.Application")
  7.    End If
  8.    ACAD.Visible = True
  9.    xDWGPath = "C:\Users\297560\Documents\Development\AutoCAD Update"
  10.    xDWGFile = xDWGNo & ".dwg" '  - set in a calling sub
  11.    xDWGFull = xDWGPath & xDWGFile
  12.    ACAD.Documents.Open (xDWGPath & xDWGFile)
  13. '
  14.    BLOCK_NAME = "SLR_TfNSW_A1_Tblock"
  15.    FilterDXFCode(1) = 2
  16.    FilterDXFVal(1) = "SLR_TfNSW_A1_Tblock"
  17.    SS.Select acSelectionSetAll, , , FilterDXFCode, FilterDXFVal
  18.    For Cntr = 0 To SS.Count - 1
  19.    If SS.Item(Cntr).Name = BLOCK_NAME Then
  20.    If xValue01 <> "" Then
  21.       attribs(1).TextString = xValue01
  22.       attribs(1).Update
  23.    End If
  24.    ACAD.ActiveDocument.SendCommand "qsave close" & vbCr
回复

使用道具 举报

2

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 22:46:21 | 显示全部楼层
对不起,我还没准备好就发了
 
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:09 , Processed in 0.782610 second(s), 70 queries .

© 2020-2025 乐筑天下

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