ktbjx 发表于 2022-7-5 13:15:18

Entmake圆形颜色

我的代码怎么了???我知道它的编码很糟糕,但有人能帮忙吗?
 

(defun c:test(/ sel int ent str end reyjus hcol clr ss)
(setq reyjus (getreal "\nEnter Radius: "))

(While T
(if (setq ss (ssget "_:S" (list '(0 . "TEXT"))))
    (foreach e (mapcar 'cadr (ssnamex ss))
      (setq hcol (atof (cdr (assoc 1 (entget e)))))
      (cond ((<= hcol 1.5)(setq clr 252))
                                   ((<= hcol 2.5)(setq clr 5))
                                    ((<= hcol 3.5)(setq clr 3))
                                    ((<= hcol 5)(setq clr 30))
                                    ((<= hcol 10)(setq clr 1))
                                    ((> hcol 10)(setq clr 6)))
      (command "_Change" e "" "_p" "_Color" clr "")

    )
)

(if (setq int -1 sel (ssget "_:S" '((0 . "LINE"))))
    (while
    (setq ent (ssname sel (setq int (1+ int))))
      (setq str (cdr (assoc 10 (entget ent)))
            end (cdr (assoc 11 (entget ent)))
      )

      (entmake
      (list '(0 . "CIRCLE")
            (cons 10 (mapcar '(lambda (q p) (* (+ q p) 0.5)) str end))
            (cons 40 (+(- (distance str end) (distance str end)) reyjus.))
            ;(cons 62 . clr)
               
      )
      )
    )
)

)

(princ)
)

dlanorh 发表于 2022-7-5 13:29:04

当您向cons函数提供两个原子作为参数时,它会创建一个点对:

(cons 62 . clr)

Grrr 发表于 2022-7-5 13:44:20

 
 
哈哈,谢谢你解释grr!是的!现在它正在工作
最后一个问题,是否也可以对所做的圆进行实体填充?在同一个(entmake)上?

ktbjx 发表于 2022-7-5 13:49:06

 
嵌入图案填充实体可能会有问题,需要大量代码;因此,我建议使用对标准AutoCAD BHATCH命令的调用,或将ActiveX addhatch方法与appendouterloop方法结合使用-以下是后者的示例。

Lee Mac 发表于 2022-7-5 13:57:36

我会试着读的,先生,谢谢

ktbjx 发表于 2022-7-5 14:14:58

 
你说得对,先生!entmaking hatch是如此复杂,我甚至无法理解代码!><
我会遵守命令的
 
这是我之前代码中添加的图案填充
(defun c:Text2(/sel int ent str end reyjus hcol clr ss sabilog)(setq reyjus(getreal“\n输入圆半径:”)(而T(if(setq ss(ssget“:S”(list’(0。“TEXT”))))(foreach e(mapcar’cadr(ssnamex ss))(setq hcol(atof(cdr(assoc 1(entget e))))))))(cond((

ktbjx 发表于 2022-7-5 14:16:40

页: [1]
查看完整版本: Entmake圆形颜色