我想创建一个LISP命令,允许我选择一个块并将属性(块描述)向右移动(编辑属性位置的x坐标)。如果LISP命令使用“(setq-ss(ssget‘((0.“INSERT”)))”允许我一次选择多个块,然后将其所有属性移动到指定的X坐标,那将是一件好事。我不想使用Bedit,因为块的某些属性将被移动到不同的位置。
这是我目前掌握的代码。目前,它将允许我选择多个块并遍历每个块的所有属性。但是,我不知道如何只更改每个属性的X坐标。
- (defun c:shiftatt ( / i ss obj)
- (setq i 0)
- (if
- (and
- (setq ss (ssget '((0 . "INSERT"))))
- )
- (repeat (sslength ss)
- (setq obj (vlax-ename->vla-object (ssname ss i)))
- (foreach x (vlax-invoke obj 'GetAttributes)
-
- ;code to change x-coordinate of each attribute
- )
- (setq i (1+ i))
- )
- )
- (princ)
- )
|