乐筑天下

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

[编程交流] 初级问题

[复制链接]

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:51:53 | 显示全部楼层 |阅读模式
大家好,
 
嗯,由于AlanJT的温和鼓励,我正在潜入编写自己的lisp例程的世界。首先,我已经阅读了(并且部分理解)这个网站上发布的LISP教程。我有几个新手快速提问:
 
1.您是否应该剪切并粘贴要在Acad20xx中使用的lisp例程。文档文件,以便在每次启动新图形时加载,还是应该逐个加载?
 
如果是后者。。。你能把所有的例程组合成一个大的lisp文件,这样你只需要加载一次吗?
 
3.我已经阅读了教程,但我对何时使用仍有点模糊:
 
(defun拉线(/pntl pnt2)
 
与之相反:
 
(defun C:抽绳(/pntl pnt2)
 
4.2008年运行的lisp是否应在AutoCAD 2010和2011中运行?
 
任何帮助都将不胜感激。。。如果我把这篇文章贴错了论坛,我很抱歉。
 
M
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:08:21 | 显示全部楼层
不应编辑Acad20xx。lsp。不要将其与阿卡多克混淆。lsp
这是两个不同的文件。你会想要创建一个阿卡多克。lsp
回复

使用道具 举报

13

主题

126

帖子

114

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 11:26:01 | 显示全部楼层
嗯,我和你的关系不远,但我想我可以回答你的问题。
 
1、最佳做法是不使用ACAD20??。lsp文件,因为这在技术上属于ACAD,他们可以随意覆盖它,此外,每次你得到一个新版本,你必须迁移去年到今年。不过,很多人确实使用ACADyear文件。
 
阿卡多克。LSP文件是专用于用户的,不应被覆盖,并且无论您使用的是什么版本都保持不变。
 
2.是的,您可以将多个LISP附加到ACADDOC中。lsp文件(一旦它们工作!)每次打开新图形时,CAD都会加载它们。
 
3.LISP通常向前兼容。有时会添加新命令,因此如果使用2008年不可用的2010命令,LISP将存在向后兼容问题。
 
4.我认为区别在于defun C:允许在命令行从CAD调用函数。取消。。。函数只能从中定义的LISP中调用。
 
祝你更好地了解LISP,欢迎来到论坛。
 
格伦
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 11:46:21 | 显示全部楼层
 
为了避免兼容性问题,建议根据实体的关联列表而不是使用命令语句来构建实体。
 
关于向后兼容性,下面两行代码都在工作(TEXT命令的提示会随着时间的推移而变化):
 
  1. (command "_TEXT" "_J" "_MC" '(0.0 0.0) 5.0 0 "Hello World!")
  2. (command "_TEXT" "_MC" '(0.0 0.0) 5.0 0 "Hello World!")

 
这是关联列表方法:
 
  1. (entmake (list '(0 . "TEXT")
  2.               (cons '10 '(0.0 0.0 0.0))
  3.               (cons '11 '(0.0 0.0 0.0))
  4.               (cons '1 "Hello World!")
  5.               '(40 . 5.0)
  6.               '(72 . 1)
  7.               '(73 . 2)))

 
当做
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 11:53:45 | 显示全部楼层
 
最好的方法是编写参数可变的函数IMHO
像这样方便的东西
(你可以在上面写上类似的内容,以便输入)
  1. ;;author unknown
  2. (defun text-draw (txt pnt height rotation justification)
  3.   (if (null pnt)(command "_.-TEXT" "" txt)
  4.   (if (= (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))
  5.    0.0
  6.       )
  7.     (progn     
  8.       (if justification
  9.   (command "_.-TEXT" "_J" justification "_none" pnt height rotation txt)
  10.   (command "_.-TEXT" "_none" pnt height rotation txt)
  11.       )
  12.     )
  13.     (progn
  14.       (if justification
  15.   (command "_.-TEXT" "_J" justification "_none" pnt rotation txt)
  16.   (command "_.-TEXT" "_none" pnt rotation txt)
  17.       )
  18.     )
  19.   )
  20.     )
  21. (entlast)
  22. )

 
~'J'~
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 16:59 , Processed in 0.853933 second(s), 62 queries .

© 2020-2025 乐筑天下

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