Lispboy 发表于 2016-12-3 15:40:45

填充图例表

创建图中所有填充的图例表,后续想当刷子还是什么的,自己决定


(defun c:XDTB_TJHATULI ( / blk clr e h ha hascl i lst lyr mode name scl ss x y)
(defun _maketuli (clr mode lyr)
    (setq e (xdrx_polyline_make (xd::pnt:getrecpnts '(0 0 0) (* scl 10.)
                                                  (* 5 scl)
                                ) t
          )
    )
    (xdrx_setpropertyvalue e "constantwidth" (* scl 0.3) "color" 7 "layer"
                           lyr
    )
    (setq ha (xdrx_hatch_make e))
    (xdrx_setpropertyvalue ha "color" clr "patternname" mode "layer" lyr)
    (setq name (xdrx_prompt "XD-TJ-HA-" mode "-" clr t))
    (if (not (setq blk (xdrx_object_get "block" name)))
      (progn
        (xdrx_block_make (strcase name) (list e ha) '(0 0 0.) t)
        (xdrx_entity_delete (entlast))
        (setq blk (xdrx_object_get "block" name))
        (xdrx_draworder->back (setq ha (car (xdrx_block_getentities blk '
                                                                  (
                                                                     (0 . "HATCH")
                                                                  )
                                          )
                                     )
                              )
        )
        (setq hascl (XD::Hatch:GetSclByGap mode (* 1.414 scl)))
        (xdrx_setpropertyvalue ha "PatternScale" hascl "patternname"
                             (list 1 mode)
        )
      )
    )
    blk
)
(if (setq ss (ssget "x" '((0 . "HATCH"))))
    (progn
      (setq scl (* (xd::var:getratio) (xd::var:getscaleratio)))
      (setq lst (mapcar
                  '(lambda (x)
                     (list (xdrx_getpropertyvalue x "patternname") x)
                   )
                  (xdrx_pickset->ents ss)
                )
          lst (xd::list:groupbyindex lst 0.01)
          lst (vl-sort lst '(lambda (x y)
                                (< (car x) (car y))
                              )
                )
          lst (mapcar
                  '(lambda (x)
                     (list (car x) (cadr x))
                   )
                  lst
                )
          i 0
          lst (mapcar
                  '(lambda (x)
                     (setq i (1+ i))
                     (list (itoa i) (_maketuli (setq clr
                                                     (xdrx_getpropertyvalue
                                                                          (last x) "color" t
                                                     )
                                             )
                                             (car x) (setq lyr
                                                             (xdrx_getpropertyvalue
                                                                                  (last x) "layer" nil
                                                             )
                                                     )
                                  ) (car x) lyr
                           (vl-princ-to-string clr)
                     )
                   )
                  lst
                )
          lst (append (list (list "填充图例表" nil nil nil nil) (list "序号" "图例" "模式" "图层" "颜色")) lst)
      )
      (if (not #hatch_tuli_txth)
      (setq #hatch_tuli_txth 5.0)
      )
      (if (setq h (getreal (xdrx_prompt "\n字高<" #hatch_tuli_txth ">:" t)))
      (setq #hatch_tuli_txth h)
      )
      (xd::text:Init 1)
      (xd::table:makefromlist lst '(0 0 0) #hatch_tuli_txth (/ #hatch_tuli_txth 2.0))
      (if (vl-catch-all-error-p (vl-catch-all-apply 'XD::Drag:SimpleMove (list (entlast) "\n表格插入点:" 8 t)))
         (xdrx_entity_delete (entlast))
      )
    )
)
(princ)
)


whdong76 发表于 2016-12-3 15:56:07

正需要,支持楼主大人了!

守仁格竹GM 发表于 2016-12-3 16:54:37

回的人少,我来小顶一下

yjf247606 发表于 2016-12-3 19:29:42

谢谢楼主,下来学习。

qqqincccken 发表于 2016-12-4 00:12:35

谢谢提供,要那么多币币呀,呵呵

longer1000 发表于 2016-12-4 08:44:59

正需要,支持楼主大人了!

wd6688 发表于 2016-12-4 09:19:25

不错,这个挺全的!

死神去了 发表于 2016-12-4 11:26:04

确实是难得好帖啊,顶先

453055586 发表于 2016-12-4 18:53:04

楼主的作品都是精品啊,太好了,谢谢

yoyoho 发表于 2016-12-6 09:05:51

谢谢楼主分享!!!!

sh_h 发表于 2016-12-6 14:31:35

确实是难得好帖啊,顶先

fslfycf 发表于 2016-12-28 11:27:12

啥也不说了,感谢楼主分享哇!

jian2dan 发表于 2017-6-12 00:11:32

这个有点强大了!!{:1_24:}

abenmao168 发表于 2017-11-1 10:26:47

这个好,要支持一下

xtmr74 发表于 2018-7-18 11:19:32

精品啊,太好了,谢谢
页: [1] 2
查看完整版本: 填充图例表