乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 32|回复: 6

[编程交流] 运行Lisp文件

[复制链接]

14

主题

40

帖子

26

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 11:15:03 | 显示全部楼层 |阅读模式
我有一个lisp文件,由于某种原因无法运行。
 
这是我几年前运行过的一个旧lisp例程。
 
如果有人能帮我找到激活lisp例程的代码,我将不胜感激。我尝试了假定的代码vertsightH100V10,我收到了一条未知的comand消息。
 
可能这是AutoCAD的另一个版本,即2010。
 
顺致敬意,
Bsimpson公司
 
  1. (defun vk_GetPerpAng (CurveObj Dist)
  2. ((lambda (d)
  3.     (if (zerop (cadr d))
  4.       pi
  5.       (+ (atan (apply '/ d))
  6.   (/ pi
  7.      (if (minusp (cadr d))
  8.        -2
  9.        2
  10.      )
  11.   )
  12.       )
  13.     )
  14.   )
  15.    (cdr
  16.      (reverse
  17. (vlax-curve-getFirstDeriv CurveObj (vlax-curve-getParamAtDist CurveObj Dist))
  18.      )
  19.    )
  20. )
  21. )
  22. (defun vertsightH100V10 (/
  23.      Dist
  24.      EndDist
  25.      EndPoint
  26.      Fuzz
  27.      LineLen
  28.      MinDist
  29.      PathObj
  30.      Perp1Len
  31.      Perp2Len
  32.      Point1
  33.      Point2
  34.      StartDist
  35.      StartPoint
  36.      Step
  37.     )
  38. (princ "\nSelect PATH: ")
  39. (setq PathObj (vlax-ename->vla-object (car (entsel))))
  40. (setq EndDist   (vlax-curve-getDistAtParam PathObj (vlax-curve-getEndParam PathObj))
  41. Fuzz   0.01      ; accuracy
  42. Perp1Len  10.5
  43. Perp2Len  1.5
  44. LineLen   65.0
  45. Step   3.0
  46. StartDist 0.0
  47. MinDist   (sqrt (- (expt LineLen 2) (expt (- Perp1Len Perp2Len) 2)))
  48. Dist   MinDist
  49. )
  50. (while (< Dist EndDist)
  51.    (setq Point1 (polar (setq StartPoint (vlax-curve-getPointAtDist PathObj StartDist))
  52.   (vk_GetPerpAng PathObj StartDist)
  53.   Perp1Len
  54.   )
  55.    )
  56.    (while
  57.      (and (< Dist EndDist)
  58.    (< (distance
  59. Point1
  60. (setq Point2 (polar (setq EndPoint (vlax-curve-getPointAtDist PathObj Dist))
  61.        (vk_GetPerpAng PathObj Dist)
  62.        Perp2Len
  63.        )
  64. )
  65.       )
  66.       LineLen
  67.    )
  68.      )
  69.       (setq Dist (+ Dist Fuzz))
  70.    )
  71.    (if (< Dist EndDist)
  72.      (progn (progn (entmake (list (cons 0 "LWPOLYLINE")
  73.       (cons 100 "AcDbEntity")
  74.       (cons 100 "AcDbPolyline")
  75.       (cons 90 4)
  76.       (cons 10 StartPoint)
  77.       (cons 10 Point1)
  78.       (cons 10 Point2)
  79.       (cons 10 EndPoint)
  80.        )
  81.      )
  82.      )
  83.      (setq StartDist (+ StartDist Step)
  84.     Dist      (+ Dist Step)
  85.      )
  86.      )
  87.    )
  88. )
  89. (vlax-release-object PathObj)
  90. (princ)
  91. )
回复

使用道具 举报

2

主题

74

帖子

72

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:29:59 | 显示全部楼层
这不是一个命令,而是一个函数!
在括号中输入函数名,try(vertsightH100V10)
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 11:39:01 | 显示全部楼层
将Lisp加载到AutoCAD时,它会在命令行上显示什么吗?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 11:53:07 | 显示全部楼层
只要创造一个阿卡多克。lsp文件放入AutoCAD的支持文件夹(请参见此处),并将下面的代码与上面发布的代码一起粘贴到其中;这将添加一个名为vertsightH100V10的新命令。
 
  1. (defun c:vertsightH100V10()
  2. (vertsightH100V10)
  3. (princ)
  4. )
  5. (princ)

 
当做
回复

使用道具 举报

14

主题

40

帖子

26

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 12:02:57 | 显示全部楼层
lsp函数工作过一次,但现在该函数存在以下错误:
 
 
错误:没有函数定义:VLAX-ENAME->VLA-OBJECT
 
知道这意味着什么吗
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:08:24 | 显示全部楼层
可能包括
 
  1. (vl-load-com)

 
在Lisp程序的顶部
回复

使用道具 举报

14

主题

40

帖子

26

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 12:20:42 | 显示全部楼层
精彩的
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 11:19 , Processed in 0.549938 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表