乐筑天下

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

[编程交流] 如何创建lisp程序d

[复制链接]

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:36:11 | 显示全部楼层
@bharthts01
这个Lisp程序可能会帮到你
 
  1. ;LBLCOORD - plain label point w/coords
  2. (defun c:LBLCOORD
  3. ()
  4. (setvar "CMDECHO" 0)
  5. (setq pt 1)
  6. (while (/= pt
  7. nil)
  8.    (setq pt (getpoint "\n PICK POINT TO LABEL
  9. "))
  10.    (if (/= pt nil)
  11.      
  12. (progn (setq n (strcat "N " (rtos (cadr
  13. pt))))
  14.             
  15. (setq e (strcat "E " (rtos (car
  16. pt))))
  17.             
  18. (setq tp (getpoint "\n PICK POINT FOR COORDINATES
  19. "))
  20.             
  21. (command "TEXT" tp "0"
  22. n)
  23.             
  24. (command "TEXT" "" e)
  25.      )
  26.    
  27. )
  28. )
  29. )
  30. (princ)

 
干杯,祝你好运,一定要阅读帖子#9
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:39:48 | 显示全部楼层
@bharthts01:我对您的代码做了一些更改,将两个标签打印在同一行上(顺序是您在第一篇文章中声明的顺序)。
  1. (defun c:ne ()(setvar "osmode" 1)
  2. (setq ne1 (getpoint"\nPick point..."))
  3. (setvar "osmode" 0)
  4. (if (/= ne1 nil)(go_ne)(princ"\nInvalid Location !"))
  5. (princ)
  6. )
  7. (setq tx-ht 0.5)
  8. (defun go_ne ()(setvar "luprec" 2)
  9. (setq prmt (strcat "Enter TEXT HEIGHT<"(rtos tx-ht)">: "))
  10. (princ prmt)
  11. (setq x-ht (getreal))(if (= x-ht nil)(setq x-ht tx-ht))
  12. (setq tx-ht x-ht)
  13. (setq e-x (car ne1))(setq xx (rtos e-x))
  14. (setq n-y (cadr ne1))(setq yy (rtos n-y))
  15. (tx-f)
  16. )
  17. (defun tx-f ()
  18. (setq vx (strcat " E " xx))
  19. (setq vy (strcat " N " yy))
  20. [color=red](command "_.TEXT" "_J" "_ML" "_non" ne1 x-ht 0.0 (strcat vx " / " vy))[/color]
  21. )
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 07:41:42 | 显示全部楼层
谢谢,伙计,最后一个问题。。。我已经将lisp加载到cad中,现在如何使用它?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:44:50 | 显示全部楼层
您的代码定义了一个名为NE的新命令,您可以在类似提示器的内置命令中调用该命令。
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 07:48:53 | 显示全部楼层
它现在工作得很好,只是我现在需要做一些小的调整。
 

                               
登录/注册后可看大图

 
首先,我需要一个箭头,显示它指向的位置。
第二个,我想要它显示9位数字的地方
 
e、 g.(上图中)430315507和434191791
 
编辑-使用此lisp时,对象捕捉是否正常打开和关闭?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:52:42 | 显示全部楼层
对于OSNAP,请尝试以下版本的代码:
  1. (defun c:ne( / oldOsmode e-x n-y ne1 prmt tx-ht vx vy x-ht xx yy )
  2. (defun go_ne()
  3. (setvar "luprec" 2)
  4. (setq prmt (strcat "Enter TEXT HEIGHT<" (rtos tx-ht) ">: "))
  5. (princ prmt)
  6. (setq x-ht (getreal))
  7. (if (= x-ht nil)
  8.   (setq x-ht tx-ht)
  9. )
  10. (setq tx-ht x-ht)
  11. (setq e-x (car ne1))
  12. (setq xx (rtos e-x))
  13. (setq n-y (cadr ne1))
  14. (setq yy (rtos n-y))
  15. (tx-f)
  16. )
  17. (defun tx-f()
  18. (setq vx (strcat " E " xx))
  19. (setq vy (strcat " N " yy))
  20. (command "_.TEXT" "_J" "_ML" ne1 x-ht 0.0 (strcat vx " / " vy))
  21. )
  22. (setq tx-ht 0.5)
  23. (setq oldOsmode (getvar "OSMODE"))
  24. (setvar "osmode" 1)
  25. (setq ne1 (getpoint "\nPick point..."))
  26. (setvar "osmode" 0)
  27. (if (/= ne1 nil)
  28. (go_ne)
  29. (princ "\nInvalid Location !")
  30. )
  31. (setvar "OSMODE" oldOsmode)
  32. (princ)
  33. )

当然,您的代码需要更多的调整。
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 07:54:20 | 显示全部楼层
可以在对象捕捉模式下使用这些设置获取代码吗?
 
谢谢
 

                               
登录/注册后可看大图

 
另外,如果我能让“箭头”指向坐标设置的点,那就太好了。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:00:09 | 显示全部楼层
更改此行
  1. (setvar "osmode" 1)


  1. (setvar "osmode" [color=red]427[/color])
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 08:03:05 | 显示全部楼层
快到了,
 

                               
登录/注册后可看大图

 
如果可能的话,将其保留在9位(去掉小数点后的最后2位)
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:06:00 | 显示全部楼层
要获得不带小数的数字,请调整这些行:
  1. [color=red];[/color](setvar "luprec" 2)
  2. ...
  3. (setq xx (rtos e-x [color=red]2 0[/color]))
  4. ...
  5. (setq yy (rtos n-y [color=red]2 0[/color]))
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 11:09 , Processed in 0.355819 second(s), 74 queries .

© 2020-2025 乐筑天下

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