博客网 >

发图前处理下图形 Beta 0.01
作者:分类:默认分类标签:
代码:

;;发图前处理下图形 Beta 0.01
;;配合 dwfout -> dwfin 使用
;;如果可能再将图形不等比缩放一点点(不包括图框)
;;需要改进的:
;; 1 增加处理 arc circle spline 及保持宽度的Pline部分功能
;; 2 对Line分解为一点点间隙的特定长度的Trace
;;
;; Writen By eachy 2003.07.15
;; Email: eachy@21cn.com
;; 图形比较大时要耐心等等呦
(defun c:killdwg (/ $same_layer activedoc modelspace
lay ln tn ss sp ep
n ptlst layers blocks
)
(setvar "cmdecho" 0)
(if (null (tblsearch "layer" "Defpoints"))
(vl-cmdf "_.layer" "m" "Defpoints" "")
)
(if (/= (getvar "clayer") "Defpoints")
(setvar "clayer" "Defpoints")
)
;;统一图层并保持颜色
(defun $same_layer (vla-object laylst / la)
(setq la (vla-get-layer vla-object))
(vla-put-layer vla-object "Defpoints")
(if (= 256 (vla-get-color vla-object))
(vla-put-color vla-object (cadr (assoc la laylst)))
)
)
(setq activedoc (vla-get-activedocument (vlax-get-acad-object))
modelspace (vla-get-modelspace activedoc)
layers (vla-get-layers activedoc)
blocks (vla-get-blocks activedoc)
)
;;获取图层列表(("layer1" color1) ("layer2" color2) ... )
(vlax-for item layers
(setq
lay (cons (list (vla-get-name item) (vla-get-color item)) lay)
)
)
(princ "\n正在处理实体....")
;;统一图层并保持颜色
(vlax-for for-item modelspace
($same_layer for-item lay)
)
;;用DWFOUT-》DWFIN的图去掉处理图块
;;处理块定义
(princ "\n正在处理图块定义...")
(vlax-for for-item blocks
(vlax-for obj for-item
($same_layer obj lay)
)
)
;;处理图块结束
;|循环分解图中所有块
(while (setq ss (ssget "x" '((0 . "region,insert,dimension,hatch"))))
(vl-cmdf "_.explode" ss)
)|;
;;变换图中Line实体
(setq n 0)
(setq ss (ssget "x" '((0 . "line"))))
(if ss
(progn
(princ "\n正在处理Line实体...")
(repeat (sslength ss)
(setq ln (vlax-ename->vla-object (ssname ss n)))
(setq sp (vlax-curve-getstartpoint ln)
ep (vlax-curve-getendpoint ln)
)
(setq ptlst (apply 'append
(list (polar sp (angle sp ep) 1e-10)
;此值可自行调整以防止用程序反处理经过本程序处理的图形
(polar sp (/ pi 3) 1e-10)
(polar ep (/ pi 3) 1e-10)
(polar ep (angle ep sp) 1e-10)
)
)
)
;;增加trace
(setq tn (vla-addtrace
modelspace
(vlax-safearray-fill
(vlax-make-safearray vlax-vbDouble '(0 . 11))
ptlst
)
)
)
(vla-put-color tn (vla-get-color ln))
(vla-erase ln)
(setq n (1+ n))
)
)
)
(vl-cmdf "_.purge" "all" "*" "n")
(princ "\n\t===处理完成,OK!====")
(princ)
)
<< DBX-DwgScan / 字串中西文拆分 >>

专题推荐

不平凡的水果世界

不平凡的水果世界

平凡的水果世界,平凡中的不平凡。 今朝看水果是水果 ,看水果还是水果 ,看水果已不是水果。这境界,谁人可比?在不平凡的水果世界里,仁者见仁,智者见智。

中国春节的那些习俗

中国春节的那些习俗

正月是农历新年的开始,人们往往将它看作是新的一年年运好坏的兆示期。所以,过年的时候“禁忌”特别多。当然,各个地方的风俗习惯不一样,过年的禁忌也是不一样的。

评论
0/200
表情 验证码:

eachy

  • 文章总数0
  • 画报总数0
  • 画报点击数0
  • 文章点击数0
个人排行
        博文分类
        日期归档