nalsur8 发表于 2022-7-5 23:35:14

领导气球将圆圈更改为

你好
 
帮助/指导我如何将圆更改为槽
 
(defun C:bl (/ ds lg pt1 pt2 ang pt3 ht cd pt4 pt5 os dr tx)
(command "undo" "m")
(setq os (getvar "osmode"))               
(setvar "osmode" 0)                       
(setq ds (getvar "dimscale"))               
(if (= ds 0.0)                       
   (setq ds 1))                                       
(setq lg (* ds (getvar "dimasz")))       
(setq pt1 (getpoint "\nLeader Start Point: "))
(setq pt2 (getpoint pt1 "\nLeader Ending Point: "))
(setq ang (angle pt1 (list (car pt2) (cadr pt1))))                                       
(setq pt3 (polar pt2 ang lg))
(if (not num)                               
   (setq num (getint "\nStarting Item #: "))
   (setq num (+ num 1)))
(setq ht (* ds (getvar "dimtxt")))       
(setq cd (/ (* (getvar "dimtxt") ds) 0.4))
(setq pt4 (polar pt3 ang (/ cd 2)))       
(COMMAND "leader" pt1 pt2 pt3 "" "" "n")
(command "circle" "2p" pt3 (polar pt3 ang cd))
(command "text" "m" pt4 ht "0" num)       
(setvar "osmode" os)                       
)

Tharwat 发表于 2022-7-5 23:53:05

试试这个。。。
 
您真的还在使用Autocad 2002吗?如您的配置文件所示?
 

(defun c:Test (/ a b c d num pt ds lg p1 p2 ang p3 ht cd p4 pt5)
;;    Tharwat 26. Jan. 2014      ;;
(if (= (setq ds (getvar "dimscale")) 0.0)
   (setq ds 1.)
)
(setq lg (* ds (getvar "dimasz")))
(if (setq num (getint "\n Starting Item #: "))
   (while (and (setq p1 (getpoint "\n Leader Start Point: "))
               (setq p2 (getpoint p1 "\n Leader Ending Point: "))
          )
   (setq ang (angle p1 (list (car p2) (cadr p1)))
         p3(polar p2 ang lg)
         ht(* ds (getvar "dimtxt"))
         cd(/ (* (getvar "dimtxt") ds) 0.4)
         p4(polar p3 ang (/ cd 2.))
   )
   (command "_.leader" "_none" p1 "_none" p2 "_none" p3 "" "" "n")
   (setq a (polar p4 (+ ang (* pi 0.5)) (/ cd 2.))
         b (polar a ang (distance p2 p3))
         c (polar b (+ ang (* pi 1.5)) cd)
         d (polar c (+ pi ang) (distance p2 p3))
   )
   (entmakex (list '(0 . "LWPOLYLINE")
                     '(100 . "AcDbEntity")
                     '(100 . "AcDbPolyline")
                     '(90 . 4)
                     '(70 . 1)
                     (cons 10 a)
                     (cons 10 b)
                     '(42 . -1)
                     (cons 10 c)
                     (cons 10 d)
                     '(42 . -1)
               )
   )
   (entmakex (list '(0 . "TEXT")
                     (cons 10
                           (setq pt (mapcar '(lambda (p q) (/ (+ p q) 2.))
                                          (mapcar '(lambda (p q) (/ (+ p q) 2.)) a b)
                                          (mapcar '(lambda (p q) (/ (+ p q) 2.)) d c)
                                    )
                           )
                     )
                     (cons 11 pt)
                     (cons 40 ht)
                     (cons 1 (itoa num))
                     (cons 50 0.)
                     '(41 . 1.0)
                     (cons 7 (getvar 'textstyle))
                     '(71 . 0)
                     '(72 . 4)
                     '(73 . 0)
               )
   )
   (setq num (+ num 1))
   )
)
(princ)
)

nalsur8 发表于 2022-7-5 23:57:09

塔尔瓦特:
 
谢谢你的代码,我的个人资料已经更新了。。
 
李·麦克的节目
非常有用的使用它,但它没有为领导人选项,如果有用户可以选择开/关,如果他们想附加领导人,希望李Mac可以更新添加一些选项

Tharwat 发表于 2022-7-6 00:11:16

你要求的是槽对象而不是圆,我在这方面做了一些事情,在你要求其他人做其他事情之前,我的代码是否满足了你的需求?

nalsur8 发表于 2022-7-6 00:19:36

谢谢Tharwat,你的代码正是我想要的

Tharwat 发表于 2022-7-6 00:25:41

 
真为你高兴。

nalsur8 发表于 2022-7-6 00:40:31

塔尔瓦特:
 
我编辑了代码,添加了相同的函数,
如何转换为DCL,以便用户可以从对话框中输入数据
 

 
DCL代码
3
页: [1]
查看完整版本: 领导气球将圆圈更改为