乐筑天下

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

[编程交流] “ID”c的自动化

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:12:44 | 显示全部楼层 |阅读模式
大家好,我叫布鲁诺,这是我在这里的第一个帖子!!
 
值得一提的是,我从2014年开始在cad工作。我擅长2-D,对3-D绘图也有一点经验。对不起,我从来没有用过Lisp程序。
 
 
这就是正在发生的事情:
我在用autocad教我哥哥数值积分。我画了一个图,把它分成十个等距的部分,如下所示。
 
191247c29499u4u48ux8ii.jpg
 
 
我用“ID”得到每个弦的长度,这样我就可以粘贴到excel表中并计算面积。
 
我的疑问是:有没有办法不逐个单击就获得多行的ID?
当您将绘图划分为100、1000或1000000个空间时,这很好。
 
干杯
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 18:29:44 | 显示全部楼层
你好,布鲁诺,
您可以使用Lee Mac的“点管理器”来获取交点的坐标(当然,您需要第二个lisp来将这些点对象放置在每个交点处),
或者,如果要直接检查区域,请创建图案填充或bpoly并查看其属性。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:35:12 | 显示全部楼层
欢迎来到CADTutor Bruno!
 
请尝试以下操作:
  1. [color=GREEN];; Integration Demonstration  -  Lee Mac[/color]
  2. ([color=BLUE]defun[/color] c:integrate ( [color=BLUE]/[/color] *error* axs crv csv des dis inc int lst num obj pt1 rtn tmp )
  3.    ([color=BLUE]defun[/color] *error* ( msg )
  4.        ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]=[/color] 'ename ([color=BLUE]type[/color] tmp)) ([color=BLUE]entget[/color] tmp)) ([color=BLUE]entdel[/color] tmp))
  5.        ([color=BLUE]if[/color] ([color=BLUE]=[/color] 'file ([color=BLUE]type[/color] des)) ([color=BLUE]close[/color] des))
  6.        ([color=BLUE]if[/color] ([color=BLUE]not[/color] ([color=BLUE]wcmatch[/color] ([color=BLUE]strcase[/color] msg [color=BLUE]t[/color]) [color=MAROON]"*break,*cancel*,*exit*"[/color]))
  7.            ([color=BLUE]princ[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nError: "[/color] msg))
  8.        )
  9.        ([color=BLUE]princ[/color])
  10.    )
  11.    
  12.    ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]setq[/color] crv (integrate:select [color=MAROON]"\nSelect curve to 'integrate': "[/color]))
  13.             ([color=BLUE]setq[/color] axs (integrate:select [color=MAROON]"\nSelect axis: "[/color]))
  14.        )
  15.        ([color=BLUE]progn[/color]
  16.            ([color=BLUE]initget[/color] 6)
  17.            ([color=BLUE]setq[/color] num ([color=BLUE]cond[/color] (([color=BLUE]getint[/color] [color=MAROON]"\nSpecify number of divisions <10>: "[/color])) (10))
  18.                  dis ([color=BLUE]vlax-curve-getdistatparam[/color] axs ([color=BLUE]vlax-curve-getstartparam[/color] axs))
  19.                  inc ([color=BLUE]/[/color] ([color=BLUE]-[/color] ([color=BLUE]vlax-curve-getdistatparam[/color] axs ([color=BLUE]vlax-curve-getendparam[/color] axs)) dis) num)
  20.                  obj ([color=BLUE]vlax-ename->vla-object[/color] crv)
  21.            )
  22.            ([color=BLUE]repeat[/color] ([color=BLUE]1+[/color] num)
  23.                ([color=BLUE]if[/color] ([color=BLUE]setq[/color] pt1 ([color=BLUE]vlax-curve-getpointatdist[/color] axs dis))
  24.                    ([color=BLUE]progn[/color]
  25.                        ([color=BLUE]setq[/color] tmp
  26.                            ([color=BLUE]entmakex[/color]
  27.                                ([color=BLUE]list[/color]
  28.                                   '(0 . [color=MAROON]"LINE"[/color])
  29.                                    ([color=BLUE]cons[/color] 10 pt1)
  30.                                    ([color=BLUE]cons[/color] 11
  31.                                        ([color=BLUE]mapcar[/color] '[color=BLUE]+[/color] pt1
  32.                                            (   ([color=BLUE]lambda[/color] ( v ) ([color=BLUE]list[/color] ([color=BLUE]-[/color] ([color=BLUE]cadr[/color] v)) ([color=BLUE]car[/color] v)))
  33.                                                ([color=BLUE]vlax-curve-getfirstderiv[/color] axs ([color=BLUE]vlax-curve-getparamatdist[/color] axs dis))
  34.                                            )
  35.                                        )
  36.                                    )
  37.                                )
  38.                            )
  39.                        )
  40.                        ([color=BLUE]if[/color]
  41.                            ([color=BLUE]setq[/color] int
  42.                                ([color=BLUE]vlax-invoke[/color] obj 'intersectwith
  43.                                    ([color=BLUE]vlax-ename->vla-object[/color] tmp) [color=BLUE]acextendotherentity[/color]
  44.                                )
  45.                            )
  46.                            ([color=BLUE]progn[/color]
  47.                                ([color=BLUE]setq[/color] lst ([color=BLUE]cons[/color] ([color=BLUE]distance[/color] pt1 int) lst))
  48.                                ([color=BLUE]entmake[/color] ([color=BLUE]list[/color] '(0 . [color=MAROON]"LINE"[/color]) '(62 .  ([color=BLUE]cons[/color] 10 pt1) ([color=BLUE]cons[/color] 11 int)))
  49.                            )
  50.                        )
  51.                        ([color=BLUE]entdel[/color] tmp)
  52.                    )
  53.                )
  54.                ([color=BLUE]setq[/color] dis ([color=BLUE]+[/color] dis inc))
  55.            )
  56.            ([color=BLUE]if[/color] ([color=BLUE]setq[/color] lst ([color=BLUE]reverse[/color] lst))
  57.                ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]setq[/color] csv ([color=BLUE]vl-filename-mktemp[/color] [color=MAROON]"int"[/color] ([color=BLUE]getvar[/color] 'dwgprefix) [color=MAROON]".csv"[/color]))
  58.                         ([color=BLUE]setq[/color] des ([color=BLUE]open[/color] csv [color=MAROON]"w"[/color]))
  59.                    )
  60.                    ([color=BLUE]progn[/color]
  61.                        ([color=BLUE]write-line[/color] [color=MAROON]"Length 1,Length 2,Segment Width,Segment Area"[/color] des)
  62.                        ([color=BLUE]setq[/color] rtn
  63.                            ([color=BLUE]mapcar[/color]
  64.                               '([color=BLUE]lambda[/color] ( a b [color=BLUE]/[/color] x )
  65.                                    ([color=BLUE]write-line[/color]
  66.                                        ([color=BLUE]strcat[/color]
  67.                                            ([color=BLUE]rtos[/color] a 2 3) [color=MAROON]","[/color]
  68.                                            ([color=BLUE]rtos[/color] b 2 3) [color=MAROON]","[/color]
  69.                                            ([color=BLUE]rtos[/color] inc 2 3) [color=MAROON]","[/color]
  70.                                            ([color=BLUE]rtos[/color] ([color=BLUE]setq[/color] x ([color=BLUE]*[/color] inc 0.5 ([color=BLUE]+[/color] a b))) 2 3)
  71.                                        )
  72.                                        des
  73.                                    )
  74.                                    x
  75.                                )
  76.                                lst ([color=BLUE]cdr[/color] lst)
  77.                            )
  78.                        )
  79.                        ([color=BLUE]write-line[/color] [color=MAROON]""[/color] des)
  80.                        ([color=BLUE]write-line[/color] ([color=BLUE]strcat[/color] [color=MAROON]",,Total Area:,"[/color] ([color=BLUE]rtos[/color] ([color=BLUE]apply[/color] '[color=BLUE]+[/color] rtn) 2 3)) des)
  81.                        ([color=BLUE]setq[/color] des ([color=BLUE]close[/color] des))
  82.                        ([color=BLUE]if[/color] ([color=BLUE]findfile[/color] csv) ([color=BLUE]startapp[/color] [color=MAROON]"explorer"[/color] csv))
  83.                    )
  84.                    ([color=BLUE]princ[/color] [color=MAROON]"\nUnable to generate CSV file."[/color])
  85.                )
  86.                ([color=BLUE]princ[/color] [color=MAROON]"\nNo intersection data found."[/color])
  87.            )
  88.        )
  89.    )
  90.    ([color=BLUE]princ[/color])
  91. )
  92. ([color=BLUE]defun[/color] integrate:select ( msg [color=BLUE]/[/color] ent )
  93.    ([color=BLUE]while[/color]
  94.        ([color=BLUE]progn[/color] ([color=BLUE]setvar[/color] 'errno 0) ([color=BLUE]setq[/color] ent ([color=BLUE]car[/color] ([color=BLUE]entsel[/color] msg)))
  95.            ([color=BLUE]cond[/color]
  96.                (   ([color=BLUE]=[/color] 7 ([color=BLUE]getvar[/color] 'errno))
  97.                    ([color=BLUE]princ[/color] [color=MAROON]"\nMissed, try again."[/color])
  98.                )
  99.                (   ([color=BLUE]null[/color] ent)
  100.                    [color=BLUE]nil[/color]
  101.                )
  102.                (   ([color=BLUE]vl-catch-all-error-p[/color] ([color=BLUE]vl-catch-all-apply[/color] '[color=BLUE]vlax-curve-getendparam[/color] ([color=BLUE]list[/color] ent)))
  103.                    ([color=BLUE]princ[/color] [color=MAROON]"\nInvalid object selected."[/color])
  104.                )
  105.            )
  106.        )
  107.    )
  108.    ent
  109. )
  110. ([color=BLUE]vl-load-com[/color]) ([color=BLUE]princ[/color])
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:45:15 | 显示全部楼层
pline的一个属性是面积,为什么不将形状设置为闭合pline?使用列表或属性查看区域
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:49:45 | 显示全部楼层
 
检索封闭区域当然很容易-我认为OP是为了证明随着分段数的增加和弦更好地逼近曲线(即从第一原理进行积分的图形演示),在真实面积值上的收敛性。
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 19:03:50 | 显示全部楼层
大家好,谢谢大家的支持!!!
 
是的,李,这正是我想要的!!你的代码就快到了,但不是这样的。。。代码必须执行Grrr所说的内容。Lisp必须:
 
1-)询问线路。(我的意思是,“选择线条”,类似这样,其中线条=我第一张照片上的弦cian/blue,上图)
 
2-)在相交点的每条线上执行ID命令。(此处的目标是复制要粘贴到word文件中的信息)
 
看看这段视频。我都是手工制作的。我相信它会澄清这些想法
 
 
 
Ps-我来自巴西。在这里,我们使用“逗号”而不是“点”,这是我在Word文件中粘贴后在视频中所做的。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:08:28 | 显示全部楼层
为什么不使用我的程序生成的CSV文件数据?
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 19:19:30 | 显示全部楼层
 
 
就像我说的,你的代码真的快到了,我真的很喜欢!我喜欢最后一个文件是CSV文件的事实!!!因此,我想请您在原始代码中改进两件事(如果可能的话):
 
1-)结果用3个小数位表示。。。我想要4个;
2-)在创建CSV文件数据时,我希望您再添加一行,包含所有文件的最后一个长度,如以下示例所示:
 
 
 
 
再次感谢您的帮助!你不知道你是怎么帮我的!!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:54 , Processed in 1.037971 second(s), 71 queries .

© 2020-2025 乐筑天下

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