- 积分
- 3370
- 明经币
- 个
- 注册时间
- 2013-9-22
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
如题:在网上找了一个LSP,可设定矩形框,框内的标注全局比例,随矩形框大小而改变。但是该程序目前无效果,如何修改?
源码在此:
(defun c:ds (/ entdata entgrp entname n ptlist scale)
(prompt "根据图框自动调整比例")
(if (setq entname (entsel "\n请选择图框"))
(if (= "INSERT" (getentdxf (car entname) 0))
(progn
(command "zoom" "o" (car entname) "")
(setq ptlist (ax:getboundingbox (car entname)))
(setq entgrp (ssget "W" (car ptlist) (cadr ptlist) '((0 . "DIMENSION,*TEXT,*LINE,HATCH"))))
(setq scale (vla-get-XScaleFactor (*en2obj* (car entname))))
(repeat (setq n (sslength entgrp))
(setq entname (ssname entgrp (setq n (1- n))))
(cond
((= "HATCH" (getentdxf entname 0))
(vla-put-PatternScale (*en2obj* entname) scale)
)
((= "DIMENSION" (getentdxf entname 0))
(vla-put-ScaleFactor (*en2obj* entname) scale)
)
((wcmatch (getentdxf entname 0) "*TEXT")
(vla-put-Height (*en2obj* entname) (* (getvar "textsize") scale))
)
((wcmatch (getentdxf entname 0) "*LINE")
(vla-put-LinetypeScale (*en2obj* entname) scale)
)
)
)
)
)
)
(princ)
) |
|