乐筑天下

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

[编程交流] 选择图纸上的圆并p

[复制链接]

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 21:58:03 | 显示全部楼层 |阅读模式
大家好,
 
我是VBA新手,我需要你的帮助为我的项目编写代码。在我的画里有很多不同直径和不同位置的圆。我需要他们把Excel表格。
 
现在我只是使用坐标lisp,手动将坐标和半径放到Excel中。
 
提前谢谢你,非常感谢你的帮助。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:07:28 | 显示全部楼层
第一步去VLISP你会得到更多的帮助VBA是官方不支持的,但仍然有效,下载GETEXCEL。lsp这有所有的代码示例,你需要从excel进出。使用dumpit并选择一个圆等,您将看到您可以简单获得的所有值。
 
  1. ;;; Dump all methods and properties for selected objects              ;
  2. ;;;===================================================================;
  3. ;;; DumpIt                                                            ;
  4. ;;;-------------------------------------------------------------------;
  5. ;;;===================================================================;
  6. (defun C:DumpIt ( / ent)
  7. (while (setq ent (entsel))
  8.    (vlax-Dump-Object
  9.      (vlax-Ename->Vla-Object (car ent)) T
  10.    )
  11. )
  12. (princ)
  13. )

一个例子
  1. (setq obj (vlax-Ename->Vla-Object (car (entsel "pick circle"))))
  2. (setq cenpt (vlax-safearray->list (vlax-variant-value (vla-get-center obj))))
  3. (alert (strcat "Area= " (rtos (vla-get-area obj) 2 1)
  4. "\nCentre point X=" (rtos (nth 0 cenpt) 2 2) " Y=" (rtos (nth 1 cenpt) 2 2) " Z=" (rtos (nth 2 cenpt))
  5. "\nDiameter " (rtos (vla-get-diameter obj) 2 2)
  6. ))
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 22:10:07 | 显示全部楼层
比加尔,
 
先生,谢谢您的快速回复。。。实际上我从来没有在LISP上写过代码,我只使用VBA,但我试着运行你给出的第一个代码,很好。。。但是第二个代码,我不知道怎么做,我试着在第一个代码之后放一个结果有错误。。。无论如何,我会尽我所能学习更多关于这个口齿不清。。。你能给我一些好的参考书的名字吗。
 
关于GETEXCEL。lsp你们说过,我会复制那个代码并学习,因为它和VBA代码完全不同。
 
谢谢
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:17:26 | 显示全部楼层
将代码复制到记事本,并将其另存为say Circdetail。lsp然后保存并使用Appload加载它。DUMPIT也一样。lsp唯一的区别是它是一个defun,所以在appload之后,您需要键入dumpit来运行。我已经更改了帖子,所以圆圈细节也是一个defun,但你从圆圈程序的另一部分调用它。
 
  1. (defun circdetail ( / obj n cenpt)
  2. (setq ss (ssget "X" (list (cons 0 "Circle"))))
  3. (setq n (sslength ss))
  4. (setq x n)
  5. (repeat n
  6. (setq en1 (ssname ss (setq x (- x 1))))
  7. (setq obj (vlax-Ename->Vla-Object en1))
  8. (setq cenpt (vlax-safearray->list (vlax-variant-value (vla-get-center obj))))
  9. ; this where you would save all the answers so write to excel or return back to master program
  10.    (alert (strcat "Area= " (rtos (vla-get-area obj) 2 1)
  11.    "\nCentre point X=" (rtos (nth 0 cenpt) 2 2) " Y=" (rtos (nth 1 cenpt) 2 2) " Z=" (rtos (nth 2 cenpt))
  12.    "\nDiameter " (rtos (vla-get-diameter obj) 2 2)
  13.    ))
  14. )
  15. )
  16. (circdetail); needed so it will run
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 22:20:08 | 显示全部楼层
先生,这太棒了。谢谢你…我星期一会在办公室试试这个,然后回来找你。
 
非常感谢。。。
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 22:23:50 | 显示全部楼层
先生,我试了一下你给的LISP,一开始它不起作用,因为这幅画是3D物体,但我设法通过分解、展平和过度杀死这幅画来解决它。以下所附链接为图纸样本(仅供参考)。
 
https://www.dropbox.com/s/4n4ecegjglioup5/SidePanel.dwg?dl=0
 
非常感谢您的大力支持。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:29:25 | 显示全部楼层
如果你在做圆的时候使用了一些x,y和rad的字段,也许可以看看你开始零件的方式。当你挤出圆的时候,这些字段可能在不同的层上,文本会保留下来。然后很容易找到这个文本,这是你所有圆细节的列表,你仍然有一个3d零件。
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2022-7-6 22:33:27 | 显示全部楼层
@阿松比3
 
如果您不能成功使用lisp方式,我可以尝试帮助您使用VBA。在这种情况下,我需要更多的细节开始:
-一个现成的dwg文件示例-不要分解、展平等等
-excel文件示例
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 22:41:16 | 显示全部楼层
RICVBA的问题是如何获得三维对象的属性,从简单的矩形拉伸开始,用1个圆孔减去需要、中心点和孔半径。实际上,问题不是VBA或lisp,而是可以使用哪些方法来计算实体的属性。帮助文件将为我使用的大多数vl提供等效VBA。希望有人知道如何分离3d物体。
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2022-7-6 22:46:24 | 显示全部楼层
 
我同意
这就是为什么我只能从“现成的dwg文件”开始提供帮助
阿松比的第一篇帖子描述似乎可以保证这一点。
至少就我所知,管理3D对象是一项相当艰巨的工作。我认为必须允许你做出假设(只处理圆柱体,所有圆柱体都有适当的方向,…)为了开始思考一个有用的例程
 
我相信网络可以在这个问题上提供更多的控制,但我现在还不确定。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 13:12 , Processed in 0.332208 second(s), 72 queries .

© 2020-2025 乐筑天下

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