乐筑天下

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

[编程交流] 在交点处插入点

[复制链接]

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 17:37:32 | 显示全部楼层
在这里,试试我未经测试的版本。。。
 
  1. [b][color=#FF0000]([/color][/b][color=BLUE]defun[/color] c:line-pt [b][color=#80FF00]([/color][/b] [color=BLUE]/[/color] ss i li p1 p2 k m li1 li2 ip pl [b][color=#80FF00])[/color][/b]
  2. [b][color=#80FF00]([/color][/b][color=BLUE]while[/color] [b][color=#00FFFF]([/color][/b][color=BLUE]not[/color] ss[b][color=#00FFFF])[/color][/b]
  3.    [b][color=#00FFFF]([/color][/b][color=BLUE]setq[/color] ss [b][color=#0080FF]([/color][/b][color=BLUE]ssget[/color] '[b][color=#FF00FF]([/color][/b][b][color=#FF0000]([/color][/b]0 . [color=BROWN]"LINE"[/color][b][color=#FF0000])[/color][/b][b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b]
  4. [b][color=#80FF00])[/color][/b]
  5. [b][color=#80FF00]([/color][/b][color=BLUE]repeat[/color] [b][color=#00FFFF]([/color][/b][color=BLUE]setq[/color] i [b][color=#0080FF]([/color][/b][color=BLUE]sslength[/color] ss[b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b]
  6.    [b][color=#00FFFF]([/color][/b][color=BLUE]setq[/color] li [b][color=#0080FF]([/color][/b][color=BLUE]ssname[/color] ss [b][color=#FF00FF]([/color][/b][color=BLUE]setq[/color] i [b][color=#FF0000]([/color][/b][color=BLUE]1-[/color] i[b][color=#FF0000])[/color][/b][b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b]
  7.    [b][color=#00FFFF]([/color][/b][color=BLUE]setq[/color] p1 [b][color=#0080FF]([/color][/b][color=BLUE]cdr[/color] [b][color=#FF00FF]([/color][/b][color=BLUE]assoc[/color] 10 [b][color=#FF0000]([/color][/b][color=BLUE]entget[/color] li[b][color=#FF0000])[/color][/b][b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b]
  8.    [b][color=#00FFFF]([/color][/b][color=BLUE]setq[/color] p2 [b][color=#0080FF]([/color][/b][color=BLUE]cdr[/color] [b][color=#FF00FF]([/color][/b][color=BLUE]assoc[/color] 11 [b][color=#FF0000]([/color][/b][color=BLUE]entget[/color] li[b][color=#FF0000])[/color][/b][b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b]
  9.    [b][color=#00FFFF]([/color][/b][color=BLUE]if[/color] [b][color=#0080FF]([/color][/b][color=BLUE]not[/color] [b][color=#FF00FF]([/color][/b][color=BLUE]vl-member-if[/color] '[b][color=#FF0000]([/color][/b][color=BLUE]lambda[/color] [b][color=#80FF00]([/color][/b] x [b][color=#80FF00])[/color][/b] [b][color=#80FF00]([/color][/b][color=BLUE]equal[/color] x p1 1e-10[b][color=#80FF00])[/color][/b][b][color=#FF0000])[/color][/b] pl[b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b]
  10.      [b][color=#0080FF]([/color][/b][color=BLUE]setq[/color] pl [b][color=#FF00FF]([/color][/b][color=BLUE]cons[/color] p1 pl[b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b]
  11.    [b][color=#00FFFF])[/color][/b]
  12.    [b][color=#00FFFF]([/color][/b][color=BLUE]if[/color] [b][color=#0080FF]([/color][/b][color=BLUE]not[/color] [b][color=#FF00FF]([/color][/b][color=BLUE]vl-member-if[/color] '[b][color=#FF0000]([/color][/b][color=BLUE]lambda[/color] [b][color=#80FF00]([/color][/b] x [b][color=#80FF00])[/color][/b] [b][color=#80FF00]([/color][/b][color=BLUE]equal[/color] x p2 1e-10[b][color=#80FF00])[/color][/b][b][color=#FF0000])[/color][/b] pl[b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b]
  13.      [b][color=#0080FF]([/color][/b][color=BLUE]setq[/color] pl [b][color=#FF00FF]([/color][/b][color=BLUE]cons[/color] p2 pl[b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b]
  14.    [b][color=#00FFFF])[/color][/b]
  15. [b][color=#80FF00])[/color][/b]
  16. [b][color=#80FF00]([/color][/b][color=BLUE]setq[/color] i [b][color=#00FFFF]([/color][/b][color=BLUE]sslength[/color] ss[b][color=#00FFFF])[/color][/b] k -1[b][color=#80FF00])[/color][/b]
  17. [b][color=#80FF00]([/color][/b][color=BLUE]while[/color] [b][color=#00FFFF]([/color][/b][color=BLUE]<[/color] [b][color=#0080FF]([/color][/b][color=BLUE]setq[/color] k [b][color=#FF00FF]([/color][/b][color=BLUE]1+[/color] k[b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b] i[b][color=#00FFFF])[/color][/b]
  18.    [b][color=#00FFFF]([/color][/b][color=BLUE]setq[/color] m k[b][color=#00FFFF])[/color][/b]
  19.    [b][color=#00FFFF]([/color][/b][color=BLUE]setq[/color] li1 [b][color=#0080FF]([/color][/b][color=BLUE]ssname[/color] ss k[b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b]
  20.    [b][color=#00FFFF]([/color][/b][color=BLUE]while[/color] [b][color=#0080FF]([/color][/b][color=BLUE]<[/color] [b][color=#FF00FF]([/color][/b][color=BLUE]setq[/color] m [b][color=#FF0000]([/color][/b][color=BLUE]1+[/color] m[b][color=#FF0000])[/color][/b][b][color=#FF00FF])[/color][/b] i[b][color=#0080FF])[/color][/b]
  21.      [b][color=#0080FF]([/color][/b][color=BLUE]setq[/color] li2 [b][color=#FF00FF]([/color][/b][color=BLUE]ssname[/color] ss m[b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b]
  22.      [b][color=#0080FF]([/color][/b][color=BLUE]if[/color] [b][color=#FF00FF]([/color][/b][color=BLUE]setq[/color] ip [b][color=#FF0000]([/color][/b][color=BLUE]inters[/color] [b][color=#80FF00]([/color][/b][color=BLUE]cdr[/color] [b][color=#00FFFF]([/color][/b][color=BLUE]assoc[/color] 10 [b][color=#0080FF]([/color][/b][color=BLUE]entget[/color] li1[b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b][b][color=#80FF00])[/color][/b] [b][color=#80FF00]([/color][/b][color=BLUE]cdr[/color] [b][color=#00FFFF]([/color][/b][color=BLUE]assoc[/color] 11 [b][color=#0080FF]([/color][/b][color=BLUE]entget[/color] li1[b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b][b][color=#80FF00])[/color][/b] [b][color=#80FF00]([/color][/b][color=BLUE]cdr[/color] [b][color=#00FFFF]([/color][/b][color=BLUE]assoc[/color] 10 [b][color=#0080FF]([/color][/b][color=BLUE]entget[/color] li2[b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b][b][color=#80FF00])[/color][/b] [b][color=#80FF00]([/color][/b][color=BLUE]cdr[/color] [b][color=#00FFFF]([/color][/b][color=BLUE]assoc[/color] 11 [b][color=#0080FF]([/color][/b][color=BLUE]entget[/color] li2[b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b][b][color=#80FF00])[/color][/b][b][color=#FF0000])[/color][/b][b][color=#FF00FF])[/color][/b]
  23.        [b][color=#FF00FF]([/color][/b][color=BLUE]if[/color] [b][color=#FF0000]([/color][/b][color=BLUE]not[/color] [b][color=#80FF00]([/color][/b][color=BLUE]vl-member-if[/color] '[b][color=#00FFFF]([/color][/b][color=BLUE]lambda[/color] [b][color=#0080FF]([/color][/b] x [b][color=#0080FF])[/color][/b] [b][color=#0080FF]([/color][/b][color=BLUE]equal[/color] x ip 1e-10[b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b] pl[b][color=#80FF00])[/color][/b][b][color=#FF0000])[/color][/b]
  24.          [b][color=#FF0000]([/color][/b][color=BLUE]setq[/color] pl [b][color=#80FF00]([/color][/b][color=BLUE]cons[/color] ip pl[b][color=#80FF00])[/color][/b][b][color=#FF0000])[/color][/b]
  25.        [b][color=#FF00FF])[/color][/b]
  26.      [b][color=#0080FF])[/color][/b]
  27.    [b][color=#00FFFF])[/color][/b]
  28. [b][color=#80FF00])[/color][/b]
  29. [b][color=#80FF00]([/color][/b][color=BLUE]foreach[/color] p pl
  30.    [b][color=#00FFFF]([/color][/b][color=BLUE]entmake[/color] [b][color=#0080FF]([/color][/b][color=BLUE]list[/color] '[b][color=#FF00FF]([/color][/b]0 . [color=BROWN]"POINT"[/color][b][color=#FF00FF])[/color][/b] [b][color=#FF00FF]([/color][/b][color=BLUE]cons[/color] 10 p[b][color=#FF00FF])[/color][/b][b][color=#0080FF])[/color][/b][b][color=#00FFFF])[/color][/b]
  31. [b][color=#80FF00])[/color][/b]
  32. [b][color=#80FF00]([/color][/b][color=BLUE]princ[/color][b][color=#80FF00])[/color][/b]
  33. [b][color=#FF0000])[/color][/b]
回复

使用道具 举报

14

主题

75

帖子

65

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-5 17:40:16 | 显示全部楼层
Grr看看这个,确保放大月球着陆器脚垫。
太阳能。图纸
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:43:33 | 显示全部楼层
 
比加尔,
以下是我在对该dwg上的所有内容进行最大化后得到的值:

这是我能做的最大可能的放大:

当然,luprec变量会影响这些数字(luprec的有效整数是从0到8),所以这就是为什么在逗号后显示8位数字的原因”
 
 
大卫,
你提供的信息真的很有用,谢谢!
我用你的例子做了一些测试:
  1. <p>Command: (equal 0.666666 (/ 2. 3.))</p><p>nil</p><p> </p><p>Command: (equal 0.666666 (/ 2. 3.) 1e-4)</p><p>T</p><p>[code]</p><p> </p><p>So by using a tolerance factor, we can force comparisons to workable values.</p><p> </p><p>HTH  -David</p>

我不确定除法(/2-3)后是否有变量来增加/减少精度活动然而,我在我使用的ACAD2015上发现了最小的比较限制:
  1. _$ (/ 2 3.)
  2. 0.666667
  3. _$ (equal 0.666667 (/ 2 3.))
  4. nil
  5. _$ (equal 0.666667 (/ 2 3.) 1e-5)
  6. T
  7. _$ (equal 0.666667 (/ 2 3.) 1e-6)
  8. T
  9. _$ (equal 0.666667 (/ 2 3.) 1e-7)
  10. nil

我做的进一步测试可能显示了局限性:
  1. _$ (equal 0.6666666666666667 (/ 2 3.) 1e-16)
  2. nil
  3. _$ (equal 0.666666666666667 (/ 2 3.) 1e-15)
  4. T
  5. _$
回复

使用道具 举报

14

主题

75

帖子

65

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-5 17:46:34 | 显示全部楼层
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 17:49:23 | 显示全部楼层
 
Put little larger number in every appearance of number 1e-10... So try with 1e-8, or 1e-6...
回复

使用道具 举报

14

主题

75

帖子

65

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-5 17:54:02 | 显示全部楼层
 
MARKO,
 
Yes, it is working.
 
Thanks.
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 17:55:56 | 显示全部楼层
 
 
The same as with Marko's - Adjust the tolerance value
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 18:00:51 | 显示全部楼层
 
The smallest on the release I use is 1e-14
 
The is a largest limit, but I down't remember it
 
Google significant numbers  for a better under standing
 
computers store real numbers with whole numbers having having president.
 
With a 15 digit significant limit
10.     stores a max of 14 decimals
1000.  stores a max of 12 decimals
 
This really comes into play when comparing values
 
(/ 2. 3.) always store the last decimal as 7
 
  1. Command: (equal 0.666666 (/ 2. 3.))
  2. nil
  3.  
  4. Command: (equal 0.666666 (/ 2. 3.) 1e-4)
  5. T
  6. [code]
  7.  
  8. So by using a tolerance factor, we can force comparisons to workable values.
  9.  
  10. HTH  -David
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:02:44 | 显示全部楼层
Grr have a look at this make sure you zoom in on lunar lander foot pad.
SOLAR.DWG
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 18:06:10 | 显示全部楼层
 
BIGAL,
These are the values I got after zoom extents on everything on that dwg:
180512bkdhccbcrzm5vccc.jpg
And this is the maximum possible zoom-in I could do:
180513qq7r97cmlrdqpqrr.jpg
Ofcourse the luprec variable affects these numbers (valid integers for luprec are from 0 to 8 ), so thats why are shown 8 digits after the comma "."
 
 
David,
The info you provided is really helpful, thanks!
I did some tests with your example:
  1. _$ (/ 2 3.)0.666667_$ (equal 0.666667 (/ 2 3.))nil_$ (equal 0.666667 (/ 2 3.) 1e-5)T_$ (equal 0.666667 (/ 2 3.) 1e-6)T_$ (equal 0.666667 (/ 2 3.) 1e-7)nil
I am not sure if there is a variable to increase/decrease the precision, after the division (/ 2 3.) operation. However I've found the smallest comparsion limit on ACAD2015 which I use:
  1. _$ (equal 0.6666666666666667 (/ 2 3.) 1e-16)nil_$ (equal 0.666666666666667 (/ 2 3.) 1e-15)T_$
And the further tests I did, perhaps show the limits:
  1. ; comparsion limit:_$  (= (* 1 1e+100) (* 1 1e+101))nil_$  (= (* 1 1e+1000) (* 1 1e+1001))T; maximum/minimum number limit:_$ (* 1 1e+100)1.0e+100_$ (* 1 1e+1000)1.#INF_$ (* 1 1e-100)1.0e-100_$ (* 1 1e-1000)0.0
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 10:17 , Processed in 1.179330 second(s), 72 queries .

© 2020-2025 乐筑天下

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