669423907 发表于 2011-3-27 17:38:36

改线型比例的lsp程序(已解决)

本帖最后由 669423907 于 2011-8-13 17:08 编辑

;动态修改线型比例(zhynt)2011-6-23 02:07
(defun c:ad(/ ss alts pt gr s1 lt newscale)
;(prompt "\n请选择非Contiiuous线型: ")
(setq ss (ssget) alts (getvar "LTSCALE") pt (getpoint "\n请指定一个点: "))
(while (= (car (setq gr (grread nil 5 0))) 5)
(redraw)(grdraw (cadr gr) pt 1 1)(setq i -1)
(while (setq s1 (ssname ss (setq i (1+ i))))
(if (setq lt (cdr (assoc 6 (entget s1))))(progn
(setq zq (cdr (assoc 40 (tblsearch "ltype" lt))))
(if (/= zq 0)
(setq newscale (/ (distance (cadr gr) pt) zq alts 1.))
(setq newscale 1)))
(progn (setq zq (cdr (assoc 40 (tblsearch "ltype"
(cdr (assoc 6
(tblsearch "layer" (cdr (assoc 8 (entget s1))))))))))
(if (/= zq 0)(setq newscale (/ (distance (cadr gr) pt) zq alts 1.))
(setq newscale 1))))
(vla-put-LinetypeScale (vlax-ename->vla-object s1) newscale)))
(redraw)(princ))

669423907 发表于 2011-3-29 21:15:37

回复 zhongys 的帖子

谢谢你的热心帮助。
一般用于单个对象的修改。
你的程序好像还不能连续修改吖。

sky-x-x 发表于 2023-10-10 21:42:41

感谢您的分享,终于不需要一个一个的点了

huisguiji 发表于 2024-9-3 17:05:22

各种线型可以设置各自的比例吗?

hmseu 发表于 2011-3-27 17:54:23

直接用属性修改不行么?

669423907 发表于 2011-3-28 00:32:50

属性修改不好用,当第一次修改不合适时,想要再次修改,又要点哪个框框,,,,,,

jackynine 发表于 2011-3-28 15:48:37

CAD下有个 ltscale 的命令,用这个可以修改线型比例,无法达到你的要求吗

tm20038175 发表于 2011-3-28 20:01:49

最好一次能改所有的一类比例,如虚线,把比例扩大或缩小一倍!

669423907 发表于 2011-3-28 22:55:25

回复 669423907 的帖子

我的意思是该单个对象的,ltscale 就全改了!

zhongys 发表于 2011-3-28 23:08:29

(defun c:tt()
(princ "\n输入线型比例)
(COMMAND "CHPROP" (SSGET) "" "S" PAUSE "")
)

669423907 发表于 2011-3-28 23:19:37

回复 zhongys 的帖子

首先感谢你的帮助,不知什么原因,程序没反应!!

zhongys 发表于 2011-3-29 04:37:21

先把程式加载入才可以

tm20038175 发表于 2011-3-29 11:49:37

能不能先提示当前线型比例,在提示用户输入呢?这样就很方便了。
页: [1] 2 3
查看完整版本: 改线型比例的lsp程序(已解决)