fengyu6913 发表于 2024-8-28 15:47:45

如何解决:【动 态 块】相关问题

如何解决:【动 态 块】相关问题:



【动 态 块】X 比例值的 ‘负值’ 改为 ‘正值’,保持指向不变,高显修改过的块



详见样图内所述!

肯请大佬帮助!

xtjd 发表于 2024-8-28 15:47:46




kozmosovia 发表于 2024-8-28 19:45:20

下载并先在CAD中加载:https://gitee.com/kozmos/tachyoncloud/raw/master/StableVLX/VLDCL-FINAL.VLX

(and (setq ss (ssget '((0 . "insert") (66 . 1))))
   (foreach vlo (AQX:VLO ss)
       (and (= (vla-get-Effectivename vlo) "大样索引")
          (< (setq scl (vla-get-xscalefactor vlo)) 0.)
          (setq scl (vla-put-xscalefactor vlo (abs scl))
                  scl (AQX:SetBlockDynValue vlo (list (cons "角度1" pi)))
                  scl (redraw (AQX:ENAME vlo) 3)
          )
       )
   )
)

fengyu6913 发表于 2024-8-29 00:25:39

本帖最后由 fengyu6913 于 2024-8-29 00:27 编辑

kozmosovia 发表于 2024-8-28 19:45
下载并先在CAD中加载:https://gitee.com/kozmos/tachyoncloud/raw/master/StableVLX/VLDCL-FINAL.VLX

( ...
对旋转角度为 0 的有效,旋转角为其他度数的效果有点不一致
另外,大佬可以给源码学习下吗?

kozmosovia 发表于 2024-8-29 09:10:59

一般的不都是水平的?如果要任意角度都可以,
(and (setq ss (ssget '((0 . "insert") (66 . 1))))
   (foreach vlo (AQX:VLO ss)
       (and (= (vla-get-Effectivename vlo) "大样索引")
          (< (setq scl (vla-get-xscalefactor vlo)) 0.)
          (setq scl (vla-put-xscalefactor vlo (abs scl))
                  scl (AQX:SetBlockDynValue
                        vlo
                        (list (cons "角度1"
                                  (+ (AQX:GetBlockDynValue vlo "角度1") pi)
                              )
                        )
                      )
                  scl (redraw (AQX:ENAME vlo) 3)
          )
       )
   )
)

fengyu6913 发表于 2024-8-29 11:38:12

我是这样插进代码用的,当然那个加载的已经加过了
测试:
命令: tt
选择对象: 指定对角点: 找到 3 个
选择对象:
; 错误: 参数太多
命令:


(defun C:tt ( )
(if
(and (setq ss (ssget '((0 . "insert") (66 . 1))))
   (foreach vlo (AQX:VLO ss)
       (and (= (vla-get-Effectivename vlo) "大样索引")
            (< (setq scl (vla-get-xscalefactor vlo)) 0.)
            (setq scl (vla-put-xscalefactor vlo (abs scl))
                  scl (AQX:SetBlockDynValue
                        vlo
                        (list (cons "角度1"
                                    (+ (AQX:GetBlockDynValue vlo "角度1") pi)
                              )
                        )
                      )
                  scl (redraw (AQX:ENAME vlo) 3)
            )
       )
   )
)
(princ)
)

)

kozmosovia 发表于 2024-8-29 11:43:52

随手copy-paste漏了

(defun C:tt ()
(if
    (and (setq ss (ssget '((0 . "insert") (66 . 1))))
       (foreach vlo (AQX:VLO ss)
           (and        (= (vla-get-Effectivename vlo) "大样索引")
                (< (setq scl (vla-get-xscalefactor vlo)) 0.)
                (setq scl (vla-put-xscalefactor vlo (abs scl))
                      scl (AQX:SetBlockDynValue
                          vlo
                          (list
                              (cons
                                "角度1"
                                (+ (cdr        (assoc "角度1"
                                             (AQX:GetBlockDynValue vlo)
                                        )
                                   )
                                   pi
                                )
                              )
                          )
                          )
                      scl (redraw (AQX:ENAME vlo) 3)
                )
           )
       )
    )
   (princ)
)
)

fengyu6913 发表于 2024-8-29 17:43:18

kozmosovia 发表于 2024-8-29 11:43
随手copy-paste漏了

(defun C:tt ()


左右指向的可以,上下指向的没达到效果

大佬把源码分享学习一下

fengyu6913 发表于 2024-8-30 15:34:09

xtjd 发表于 2024-8-28 15:47


xtjd 大佬,源码分享学习一下呗
页: [1]
查看完整版本: 如何解决:【动 态 块】相关问题