乐筑天下

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

[编程交流] 自动距离

[复制链接]

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:25:05 | 显示全部楼层 |阅读模式
大家好,我想知道在autocad 2007/2009中是否有一种方法,可以单击一条直线并由autocad提供长度,而无需进行距离计算和选择两个端点。理想情况下,我希望能够单击50条不同的线,所有线的长度都不同,并让autocad告诉我它们有多长(我想快速完成这项工作,因此逐个单击一行并查看属性并不是一个真正的选项。如果可能的话,是否有办法让autocad制作一个快速表格,即:第1行=500mm,第2行=470mm。如果可以将其放入excel文件,效果会更好。
 
谢谢
回复

使用道具 举报

1

主题

37

帖子

36

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 16:31:28 | 显示全部楼层
我只需要键入DISTANCE或将命令重新分配给d,就像iv'e所做的那样,因为如果im right d代表Dia。默认情况下(仅在绘制圆时注意),默认情况下会打开dim样式管理器!
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:34:19 | 显示全部楼层
谢谢,但那真的没用。我知道如何通过计算距离来得到一条直线的长度,但我用我所做的绘制了50-100条不同长度的直线。我希望能够在一条线上单击一次,然后autocad告诉我线的长度,而不是键入D,然后单击第一条线的起点,然后单击该线的终点,然后它告诉我距离,然后对其他线重复这些步骤。然后对其他大约一百行继续此操作,希望autocad能够将所有长度列在旁边,或者将其放入excel文件中。即使打开“属性”菜单也不会使这个过程更快,因为我仍然需要单击一行,查看长度并记下来,按Esc键(取消选择该行),然后选择下一行。希望这能澄清我在寻找什么。
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:35:54 | 显示全部楼层
大家都知道怎么做了,现在不用回复了谢谢
回复

使用道具 举报

1

主题

12

帖子

11

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 16:38:07 | 显示全部楼层
你打算和我们分享这条信息吗?我知道我可能需要在某个时候这样做。谢谢
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:41:10 | 显示全部楼层
当然,我没有想过把它放在这里,因为我在这个网站上找到了它(经过一段时间的搜索)
 
我不知道如何在大多数人使用的盒子中完成,但代码是这样的:
 
(定义c:LST(/名称文件ss ssi enl ln ar ci c2s)
 
;----------------------------
(defun ln(l f);在文件f中记录一行l
(写入行(strcat“line,”
(c2s(cdr(assoc 10 l)))
(c2s(cdr(assoc 11 l)))
(rtos(距离
(cdr(assoc 10 l))
(cdr(assoc 11 l ϨϨϨ)f)
)
;----------------------------
(defun ar(l f/c r u1 u2);记录弧
(setq c(cdr(assoc 10 l));居中
r(cdr(assoc 40 l));半径
u1(cdr(assoc 50 l));开始
u2(cdr(assoc 51 l));。。。和端角
)
(写入行(strcat“ARC,”
(c2s(极性c u1 r))
(c2s(极性c u2 r))
(rtos(*r(abs(-u2 u1)))”
(c2s c)(rtos r))f)
)
;-----------------------------
(defun ci(左/右);记录圆
(setq r(cdr(assoc 40 l));半径
(写入行(strcat“CIRCLE,,,,,,,,”
(rtos(*2 PI r))“,”
(c2s(cdr(assoc 10 l)))
(rtos(cdr(assoc 40 l)))f)
)
;----------------------------
(x);用于转换字符串中的坐标
(strcat(rtos(car x))“,”(rtos(cadr x))“,”(rtos(caddr x))“,”)
)
 
;----------------------------
 
(setq名称(getvar“dwgname”))
(如果(=“)(子字符串名称(-strlen name)3)1)
(setq名称(substr名称1(-strlen名称)4)))
(setq文件(打开)(GetField“输出文件…”名称“CSV”1“w”)
ss(ssget)ssi-1)
(写入行
“Typ,Start X,Start Y,Start Z,End X,End Y,EndZ,Length,cen X,cen Y,cenZ,Radius”
文件)
(如果ss
(程序
(重复(sslength ss)
(setq enl(entget(ssname ss(setq ssi(1+ssi)Ю))))
(条件
((=“LINE”(cdr(assoc 0 enl)))(ln enl文件)
((=“ARC”(cdr(assoc 0 enl)))(ar enl文件)
((=“CIRCLE”(cdr(assoc 0 enl)))(ci enl文件)
)
))) ;如果SS结束
(关闭文件)
(普林斯)
)
 
这将把信息放在一个单独的excel表格中。现在我已经完成了,我想知道是否有人可以帮我做另外两件事:我希望代码能够在excel电子表格的末尾添加另一列(在行长之后),将长度乘以6.2,即:长度显示为200mm,结束列将显示1240。此外,我所做的每一行代表许多行,即画一条线,但它代表2-5行之间。我希望代码能够问我多少行每一个代表后,我点击每一行。因此,excel电子表格到最后将包含它现在所做的一切,以及一个将长度乘以6.2的列和一个包含它所代表的行数的列。希望这是有意义的,任何帮助都将不胜感激。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:45:49 | 显示全部楼层
作为一个补充,你能把你的代码放在[code][/code]括号里吗,因为这样更容易阅读。
干杯
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:49:12 | 显示全部楼层
从现在开始,我没有意识到这只是需要选择的代码标签,我对此还是新手
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:53:34 | 显示全部楼层
没有问题gazzalp
回复

使用道具 举报

24

主题

109

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 16:54:17 | 显示全部楼层
有人知道如何获得代码,将一个单元格添加到电子表格中,该单元格将把行长度乘以6.2吗?谢谢你的帮助
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 20:31 , Processed in 0.752001 second(s), 72 queries .

© 2020-2025 乐筑天下

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