乐筑天下

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

[编程交流] 为什么坐标重复?为什么?

[复制链接]

23

主题

102

帖子

79

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2022-7-6 07:52:09 | 显示全部楼层 |阅读模式
在精神病院度过了可怕的假期后,我又回来问问题了
  1. (vl-load-com)
  2. (setq myFilter (list (cons 0 "LINE") (cons 410 "model")))
  3. (setq alllines (ssget "x" myfilter))
  4. (setq myFilter2 (list (cons 0 "insert") (cons 410 "model")))
  5. (setq alllitems (ssget "x" myfilter2))
  6. (setq acadobj1 (vlax-ename->vla-object (ssname alllines 0)))
  7. (setq acadobj2 (vlax-ename->vla-object (ssname alllitems 0)))
  8. (setq iPts (vla-intersectwith acadobj1 acadobj2 0))
  9. (setq iPts (vlax-variant-value iPts))
  10. (setq iPts (vlax-safearray->list iPts))

085214gwag7cq9facq3bqf.jpg
回复

使用道具 举报

23

主题

102

帖子

79

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2022-7-6 08:06:25 | 显示全部楼层
不记得我在哪里找到这个Lisp程序,但它说的东西像变体类型是不好的,我想知道为什么
 
  1. (defun get_all_inters_in_SS (SS        / SSL        ;length of SS
  2.                      PTS        ;returning list
  3.                      aObj1        ;Object 1
  4.                      aObj2        ;Object 2
  5.                      N1                ;Loop counter
  6.                      N2                ;Loop counter
  7.                      iPts        ;intersects
  8. )
  9. (setq        N1  0                                ;index for outer loop
  10. SSL (sslength SS)
  11. )
  12.                                 ; Outer loop, first through second to last
  13. (while (< N1 (1- SSL))
  14.                                 ; Get object 1, convert to VLA object type
  15.    (setq aObj1        (ssname SS N1)
  16.   aObj1        (vlax-ename->vla-object aObj1)
  17.   N2        (1+ N1)
  18.    )                                        ;index for inner loop
  19.                                 ; Inner loop, go through remaining objects
  20.    (while (< N2 SSL)
  21.                                 ; Get object 2, convert to VLA object
  22.      (setq aObj2 (ssname SS N2))
  23.     aObj2 (vlax-ename->vla-object aObj2)
  24.                                 ; Find intersections of Objects
  25.     iPts  (vla-intersectwith
  26.             aObj1
  27.             aObj2
  28.             0
  29.           )
  30.                                 ; variant result
  31.     iPts  (vlax-variant-value iPts)
  32.      )
  33.                                 ; Variant array has values?
  34.      (if (> (vlax-safearray-get-u-bound iPts 1)
  35.      0
  36.   )
  37. (progn                                ;array holds values, convert it
  38.   (setq        iPts                        ;to a list.
  39.          (vlax-safearray->list iPts)
  40.   )
  41.                                 ;Loop through list constructing points
  42.   (while (> (length iPts) 0)
  43.     (setq Pts  (cons (list (car iPts)
  44.                            (cadr iPts)
  45.                            (caddr iPts)
  46.                      )
  47.                      Pts
  48.                )
  49.           iPts (cdddr iPts)
  50.     )
  51.   )
  52. )
  53.      )
  54.      (setq N2 (1+ N2))
  55.    )                                        ;inner loop end
  56.    (setq N1 (1+ N1))
  57.                                         ;outer loop end
  58. Pts
  59. )                                        ;return list of points found
  60. (setq all (ssget "X"))
  61. (get_all_inters_in_SS all)

085217rct8jg88wj4jdcqd.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:18:55 | 显示全部楼层
z是10000000?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:26:24 | 显示全部楼层
“e”用于表示非常小的亚单位坐标:
  1. (expt 10.0 -       ;will return 1.0e-008
  2. (princ 0.00000001)   ;will return 1.0e-008

 
也可能遇到大数字:
  1. (expt 10.0         ;will return 1.0e+008
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:36:50 | 显示全部楼层
关于第一个问题,你看到的是显示值,它实际上是一个双精度浮点数。它可能“看起来”是一样的,也可能是一样的,但不是真的。
您发布的代码中有一个错误的右括号
  1. (defun get_all_inters_in_SS (SS / SSL ;length of SS
  2.        PTS ;returning list
  3.        aObj1 ;Object 1
  4.        aObj2 ;Object 2
  5.        N1  ;Loop counter
  6.        N2  ;Loop counter
  7.        iPts ;intersects
  8. )
  9. (setq N1  0    ;index for outer loop
  10. SSL (sslength SS)
  11. )
  12.     ; Outer loop, first through second to last
  13. (while (< N1 (1- SSL))
  14.     ; Get object 1, convert to VLA object type
  15.    (setq aObj1 (ssname SS N1)
  16.   aObj1 (vlax-ename->vla-object aObj1)
  17.   N2 (1+ N1)
  18.    )     ;index for inner loop
  19.     ; Inner loop, go through remaining objects
  20.    (while (< N2 SSL)
  21.     ; Get object 2, convert to VLA object
  22.      (setq aObj2 (ssname SS N2)
  23.        aObj2 (vlax-ename->vla-object aObj2)
  24.     ; Find intersections of Objects
  25.     iPts  (vla-intersectwith
  26.      aObj1
  27.      aObj2
  28.      0
  29.    )
  30.     ; variant result
  31.     iPts  (vlax-variant-value iPts))
  32.     ; Variant array has values?
  33.      (if (> (vlax-safearray-get-u-bound iPts 1)
  34.      0
  35.   )
  36. (progn    ;array holds values, convert it
  37.   (setq iPts   ;to a list.
  38.   (vlax-safearray->list iPts)
  39.   )
  40.     ;Loop through list constructing points
  41.   (while (> (length iPts) 0)
  42.     (setq Pts  (cons (list (car iPts)
  43.       (cadr iPts)
  44.       (caddr iPts)
  45.        )
  46.        Pts
  47.         )
  48.    iPts (cdddr iPts)
  49.     )
  50.   )
  51. )
  52.      )
  53.      (setq N2 (1+ N2))
  54.    )     ;inner loop end
  55.    (setq N1 (1+ N1))
  56.        )
  57.       ;outer loop end
  58. Pts
  59. )     ;return list of points found
  60. (setq all (ssget "X" ))
  61. (get_all_inters_in_SS all)

 
HTH公司
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:48:00 | 显示全部楼层
http://en.wikipedia.org/wiki/Scientific_notation#E_notation
回复

使用道具 举报

23

主题

102

帖子

79

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2022-7-6 08:57:55 | 显示全部楼层
 
切换到2d工作区,你认为可能有帮助吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 20:59 , Processed in 0.541831 second(s), 69 queries .

© 2020-2025 乐筑天下

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