谢谢你的提示。老实说,我有点避开了vlide,因为我总是发现它很难使用。不过我接受了你的建议,取得了很大的进步。以后我会先把我的错误提交给vlide。这是我到目前为止得到的:
-
- (defun c:vpdisp (/ cv ss en ed ys vs vps b c)
- (command "_.insert" "CCC_Drawing_Dim_Leader_Styles=" nil)
- (command "_.purge" "_b" "CCC_Drawing_Dim_Leader_Styles" "_n")
- (command "_.MSPACE")
- (if (/= (getvar "TILEMODE") 0)
- (setvar "TILEMODE" 0))
- (if (/= (getvar "CVPORT") 1)
- (progn
- (setq ss (ssget "X" (list (cons 0 "VIEWPORT")(cons 69 (getvar "CVPORT"))))
- en (ssname ss 0)
- ed (entget en)
- cv (cdr (assoc 69 ed))
- ys (cdr (assoc 41 ed)))
- (command "_.PSPACE")
- ;(setvar "CVPORT" cv)
- (setq vs (getvar "VIEWSIZE"))
- (setq vps (rtos (/ vs ys) 2 4))
- ;(princ (strcat "\nThe VIEWPORT Scale is 1 = " vps))
- ;(setq vps "0.8")
- ;(alert "\nYour Are Not In An Active MODELSPACE Viewport")
- )
- )
- (cond
- ((= vps "0.02")(setq b "CCC_1_50000_Dims")(setq c "CCC_Leader_1_50000"))
- ((= vps "0.04")(setq b "CCC_1_25000_Dims")(setq c "CCC_Leader_1_25000"))
- ((= vps "0.05")(setq b "CCC_1_20000_Dims")(setq c "CCC_Leader_1_20000"))
- ((= vps "0.1")(setq b "CCC_1_10000_Dims")(setq c "CCC_Leader_1_10000"))
- ((= vps "0.2")(setq b "CCC_1_5000_Dims")(setq c "CCC_Leader_1_5000"))
- ((= vps "0.4")(setq b "CCC_1_2500_Dims")(setq c "CCC_Leader_1_2500"))
- ((= vps "0.5")(setq b "CCC_1_2000_Dims")(setq c "CCC_Leader_1_2000"))
- ((= vps "0.8")(setq b "CCC_1_1250_Dims")(setq c "CCC_Leader_1_1250"))
- ((= vps "1")(setq b "CCC_1_1000_Dims")(setq c "CCC_Leader_1_1000"))
- ((= vps "2")(setq b "CCC_1_500_Dims")(setq c "CCC_Leader_1_500"))
- ((= vps "4")(setq b "CCC_1_250_Dims")(setq c "CCC_Leader_1_250"))
- ((= vps "5")(setq b "CCC_1_200_Dims")(setq c "CCC_Leader_1_200"))
- ((= vps "8")(setq b "CCC_1_125_Dims")(setq c "CCC_Leader_1_125"))
- ((= vps "10")(setq b "CCC_1_100_Dims")(setq c "CCC_Leader_1_100"))
- ((= vps "20")(setq b "CCC_1_50_Dims")(setq c "CCC_Leader_1_50"))
- ((= vps "40")(setq b "CCC_1_25_Dims")(setq c "CCC_Leader_1_25"))
- ((= vps "50")(setq b "CCC_1_20_Dims")(setq c "CCC_Leader_1_20"))
- ((= vps "100")(setq b "CCC_1_10_Dims")(setq c "CCC_Leader_1_10"))
- )
- (command "_.dimstyle" "r" b)
- (prin1))
我的问题是没有正确计算视口比例,因此没有设置维度。我将vps变量设置为标准值,并将dimstyle设置为精细。我看了Alanjt获取视口比例的方法,但我不知道如何合并它。我一直在尝试将其写入代码时出错。
有人能帮助进行视口比例计算吗?
谢谢 |