broncos15 发表于 2022-7-5 17:37:29

在multilea上交换箭头

我有一个关于交换多重引线箭头的快速问题。例如,其中一个代码只交换到整数符号,另一个代码交换到点。我注意到的一件事是,除非图形中已经有另一个具有相同箭头的多重引线,否则它不起作用。我不确定这是否与图形中实际不存在的块有关,或者是其他原因。我的一个密码是
(defun c:mleaderdot (/ ss cnt obj *error*)
(defun *error* (msg)
   (if (not
         (member msg '("Function cancelled" "quit / exit abort"))
       )
   (princ (strcat "\nError: " msg))
   )
   (princ)
)
(if (setq ss (LM:ssget "\nSelect MLEADERS to put dot"
                        '(((0 . "MULTILEADER")))
            )
   )
   (progn
   (setq cnt 0)
   (repeat (sslength ss)
       (setq obj (vlax-ename->vla-object (ssname ss cnt)))
       (setq cnt (+ cnt 1))
       (vla-put-ArrowheadBlock obj "_dot")
   )
   )
)
(princ)
)

SOliver 发表于 2022-7-5 18:06:06

我在尝试使用时发现相同的“未找到密钥”错误
 
(vla-put-arrowheadtype ent "_dot")
 
然而,我成功地用
 
(vla-put-arrowheadtype xEnt 3)
 
一旦我使用了箭头类型,我就可以放置箭头块“U点”。
 
好的,这里有一种(有点混乱)的方法,允许您根据块名称选择箭头。该方法迭代一个最大为19的整数,该整数是可用的箭头数(或至少vla put ARROWSHEADTYPE 20未找到错误)。每个箭头类型都应用于选择图元和从vla get ARROWSHEADTYPE中拾取的块名称。潜在箭头列表打印到控制台。循环完成后,选定多重引线的箭头将恢复到其原始状态。最后,邀请用户输入表示所需箭头块名称的整数。

   (vl-load-com)
   (defun c ()
   (setq ent (car(entsel))
         xEnt (vlax-ename->vla-object ent)
         aht (vla-get-arrowheadtype xEnt)
               i -1)
   (while (< (setq i (+ i 2)) 18)
         (setq str (strcat
            (rtos i 2)
            ". "
            (vla-get-arrowheadblock xEnt)
            "      "
            (rtos (1+ i))
            ". "))
         (vla-put-arrowheadtype xEnt (1+ i))
         (princ (strcat
                   str
                   (vla-get-arrowheadblock xEnt)
                   "\n")))
      
      
       (princ (strcat
            "19. "
            (vla-get-arrowheadblock xEnt)
            "\n"))
       (vla-put-arrowheadtype xEnt aht)
       (vla-put-arrowheadtype xEnt (getint "Enter the id of the arrow head you're looking for:"))
   )

BIGAL 发表于 2022-7-5 18:21:17

使用“属性”可以选择多个引线并设置“点”等。不知道为什么需要lisp?

broncos15 发表于 2022-7-5 18:25:38

谢谢你的帮助!有趣的是,它得到了这个错误,但整数方法可以工作。我会用这个角色代码,谢谢你的帮助!BigAL,我从来没有真正打开过属性对话框,除非我必须使用它,否则我不会使用它,因为我发现它比使用命令行慢得多。

Grrr 发表于 2022-7-5 18:41:57

漂亮的线!也许这将有助于与VLA一起打造新的mleaderstyle。
当我尝试制作新的mleaderstyles时,每个人都应该包含每种standart箭头类型,但此时失败了。
页: [1]
查看完整版本: 在multilea上交换箭头