乐筑天下

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

[编程交流] Reactor to Grip_strectch and L

[复制链接]

11

主题

38

帖子

27

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 08:34:40 | 显示全部楼层 |阅读模式
Hello all,
 
I'm pretty new to the reactor side of coding and I'm trying to make one that does a regenall after doing a grip_stretch to a polyline on a specific layer "a-area". This is what I've found so far. Thanks
 
(if (not *field-update*)
(setq *field-update*
(vlr-command-reactor "Field-Update" '((:vlr-commandended . field-regen)))
)
)
(defun field-regen ( reactor params )
(cond
( (equal params '("GRIP_STRETCH"))
(vla-regen
(setq *acdoc*
(cond ( *acdoc* )
( (vla-get-activedocument (vlax-get-acad-object)) )
)
)
acactiveviewport
)
)
)
(princ)
)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:51:32 | 显示全部楼层
Here is a quick example for LWPolylines:
 
  1. (vl-load-com)(if (null *grip-reactor*)   (setq *grip-reactor*       (vlr-command-reactor "grip-reactor"          '(               (:vlr-commandwillstart . grip-reactor-start)               (:vlr-commandended     . grip-reactor-end)               (:vlr-commandfailed    . grip-reactor-fail)               (:vlr-commandcancelled . grip-reactor-fail)           )       )   ))(defun grip-reactor-start ( reactor params / en in ss )   (if       (and           (wcmatch (strcase (car params)) "*GRIP_STRETCH")           (setq ss (cadr (ssgetfirst)))       )       (progn           (setq in -1)           (while               (and                   (null *willregen*)                   (setq en (ssname ss (setq in (1+ in))))               )               (setq *willregen*                   (and                       (eq "LWPOLYLINE" (cdr (assoc 0 (setq en (entget en)))))                       (eq "A-AREA" (strcase (cdr (assoc 8 en))))                   )               )           )       )   )   (princ))(defun grip-reactor-end ( reactor params )   (if       (and           (wcmatch (strcase (car params)) "*GRIP_STRETCH")           *willregen*       )       (progn           (vla-regen               (setq *acdoc*                   (cond                       (*acdoc*)                       ((vla-get-activedocument (vlax-get-acad-object)))                   )               )               acactiveviewport           )           (setq *willregen* nil)       )   )   (princ))(defun grip-reactor-fail ( reactor params )   (if *willregen*       (setq *willregen* nil)   )   (princ))
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 08:53:09 | 显示全部楼层
Out of curiosity, why do you need to regen if you grip edit LWPolylines on a particular layer?
回复

使用道具 举报

11

主题

38

帖子

27

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 09:05:28 | 显示全部楼层
We have a Room Tag Block w/ a square footage field linked to a polyline. So everytime we remodel a area and update are databases we modify that pline and if you do a regen it updates that field. So instead of regen everytime we do a grip_stretch it will only react we modifing a pline on a that layer. I hope that make sence. Thanks
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 09:16:47 | 显示全部楼层
Clear as mud. Fantastic idea.
回复

使用道具 举报

11

主题

38

帖子

27

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 09:25:32 | 显示全部楼层
Hey Lee, This seems to work. Thanks for your help. Now I just need to digest it. Thanks
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 09:27:38 | 显示全部楼层
Please read the CODE POSTING GUIDELINES and edit your post.
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:40:38 | 显示全部楼层
 
Good stuff, shout if you have questions
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 08:49 , Processed in 0.796250 second(s), 68 queries .

© 2020-2025 乐筑天下

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