乐筑天下

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

[编程交流] 插入块时开始行

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:23:57 | 显示全部楼层
优秀点艾伦-代码更新。
 
谢谢
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:25:09 | 显示全部楼层
不客气。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:29:49 | 显示全部楼层
更新为正确的UCS
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:31:48 | 显示全部楼层
你是否对UCS进行了另一次更新?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:36:32 | 显示全部楼层
 
是,允许正常值的变化。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:39:29 | 显示全部楼层
啊,好的。
......
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 11:41:28 | 显示全部楼层
在处理奇数方向的插入时,技术组合是否更可靠?见所附示例。
 
请原谅我之前发布的混合和匹配代码。
 
  1. (defun c:AtInsert2 ( / obj )
  2. (if
  3.    (setq obj
  4.      (SelectifFoo
  5.        (lambda ( x )
  6.          (if
  7.            (vlax-property-available-p
  8.              (setq x (vlax-ename->vla-object x)) 'InsertionPoint
  9.            )
  10.            x
  11.          )
  12.        )
  13.        "\nSelect Object: "
  14.      )
  15.    )
  16.    (command "_.line" "_non"(trans (vlax-get obj 'InsertionPoint) 0 1))
  17. )
  18. )
  19. (defun SelectifFoo ( foo str / sel x )
  20. (while
  21.    (progn
  22.      (setq sel (entsel str))
  23.      
  24.      (cond
  25.        (
  26.          (vl-consp sel)
  27.          (if (not (setq x (foo (car sel))))
  28.            (princ "\n** Invalid Object Selected **")
  29.          )
  30.        )
  31.      )
  32.    )
  33. )
  34. x
  35. )

插入。图纸
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:45:06 | 显示全部楼层
让我们把它混合得更多。。。
 
  1. (defun c:AtInsert3 (/ obj)
  2. (if
  3.    (setq obj
  4.           (SelectifFoo
  5.             (lambda (x)
  6.               (if
  7.                 (vlax-property-available-p
  8.                   (setq x (vlax-ename->vla-object x))
  9.                   'InsertionPoint
  10.                 )
  11.                  x
  12.               )
  13.             )
  14.             "\nSelect Object: "
  15.           )
  16.    )
  17.     ;; AJT begin edit
  18.     ((lambda (ins)
  19.        (if (eq 1 (logand 1 (getvar 'cmdactive)))
  20.          ins
  21.          (command "_.line" "_non" ins)
  22.        )
  23.      )
  24.       (trans (vlax-get obj 'InsertionPoint) 0 1)
  25.     )
  26.     ;; AJT end edit
  27. )
  28. )
  29. (defun SelectifFoo (foo str / sel x)
  30. (while
  31.    (progn
  32.      (setq sel (entsel str))
  33.      (cond
  34.        (
  35.         (vl-consp sel)
  36.         (if (not (setq x (foo (car sel))))
  37.           (princ "\n** Invalid Object Selected **")
  38.         )
  39.        )
  40.      )
  41.    )
  42. )
  43. x
  44. )
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 11:46:35 | 显示全部楼层
 
这是迄今为止最好的代码!!!我们就快到了!!当选取一个属性来开始这条线时,它实际上是从块的插入点开始的,现在,如果第二个点或线的端点也可以从另一个属性中选取(而不是输入“AtInsert3”),我们将得到我想要的解决方案!然后继续行到下一个属性等。。。。。
太棒了,艾伦!!!
S
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:49:59 | 显示全部楼层
  1. (defun c:AtInsert3 (/ obj)
  2. (if
  3.    (setq obj
  4.           (SelectifFoo
  5.             (lambda (x)
  6.               (if
  7.                 (vlax-property-available-p
  8.                   (setq x (vlax-ename->vla-object x))
  9.                   'InsertionPoint
  10.                 )
  11.                  x
  12.               )
  13.             )
  14.             "\nSelect Object: "
  15.           )
  16.    )
  17.     ;; AJT begin edit
  18.     ((lambda (ins)
  19.        (if (eq 1 (logand 1 (getvar 'cmdactive)))
  20.          ins
  21.          (command "_.line" "_non" ins "_non" (c:ATInsert3))
  22.        )
  23.      )
  24.       (trans (vlax-get obj 'InsertionPoint) 0 1)
  25.     )
  26.     ;; AJT end edit
  27. )
  28. )
  29. (defun SelectifFoo (foo str / sel x)
  30. (while
  31.    (progn
  32.      (setq sel (entsel str))
  33.      (cond
  34.        (
  35.         (vl-consp sel)
  36.         (if (not (setq x (foo (car sel))))
  37.           (princ "\n** Invalid Object Selected **")
  38.         )
  39.        )
  40.      )
  41.    )
  42. )
  43. x
  44. )

 
当然,如果这就是你想要的,这可以简单得多。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:11 , Processed in 0.605649 second(s), 70 queries .

© 2020-2025 乐筑天下

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