乐筑天下

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

[编程交流] 提取点信息f

[复制链接]

16

主题

50

帖子

34

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 23:40:05 | 显示全部楼层 |阅读模式
有人知道如何在没有CADMEP信息的情况下从CADMEP实体中提取点信息吗?
 
我们的客户给我们这些文件,我们必须在每个衣架上放置积木。提取坐标以填充块将节省大量时间。
 
004011vjin5nnstcscaaaa.png
回复

使用道具 举报

7

主题

143

帖子

136

银币

初来乍到

Rank: 1

铜币
36
发表于 2022-7-5 23:50:37 | 显示全部楼层
在这里的另一个论坛上讨论了这个话题:
http://www.theswamp.org/index.php?topic=45166.0
也许这会有帮助。。。
回复

使用道具 举报

16

主题

50

帖子

34

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 23:54:32 | 显示全部楼层
 
我忘了说谢谢LibertyOne!
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 00:05:59 | 显示全部楼层
他们叫我约翰,
 
由于您正在获取此列表,“点”很可能是hanger对象的属性。
 
确认问题:
  1. (vlax-dump-object (vlax-ename->vla-object (car (entsel "\nSelect Object:"))) t)

 
如果它是一个属性,那么您可以通过以下方式访问它:
 
  1. (vlax-get-property (vlax-ename->vla-object (car (entsel "\nSelect Object:"))) 'points)

 
以上假设points是特性名称。然后需要解析
无论你得到什么回报。
 
ymg公司
回复

使用道具 举报

16

主题

50

帖子

34

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 00:12:04 | 显示全部楼层
所以我想出了一种方法来解决这些问题,就像你推荐的Ymg3一样。如果我一行一行地复制和粘贴代码,但当我尝试在一组项目上运行代码时,这似乎是可行的。它走错了方向。我在这里上传了一个SWF和dwg。展示正在发生的事情。
 
  1.         (setq pl_set (ssget '((0 . "MAPS_SOLID"))))
  2. (setq pl_set_lgth (SSLENGTH pl_set))
  3. (setq pl_item 0)
  4. (repeat pl_set_lgth
  5.         (setq en (SSNAME pl_set pl_item))               
  6.         (setq entvla (vlax-Ename->Vla-Object en))
  7.         (setq unitdecrp (vlax-get entvla 'description))
  8.         (if (vl-string-search "hanger" unitdecrp)
  9.                 (progn
  10.                         (setq unitpoint (vl-string-right-trim ";" (substr (vlax-get entvla 'points) 12)))                       
  11.                         (command "insert" pl_block unitpoint "1" "1" "0")
  12.                 )
  13.                 (princ "\n Invalid Objects")
  14.         )
  15.         (setq pl_item (+ pl_item 1))                               
  16. )       
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 00:14:30 | 显示全部楼层
他们叫我约翰,
 
你越来越近了。帮不了你太多了,因为我只有“普通简”cad。
 
但从符号上看,似乎有两种不同类型的衣架。
 
ymg公司
回复

使用道具 举报

16

主题

50

帖子

34

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 00:25:59 | 显示全部楼层
我在周围做实验,在我改变这个之后,它起了作用。。。。
 
  1. (if (vl-string-search "hanger" unitdecrp)

 
为此:
 
  1. (if (/= (vl-string-search "hanger" unitdecrp) nil)

 
想想看吧
 
哦,还有Ymg,我一直在使用Vanillia Autocad,但我应该知道如何从CadDuct数据库中提取信息*刘海撞墙*
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 00:30:47 | 显示全部楼层
他们叫我约翰,
 
这两者通常是等价的。我们错过了什么?所以也许我们应该
 
ymg公司
回复

使用道具 举报

16

主题

50

帖子

34

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 00:38:08 | 显示全部楼层
我也这么认为,但我想这到底是怎么回事,我一般不知道我在做什么,我会试试看!(…并不是真的期望它能工作)。然而,唉,它确实奏效了。
 
 
等等,有手册吗?!
回复

使用道具 举报

16

主题

50

帖子

34

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 00:40:48 | 显示全部楼层
所以我使用了一些对我来说很陌生的命令,我遇到了一个奇怪的问题。我使用一个边界框来确定MAP_实体风管带的方向,但它似乎取第一个的方向,而不检查其余的方向。或者我的代码出错了。。。。(很可能)。有什么建议吗?
 
  1. ((= hngr_trgt_obj "MAPS_SOLID")
  2. (progn
  3. (princ "\n This is MAP Solid. Selected layer will be ignored.\N Select hangers to populate:  ")
  4. (setq pl_set (ssget '((0 . "MAPS_SOLID"))))
  5. (setq pl_set_lgth (SSLENGTH pl_set))
  6. (setq pl_item 0)
  7. (repeat pl_set_lgth
  8.         (setq en (SSNAME pl_set pl_item))               
  9.         (setq entvla (vlax-Ename->Vla-Object en))
  10.         (setq unitdecrp (vlax-get entvla 'description))
  11.         (cond
  12.                 ((or (/= (vl-string-search "hanger" unitdecrp) nil)(and (= (vl-string-search "Hanger Strap" unitdecrp) nil) (/= (vl-string-search "Hanger" unitdecrp) nil))(/= (vl-string-search "SINGLE STRAP" unitdecrp) nil))
  13.                         (progn
  14.                                 (setq unitpoint_orig (vl-string-right-trim ";" (substr (vlax-get entvla 'points) 12)))                       
  15.                                 (if (and(or (= Z_pref "Y")(= Z_pref "y"))(/= Z_height nil))
  16.                                         (progn
  17.                                                 (setq unitpoint_mod (comma_pull unitpoint_orig "REAL_NUM"))
  18.                                                 (setq unitpoint (list (car unitpoint_mod) (cadr unitpoint_mod) (caddr Z_height)))
  19.                                         )
  20.                                         (setq unitpoint (comma_pull unitpoint_orig "REAL_NUM"))
  21.                                 )
  22.                                 (setq unitpoint_lst (append unitpoint_lst (list unitpoint)))
  23.                         )
  24.                 )
  25.                 ((or (/= (vl-string-search "Hanger Strap" unitdecrp) nil)(/= (vl-string-search "Strap" unitdecrp) nil)(/= (vl-string-search "STRAP" unitdecrp) nil))
  26.                         (progn
  27.                                 (setq unitpoint_orig (vl-string-right-trim ";" (substr (vlax-get entvla 'points) 12)))
  28.                                 (if (and(or (= Z_pref "Y")(= Z_pref "y"))(/= Z_height nil))
  29.                                         (progn
  30.                                                 (setq unitpoint_mod (comma_pull unitpoint_orig "REAL_NUM"))
  31.                                                 (setq unitpoint (list (car unitpoint_mod) (cadr unitpoint_mod) (caddr Z_height)))
  32.                                         )
  33.                                         (setq unitpoint (comma_pull unitpoint_orig "REAL_NUM"))
  34.                                 )
  35.                                 (setq unit_endsizes (vlax-get entvla 'endsize))
  36.                                 (setq x_pos (vl-string-search "x" unit_endsizes))
  37.                                 (setq duct_width (atoi (substr unit_endsizes 1 x_pos)))
  38.                                 (vla-GetBoundingBox entvla 'minpoint 'maxpoint)
  39.                                 (setq minpointlist (vlax-safearray->list minpoint))
  40.                                 (setq x_coord_min (car minpointlist))
  41.                                 (setq y_coord_min (cadr minpointlist))
  42.                                 (setq maxpointlist (vlax-safearray->list maxpoint))
  43.                                 (setq x_coord_max (car maxpointlist))
  44.                                 (setq y_coord_max (cadr maxpointlist))
  45.                                 (setq pnt_angle (RTD (angle (list x_coord_min y_coord_min)(list x_coord_max y_coord_max))))
  46.                                 (setq pnt_angle_R (angle (list x_coord_min y_coord_min)(list x_coord_max y_coord_max)))
  47.                                 (cond
  48.                                         ((and (>= pnt_angle 40.0)(<= pnt_angle 50.0))
  49.                                                 (progn
  50.                                                         (setq delta_x (* (cos pnt_angle_R) (/ duct_width 2)))
  51.                                                         (setq delta_y (* (sin pnt_angle_R) (/ duct_width 2)))
  52.                                                         (setq unitpoint_1 (list (+ (car unitpoint) delta_x) (+ (cadr unitpoint) delta_y) (caddr unitpoint)))
  53.                                                         (setq unitpoint_2 (list (- (car unitpoint) delta_x) (- (cadr unitpoint) delta_y) (caddr unitpoint)))
  54.                                                 )
  55.                                         )
  56.                                         ((> pnt_angle 50.0)
  57.                                                 (progn
  58.                                                         (setq unitpoint_1 (list (car unitpoint) (+ (cadr unitpoint) (/ duct_width 2)) (caddr unitpoint)))
  59.                                                         (setq unitpoint_2 (list (car unitpoint) (- (cadr unitpoint) (/ duct_width 2)) (caddr unitpoint)))
  60.                                                 )
  61.                                         )
  62.                                         ((< pnt_angle 50.0)
  63.                                                 (progn
  64.                                                         (setq unitpoint_1 (list (+ (car unitpoint) (/ duct_width 2)) (cadr unitpoint) (caddr unitpoint)))
  65.                                                         (setq unitpoint_2 (list (- (car unitpoint) (/ duct_width 2)) (cadr unitpoint) (caddr unitpoint)))
  66.                                                 )
  67.                                         )
  68.                                 )
  69.                                 (setq unitpoint_lst (append unitpoint_lst (list unitpoint_1)))
  70.                                 (setq unitpoint_lst (append unitpoint_lst (list unitpoint_2)))
  71.                         )
  72.                 )
  73.                 (t (princ "\n Invalid Objects"))
  74.         )
  75.         (setq pl_item (+ pl_item 1))                               
  76. )
  77. )
  78. )

004019ozoizl15clfyyv4g.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:32 , Processed in 0.821422 second(s), 75 queries .

© 2020-2025 乐筑天下

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