wangxf888 发表于 2024-8-13 18:23:31

请大佬帮忙调一下代码!

本帖最后由 wangxf888 于 2024-8-13 23:24 编辑

感谢 qazxswk 老大的热情专业回复,问题已解决,再次感谢!:handshake:handshake:handshake!!

kozmosovia 发表于 2024-8-13 19:02:22

(if nil
                  (command ".-hatchedit")   ;为什么改成".-hatchedit" 后没有反应呢?
                )
条件永远不会成立

qazxswk 发表于 2024-8-13 23:04:54

进入Hatchedit状态,是修改什么特性?其实鼠标双击填充对象,也可以进入编辑填充状态,何必用一个命令进入编辑状态?

(defun C:11(/ e e1 la ps si smx ss ssh)
(setvar "measurement" 1)
(setvar "cmdecho" 0)
(setq oldcolor (getvar "cecolor"))
(command "color" "8")
(setq olderr *ERROR*
            *ERROR* aeoerr
)
(command "undo" "group")

(prompt "\n当前样式:实体(SOLID)\n")
(initget "F S")

(setq ans (getpoint "\n拾取填充内部点或[修改图案填充对象(F)/选择填充边界(S)]:"))
   (cond
    ((= ans "F")
   (princ "\n选择图案填充对象:")
       (command "hatchedit")
    )
   
    ((= ans "S")
      (prompt "\n选择填充边界:")
      (setq ss (ssget))
      (command "bhatch" "p" "solid" "s" ss "" "")
    )
    (t
      (if (/= ans nil)
      (progn
          (command "bhatch" ans "p" "solid")
          (while (> (getvar "CMDACTIVE") 0)
            (command pause)
          )
          (princ)
      )
      )
    )
)
(command "color" oldcolor)
(setq *ERROR* OLDERR)
(command "_.undo" "end")
(princ))

qazxswk 发表于 2024-8-13 23:23:34

像你这种需求,可以单独建立一个填充图层,设置好图层的颜色与透明度,然后借用本论坛里的自动切换图层的代码,一填充,填充图案放到指定的图层。颜色与透明度也达到了自己想要的效果。不需要后期修改了。

wangxf888 发表于 2024-8-13 23:30:16

谢谢老大指点,还真没有用过您说的这种方式,完全可以借鉴使用!:handshake:handshake
页: [1]
查看完整版本: 请大佬帮忙调一下代码!