kingerst 发表于 2012-9-4 18:06:33

实体填充问题!

(defun c:h1 ()

(prompt "\n灰色实体填充,指定内部点\n")
(setq pt (getpoint))
(setq oldcolor (getvar "cecolor"))
(command "color" "8")
(command "bhatch" "p" "solid" pt "")
(command "color" oldcolor)
(princ)
)

已知这个程序可以给封闭线填充颜色。可如何(setq color (acad_truecolordlg (cons 62 0))) 使用弹出框用RGB值去填充? 另外如果是框选对像,该如何修改。 请老师赐教,谢谢!!

kingerst 发表于 2012-9-4 20:02:25

我算出了所选块的中心点。可CAD提示
选择对象:
点在对象上。nil

如果用(getpoint)取点就可以。这是为什么呀。算的中心点可以用来命令填充吗?请高手指教。

(defun c:QQ( / SS I Devtype ENT1 ENT)
        (setvar "cmdecho" 0)
        (setq color (acad_truecolordlg (cons 62 0)))
        (setq co (cdr (car color)))
(IF(SETQ SS (SSGET '((0 . "INSERT") (66 . 1))))
                (PROGN
                   (SETQ I -1)
                   (REPEAT (SSLENGTH SS)
                                (SETQ EN (SSNAME SS (SETQ I (1+ I))))
                                (SETQ ENT (ENTGET EN ) ENT1 ENT)
                                (GetLeftUp EN)
                                (command "bhatch" "p" "solid" Pt "")
                                (command "color" oldcolor)
                        )
                               
                )
                  (princ)
)
)

菡萏 发表于 2012-9-4 20:31:30

设置当前颜色:

(if
(setq color (acad_truecolordlg (cons 62 0)))
   (setvar "CeColor"
           (cond ((setq c (cdr (assoc 420 color)))
                  (strcat "RGB:"
                          (itoa (lsh (lsh (fix c) 8) -24))
                          ","
                          (itoa (lsh (lsh (fix c) 16) -24))
                          ","
                          (itoa (lsh (lsh (fix c) 24) -24))
                  )
               )
               (t (itoa (cdr (assoc 62 color))))
           )
   )
)

kingerst 发表于 2012-9-4 20:36:05

多谢高手。现在问题是。我算出来的PT。在 (command "bhatch" "p" "solid" Pt "")
命令里没反应,说 点在对象上 。而用(setq pt (getpoint)) 就可以。算出来的PT和get的PT不同吗?
还是bhatch只接受(getpoint),不接受算出来的?
命令: !pt
(465.0 205.0 0.0)
命令: (setq pt1(getpoint))
(462.58 212.77 0.0)
页: [1]
查看完整版本: 实体填充问题!