乐筑天下

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

[编程交流] 确定dwg单位是否为长度

[复制链接]

6

主题

36

帖子

30

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:46:45 | 显示全部楼层 |阅读模式
大家好,
我正在写一个小例程来输出acres、sf、sy等。。。所以我想检查长度的绘图单位,以确保它们设置为英尺。
 
我知道如果我在c3d中键入“-dwgunits”(或“-aecdwgunits”),第一项就是我要找的,如下所示。
 
有人能给我指出正确的方向,从lisp内部检查这个值吗?非常感谢!
 
绘图单位:
1.英寸
2、脚
3.毫米
4.厘米
5、分米
6.仪表
长度单位:
回复

使用道具 举报

12

主题

119

帖子

107

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 08:08:21 | 显示全部楼层
试试这个
 
  1. (setq DU (getvar "insunits"))
回复

使用道具 举报

6

主题

36

帖子

30

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 08:18:26 | 显示全部楼层
谢谢你的回复,但是单位和长度单位不一样。。。通过“-aecdwgunits”命令运行,最后一个设置询问您是否要匹配这两个选项:
 
将单位与绘图单位匹配?[是/否]:
回复

使用道具 举报

12

主题

119

帖子

107

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 08:32:47 | 显示全部楼层
Match INSUNITS应始终为“是”。否则,以英寸为单位绘制的块在插入时将转换为毫米。。。你为什么要这样?将其更改为YES,以上代码将起作用。。。除非有理由需要插入单位与绘图单位不同。。。对我来说没有意义。
回复

使用道具 举报

6

主题

36

帖子

30

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 08:40:58 | 显示全部楼层
很抱歉我同意-INSUNIT应该匹配(尽管有时首选unitless)。。。。
 
但这不是重点。我试图检查图纸的长度单位(getvar???)如果可能的话。我的观点是,检查insunits并不能保证长度单位是相同的。
 
Civil 3d中出现问题的一个例子是,当某人从没有Civil 3d的架构师(例如)那里获得acad文件时。civil 3d(设置选项卡)中的图形单位只允许英尺或米。但是,这些实例中的原始文件不是使用civil 3d创建的,因此长度单位可能为“英寸”。至于INSUNIT,它们可能来自外部客户。。。。但就我而言,这无关紧要。在这些文件中,选择英尺或米并返回“设置”选项卡以设置单位后,您将看到“英寸”不再是有效的选择。这是一个用户的问题,他们不了解正在发生的一切。我只是想防止错误的输出,而不假设他们知道自己在做什么。
 
我希望这篇文章不是以消极的态度阅读的。。。。只是想解释一下我的推理。如果他们的长度单位没有设置为英尺,我想向他们发送一条禁止信息。。。。。如果它们不匹配,也许我可以添加一条消息。。。。
 
谢谢
回复

使用道具 举报

8

主题

81

帖子

45

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
76
发表于 2022-7-6 08:47:01 | 显示全部楼层
JPlanera的建议是你最好的选择。
这是给你的读物:http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Command-DwgUnits/td-p/1922109
我附上了我的区域程序,作为您如何在程序中使用insunits的示例。
AC_AREA-CALC_v2.1_原件。lsp
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:17 , Processed in 0.908825 second(s), 64 queries .

© 2020-2025 乐筑天下

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