乐筑天下

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

[编程交流] 编辑“文本字符串”?

[复制链接]

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 14:28:15 | 显示全部楼层 |阅读模式
您好,我也是autolisp的新手。。我有一个关于Lisp程序的问题。。
 
正如我之前所说,我是Lisp程序的新手。。
 
以下是:
 
 
  1. (defun C:dd()
  2. ;parametreler ayarlaniyor.
  3. (setq dostmode (getvar "osmode"))
  4. (setvar "osmode" 1)
  5. ;parametreler ayarlandi.
  6. ;layer girisleri yapiliyor.
  7. (command "-layer" "new" "SK_SET" "color" "40" "SK_SET" "")
  8. (command "-layer" "new" "SK_SET_YAZI" "color" "3" "SK_SET_YAZI" "")
  9. ;layer girisleri yapildi.
  10. ;veriler aliniyor.
  11. (setq point (getpoint "\n Tıkla sıhhat bul..."))
  12. ;veriler alindi.
  13. ;line objesi hazirlaniyor.
  14. (setq linex (car point))
  15. (setq linex (+ linex 0))
  16. (setq liney (cadr point))
  17. (setq liney (+ liney 23))
  18. (setq linepoint (list linex liney))
  19. ;line objesi hazirlandi.
  20. ;km hesaplaniyor.
  21. (setq kmx (car point))
  22. (setq kmx (- kmx 1))
  23. (setq kmy (cadr point))
  24. (setq kmy (+ kmy 7))
  25. (setq kmpoint (list kmx kmy))
  26. ;;;;;;;;;;;;;;;;;;;;
  27. (setq km (car point))
  28. (setq km (rtos km 2 2))
  29. (setq km (strcat "KM=" km))
  30. (princ km)
  31. ;km hesaplandi.
  32. ;kot hesaplaniyor.
  33. (setq kotx (car point))
  34. (setq kotx (+ kotx 3))
  35. (setq koty (cadr point))
  36. (setq koty (+ koty 7))
  37. (setq kotpoint (list kotx koty))
  38. ;;;;;;;;;;;;;;;;;;;;
  39. (setq kot (cadr point))
  40. (setq kot (/ kot 10))
  41. (setq kot (rtos kot 2 3))
  42. (setq kot (strcat "KOT=" kot))
  43. (princ kot)
  44. ;mesafe hesaplandi.
  45. ;ve sonuc
  46. (command "-textstyle" "F1")
  47. (command "-style" "F1" "ISOCPEUR.TTF" "2" "" "" "" "" "")
  48. (command "-layer" "make" "SK_SET_YAZI" "")
  49. (command "_text" kmpoint 90 km)
  50. (command "_text" kotpoint 90 kot)
  51. (command "-layer" "make" "SK_SET" "")
  52. (command "donut" "0" "2" point "")
  53. (command "_line" point linepoint "")
  54. ;ve sonuc
  55. ;parametreler ayarlaniyor.
  56. (setvar "osmode" dostmode)
  57. ;parametreler ayarlandi.
  58. )

 
这对我来说很好,但还有一些不完整的地方。。
 
例如:
 

                               
登录/注册后可看大图

 
此图像是上述lisp的结果。。
 
---------------------------
 
但我想要这样:
 

                               
登录/注册后可看大图

 
---------------------------
 
所以
 
旧:KM=349
通缉:KM=0+349.00
 
旧:KM=1452.43
通缉:KM=1+452.43
 
旧:KM=25.4
通缉:KM=0+025.40
 
这样地
 
谁能帮我一下吗?
 
我很抱歉英语不好
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:38:29 | 显示全部楼层
这应该是你想要的:
 
[code]defunc:dd/*错误*vl ov pt lpt xpt xStr YPTR[color=BLUE defun*错误*msg)[/color b]颜色=红色](ifov(mapcar'setvarvl ov[color=BLUE如果[color][color=BLUE wcmatchb]小写msg“*退出*,*退出*”princ[color=RED(strcatff00ff][n>“princsetqvl color=DARKRED]“CLAYER”“CMDECHO”“OSMODE”ovmapcar'getvarvl[color=BLUE setvar[/color b]“CMDECHO”0如果[color]nottblsearch“LAYER”“SK#U集合”[color=BLUE color]35; ff00ff]“_。-层”“_M”“SK_SET”“_C”“40”“SK_SET””“[color=红色】[color=红色】([/color b]非[color]tbl搜索[color]“LAYER”[/color“SK_SET_YAZI”[/color)[/color([/color命令[/color“.-LAYER”[/color“#M”[/color b]“SK_SET_YAZI”“u C”“3”“SK_SET_YAZI”如果[color][color=RED(不是[color][color=RED 4]([/color b]TBL搜索[color]b]“STYLE”“F1”命令“-style”“F1”“ISOCPEUR.TTF”“2”][color]如果[color][color=BLUE getpoint][color]“\nT?kla s?hhat bul…”progn][color][color=BLUE setvar][color]0[color][setq[color]lpt列表[color]汽车[color]pt+[color=BLUE cadr][pt23[color][=RED])xpt列表[color][color]汽车[color]pt1[color][color=BLUE b][]cadr[color]pt7xStrrtos[color][color=BLUE car]pt2=RED])cond
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 14:46:07 | 显示全部楼层
谢谢你的帮助
 
我正在检查你的Lisp程序
 
再次出现问题,但我会查找代码,如果我能解决这个问题,这对我来说将是惊人的。。
 
然后我把结果贴在这里,我希望我能做到
 
这就是问题所在:
 

                               
登录/注册后可看大图

 
谢谢,伙计,干杯
 
编辑:
 
伙计,这些代码对于初学者来说太复杂了,所以我无法修复:/
 
如果“km”值带有“”(即=1100.52),当该值为“1100”时,其工作正常,结果如下:KM=0+0001100
 

                               
登录/注册后可看大图

 
抱歉浪费了你的时间兄弟:不确定:
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:49:21 | 显示全部楼层
我会查的伙计,不要浪费时间
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:55:20 | 显示全部楼层
试试这个:
 
[code](defun c:dd(/*error*vl ov pt lpt xpt xStr ypt yStr)(defun*error*(msg)(if ov(mapcar'setvar vl ov))(if(not(wcmatch(strcase msg)“*QUIT*,*EXIT*”)(princ(strcat“\n>”)(princ))(setq vl'(“CLAYER”“OSMODE”“CMDECHO”“DIMZIN”)ov(mapcar'getvar vl))(mapcar'setvar(cddr vl)'(0))(if(not(tblsearch“LAYER”“SK\u SET”);)(命令“-LAYER”“\u M”“SK\u SET”“\u c”“40”“SK\u SET”“)(if(not(tblsearch”LAYER“SK\u SET\u YAZI”)(command“-LAYER”“\u M”“SK\u SET\u YAZI”“\u C”“3”“SK\u SET\u YAZI”“)(if(not(tblsearch”STYLE“F1”)(command“-STYLE”“F1”“ISOCPEUR.TTF”“2”“)(if(setq pt(getpoint“\nT?kla s?hhat bul…”)(progn(setvar“OSMODE”0)(setq lpt(list(car pt)(+(cadr pt)23))xpt(list(-car pt)1)(+(cadr pt)7))xStr(rtos(car pt)2 2))(cond((
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 15:04:05 | 显示全部楼层
这与第一个相同,结果如下:
 

                               
登录/注册后可看大图

 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:05:41 | 显示全部楼层
抱歉-输入了发布的代码-请重试上述代码
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 15:15:36 | 显示全部楼层
哇!太棒了!它现在工作得很好!伙计,你统治。。
 
你成就了我的一天,谢谢你,兄弟!
 

                               
登录/注册后可看大图

 
给你的电子啤酒
 
再次感谢您的努力
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:20:29 | 显示全部楼层
Wooowww
 
很好的啤酒,谢谢
 
没问题,我很乐意帮忙
 
如果您对代码本身有任何疑问,因为您可能想自己学习LISP,只要问一下,我会尽力解释
回复

使用道具 举报

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 15:25:12 | 显示全部楼层
 
当然,我会学的!我会检查你的Lisp程序,试着理解。。谢谢你的帮助,伙计。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:34 , Processed in 0.391341 second(s), 84 queries .

© 2020-2025 乐筑天下

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