Тема: Прошу помощи.
Есть лисп DIMRR. Его задача проставить по выбранным размерам размер в знаменатель с поправкой в указанном диапазоне. При его запуске предлагается выбрать диапазон, далее предлагает выбрать размер, жму интер в ком строке "no function definition: VK_RANDNUM". В чем может быть проблема? AutoCAD 2008 rus. Спасибо.
код:
(defun c:DIMRR (/ *actdoc* selset item temp_text i To From +Sign Diff Num)
(vl-load-com)
(setq *actdoc* (vla-get-activedocument (vlax-get-acad-object)))
(vla-startundomark *actdoc*)
(initget 5)
(setq To (getreal "Max величина разброса значений: "))
(setq From (- 0 To))
(setq +Sign (if (< From 0)
"+"
""
)
)
(setq Diff (- To From))
(setq selset (ssget "_:L" '((0 . "DIMENSION"))) i '-1)
(while (and selset
(setq item (ssname selset (setq i (1+ i))))
) ;_ end of and
(if (and (member '(100 . "AcDbAlignedDimension") (entget item))
(setq item (vlax-ename->vla-object item))
(member (vla-get-textoverride item) '("" "<>"))
)
(progn
(setq dmob (vla-copy item))
(vlax-put-property dmob "textcolor" 1)
(setq dimtext
(rtos (vla-get-measurement dmob)
(vla-get-UnitsFormat dmob) (vla-get-PrimaryUnitsPrecision dmob)))
(setq dimtext (atof dimtext))
(setq Num (- To (* Diff (vk_RandNum))))
(setq dimtext (+ dimtext Num))
(setq dimtext (rtos dimtext
(vla-get-UnitsFormat dmob) (vla-get-PrimaryUnitsPrecision dmob)))
(if (/= (vla-get-DecimalSeparator dmob) ".")
(setq dimtext
(vl-string-subst (vla-get-DecimalSeparator dmob) "." dimtext)
)
)
(vla-put-TextOverride dmob (strcat "\\X" dimtext))
(entmod
(subst (cons 8 "Фактический размер")
(assoc 8 (setq item (entget(vlax-vla-object->ename dmob))))
item)
)
) ;_ end of progn
) ;_ end of if
) ;_ end of while
(vla-endundomark *actdoc*)
(princ)
) ;_ end of defun