乐筑天下

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

[编程交流] 是否将项目添加到翻转参数?

[复制链接]

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-6 09:00:01 | 显示全部楼层 |阅读模式
当你
  1. (vlax-dump-object
  2. (setq [u][b]v[/b][/u] (vlax-ename->vla-object (car (entsel)))
  3. ) t
  4. )

 
得到的翻转参数
  1. ; IAcadBlockFlipActionEntity: IAcadBlockFlipActionEntity Interface
  2. ; Property values:
  3. ;   ActionType (RO) = "Flip"
  4. ; etc.
  5. ;   ObjectName (RO) = "AcDbBlockFlipActionEntity"
  6. ; etc.
  7. ; Methods supported:
  8. ;   ArrayPolar (3)
  9. ;   ArrayRectangular (6)
  10. ;   Copy ()
  11. ;   Delete ()
  12. ;   GetBoundingBox (2)
  13. ;   GetExtensionDictionary ()
  14. ;   GetXData (3)
  15. ;   Highlight (1)
  16. ;   IntersectWith (2)
  17. ;   Mirror (2)
  18. ;   Mirror3D (3)
  19. ;   Move (2)
  20. ;   Rotate (2)
  21. ;   Rotate3D (3)
  22. ;   ScaleEntity (2)
  23. ;   SelectionSet ()
  24. ;   SetSelectionSet (1)
  25. ;   SetXData (2)
  26. ;   TransformBy (1)
  27. ;   Update ()

 
但是如果你尝试使用
(vla选择集v)

(vlax调用v’SelectionSet)
你会得到
; 错误:无函数定义:VLA-SELECTIONSET
 
如何在不使用命令调用的情况下将对象添加到flip参数?
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-6 10:42:49 | 显示全部楼层
我想出来了。
 
注意:使用编辑动态块(在块编辑器中)。
 
  1. (defun c:test ( / ss->lst action ss )
  2. (vl-load-com)
  3. (defun ss->lst ( ss flag / id lst )
  4.    (if (eq 'PICKSET (type ss))
  5.      (repeat (setq id (sslength ss))
  6.        (
  7.          (lambda ( name )
  8.            (setq lst
  9.              (cons
  10.                (if flag (vlax-ename->vla-object name)
  11.                  name
  12.                )lst
  13.              )
  14.            )
  15.          )(ssname ss (setq id (1- id)))
  16.        )
  17.      )
  18.    )
  19. )
  20. (if
  21.    (and (or (eq 1 (getvar 'blockeditor))(prompt "\n**Must be in block editor to use!**"))
  22.      (setq action (car (entsel "\nSelect an Action Entity: ")))
  23.      (setq action (vlax-ename->vla-object action))
  24.      (setq ss (ss->lst (ssget) t))
  25.    )
  26.    (
  27.      (lambda ( group )
  28.        (vlax-invoke-method action 'SetSelectionSet
  29.          (vlax-make-variant
  30.            (vlax-safearray-fill
  31.              (vlax-make-safearray vlax-vbobject
  32.                (cons 0 (1- (length group)))
  33.              ) group
  34.            )
  35.          )
  36.        )
  37.      )
  38.      (append
  39.        (vlax-safearray->list
  40.          (vlax-variant-value
  41.            (vlax-invoke-method action 'SelectionSet)
  42.          )
  43.        ) ss
  44.      )
  45.    )
  46. ) (princ)
  47. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 06:15 , Processed in 1.495287 second(s), 56 queries .

© 2020-2025 乐筑天下

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