世人皆醉 发表于 2023-3-26 11:57:33

如何标注图形的弧长呢

代码如下

(defun c:y2()
(setq pt0(getpoint "插入点"))
(setq p1(list(+ (car pt0) 300) (+ (cadr pt0) 300)))
(setq p2(list(+ (car pt0) 300) (- (cadr pt0) 300)))
(command "arc" "c" pt0 p1 p2 )
(setq d1(entlast))
(Command "dimarc" d1 p1 ))实际画出来的圆弧没有标注,有没有大佬可以帮忙改下,麻烦了

xyp1964 发表于 2023-3-26 11:57:34


(defun c:tt ()
(if (setq pt0 (getpoint "\n插入点: "))
    (progn
      (setq p1 (list (+ (car pt0) 300) (+ (cadr pt0) 300)))
      (setq p2 (list (+ (car pt0) 300) (- (cadr pt0) 300)))
      (command "arc" "c" pt0 p1 p2)
      (setq s1 (entlast))
      (Command "dimarc" (list s1 p1) p1)
    )
)
(princ)
)

guosheyang 发表于 2023-3-26 12:14:55

(Command-s "dimarc" d1(polar p1(angle (cdr(assoc 10(entget(entlast))))p1)(*(cdr(assoc 40(entget(entlast))))0.25)))

guosheyang 发表于 2023-3-26 12:17:11

最后一句这样改试下

cchessbd 发表于 2023-3-26 13:47:30

你这应该是没有关闭捕捉。关闭了再试试看!

ssyfeng 发表于 2023-3-26 14:06:37

试试这样行不行:
(defun c:y2(/ d1 last0 os p1 p2 pt0)
        (setq last0 (entlast)
                os (getvar "OSMODE")
        )
        (setq pt0(getpoint "插入点"))
        (setvar "OSMODE" 16384)
        (setq p1(list(+ (car pt0) 300) (+ (cadr pt0) 300)))
        (setq p2(list(+ (car pt0) 300) (- (cadr pt0) 300)))
        (vl-cmdf "arc" "c" pt0 p1 p2)
        (if (null (equal last0 (setq d1 (entlast))))
                (vl-cmdf "dimarc" d1 p1)
        )
        (setvar "OSMODE" os)
        (princ)
)

世人皆醉 发表于 2023-3-27 08:18:00

ssyfeng 发表于 2023-3-26 14:06
试试这样行不行:
(defun c:y2(/ d1 last0 os p1 p2 pt0)
        (setq last0 (entlast)


也是不行的

世人皆醉 发表于 2023-3-27 08:22:20

guosheyang 发表于 2023-3-26 12:14
(Command-s "dimarc" d1(polar p1(angle (cdr(assoc 10(entget(entlast))))p1)(*(cdr(assoc 40(entget(entl ...

测试了还是一样,没有标注的

世人皆醉 发表于 2023-3-27 08:25:44

cchessbd 发表于 2023-3-26 13:47
你这应该是没有关闭捕捉。关闭了再试试看!

增加了关闭对象捕捉也是没有用的

ssyfeng 发表于 2023-3-27 10:07:18

那就用entmake生成吧




页: [1]
查看完整版本: 如何标注图形的弧长呢