bsimpson 发表于 2022-7-6 11:15:03

运行Lisp文件

我有一个lisp文件,由于某种原因无法运行。
 
这是我几年前运行过的一个旧lisp例程。
 
如果有人能帮我找到激活lisp例程的代码,我将不胜感激。我尝试了假定的代码vertsightH100V10,我收到了一条未知的comand消息。
 
可能这是AutoCAD的另一个版本,即2010。
 
顺致敬意,
Bsimpson公司
 
(defun vk_GetPerpAng (CurveObj Dist)
((lambda (d)
    (if (zerop (cadr d))
      pi
      (+ (atan (apply '/ d))
(/ pi
   (if (minusp (cadr d))
       -2
       2
   )
)
      )
    )
)
   (cdr
   (reverse
(vlax-curve-getFirstDeriv CurveObj (vlax-curve-getParamAtDist CurveObj Dist))
   )
   )
)
)
(defun vertsightH100V10 (/
   Dist
   EndDist
   EndPoint
   Fuzz
   LineLen
   MinDist
   PathObj
   Perp1Len
   Perp2Len
   Point1
   Point2
   StartDist
   StartPoint
   Step
    )
(princ "\nSelect PATH: ")
(setq PathObj (vlax-ename->vla-object (car (entsel))))
(setq EndDist   (vlax-curve-getDistAtParam PathObj (vlax-curve-getEndParam PathObj))
Fuzz   0.01      ; accuracy
Perp1Len10.5
Perp2Len1.5
LineLen   65.0
Step   3.0
StartDist 0.0
MinDist   (sqrt (- (expt LineLen 2) (expt (- Perp1Len Perp2Len) 2)))
Dist   MinDist
)
(while (< Dist EndDist)
   (setq Point1 (polar (setq StartPoint (vlax-curve-getPointAtDist PathObj StartDist))
(vk_GetPerpAng PathObj StartDist)
Perp1Len
)
   )
   (while
   (and (< Dist EndDist)
   (< (distance
Point1
(setq Point2 (polar (setq EndPoint (vlax-curve-getPointAtDist PathObj Dist))
       (vk_GetPerpAng PathObj Dist)
       Perp2Len
       )
)
      )
      LineLen
   )
   )
      (setq Dist (+ Dist Fuzz))
   )
   (if (< Dist EndDist)
   (progn (progn (entmake (list (cons 0 "LWPOLYLINE")
      (cons 100 "AcDbEntity")
      (cons 100 "AcDbPolyline")
      (cons 90 4)
      (cons 10 StartPoint)
      (cons 10 Point1)
      (cons 10 Point2)
      (cons 10 EndPoint)
       )
   )
   )
   (setq StartDist (+ StartDist Step)
    Dist      (+ Dist Step)
   )
   )
   )
)
(vlax-release-object PathObj)
(princ)
)

BearDyugin 发表于 2022-7-6 11:29:59

这不是一个命令,而是一个函数!
在括号中输入函数名,try(vertsightH100V10)

Tiger 发表于 2022-7-6 11:39:01

将Lisp加载到AutoCAD时,它会在命令行上显示什么吗?

MSasu 发表于 2022-7-6 11:53:07

只要创造一个阿卡多克。lsp文件放入AutoCAD的支持文件夹(请参见此处),并将下面的代码与上面发布的代码一起粘贴到其中;这将添加一个名为vertsightH100V10的新命令。
 
(defun c:vertsightH100V10()
(vertsightH100V10)
(princ)
)

(princ)
 
当做

bsimpson 发表于 2022-7-6 12:02:57

lsp函数工作过一次,但现在该函数存在以下错误:
 
 
错误:没有函数定义:VLAX-ENAME->VLA-OBJECT
 
知道这意味着什么吗

Lee Mac 发表于 2022-7-6 12:08:24

可能包括
 

(vl-load-com)

 
在Lisp程序的顶部

bsimpson 发表于 2022-7-6 12:20:42

精彩的
页: [1]
查看完整版本: 运行Lisp文件