乐筑天下

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

[编程交流] 不同版本的lisp proble

[复制链接]

18

主题

62

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 17:22:51 | 显示全部楼层 |阅读模式
以下代码是否可以在AutoCAD 2016版本中执行。
但在AutoCAD 2014版本中无法执行
因为sp1和ep1的结果为零,
所以程序无法完成。
请前辈指导
非常感谢。
 
(setq obj1(vlax ename->vla对象(car ent1))
obj2(vlax ename->vla对象(car ent2))
obj3(vlax ename->vla对象(car ent3))
)
(setq sp1(vlax曲线getstartpoint obj1)
ep1(vlax曲线getendpoint obj1))
22.LSP
回复

使用道具 举报

10

主题

253

帖子

75

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
223
发表于 2022-7-5 17:33:37 | 显示全部楼层
转储obj1并检查其属性和方法。我认为您正在尝试获取像INSERT或TEXT这样的实体。您没有检查实体的类型。
P、 我不懂韩语/日语/中文。
回复

使用道具 举报

18

主题

62

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 17:44:23 | 显示全部楼层
感谢您的回复2014 32魏源无法演出
AutoCAD 2014 64威远已执行
 
AutoCAD 2008当前无法执行,请参阅以下完整程序
非常感谢。
 
  1. (defun C:22 (/ ang1 ang2 ent1 ent2 ent3 ep1 ep3 ipt1 ipt2 ipt21
  2.              mp1 mp3 obj1 obj2 obj3 pt1 pt2 pt3 sp1 sp3 mp11 line1 line2 line3 line4)
  3. (vl-load-com)
  4. (SETVAR "CMDECHO" 0)
  5. (command "_undo" "_be")
  6. (if (= Wh1 nil) (setq Wh1 1))
  7. (if (= Wd1 nil) (setq Wd1 1))
  8. (setq Wh (getREAL (strcat "\nEnter the length <" (rtos Wh1 2) ">: ")))
  9. (setq Wd (getREAL (strcat "\nEnter the width <" (rtos Wd1 2) ">: ")))
  10. (if (= Wh nil) (setq Wh Wh1)) (SETQ Wh1 Wh)
  11. (if (= Wd nil) (setq Wd Wd1)) (SETQ Wd1 Wd)
  12. (while (drwBranch))
  13. (princ)
  14. )
  15. (defun drwBranch ()
  16. (while
  17. (setq ent1 (entsel "\nSelecting a first tube side: "))
  18. (redraw (CAR ent1) 3)
  19. (setq ent2 (entsel "\nSelect the second tube side: "))
  20.    (IF (= nil ent2) (setq ent2 (entsel "\nSelect the second tube side <Esc>: ")))
  21.    (IF (= nil ent2)
  22.      (PROGN
  23. (PRINC "\nNot any selected...*Esc*")
  24. (EXIT)
  25. )
  26.      )
  27. (redraw (CAR ent2) 3)
  28. (setq ent3 (entsel "\nChoose another tube side: "))
  29.     (IF (= nil ent3) (setq ent3 (entsel "\nChoose another tube side <Esc>: ")))
  30.    (IF (= nil ent3)
  31.      (PROGN
  32. (PRINC "\nNot any selected...*Esc*")
  33. (EXIT)
  34. )
  35.      )
  36. (redraw (CAR ent3) 3)
  37. (setq obj1 (vlax-ename->vla-object (car ent1))
  38.      obj2 (vlax-ename->vla-object (car ent2))
  39.      obj3 (vlax-ename->vla-object (car ent3))
  40.      )
  41. (setq sp1  (vlax-curve-getstartpoint obj1)
  42.      ep1  (vlax-curve-getendpoint obj1)
  43.      mp1  (mapcar (function (lambda (a b) (/ (+ a b) 2))) sp1 ep1)
  44.      sp2  (vlax-curve-getstartpoint obj2)
  45.      ep2  (vlax-curve-getendpoint obj2)
  46.      mp2  (mapcar (function (lambda (a b) (/ (+ a b) 2))) sp2 ep2)
  47.      sp3  (vlax-curve-getstartpoint obj3)
  48.      ep3  (vlax-curve-getendpoint obj3)
  49.      mp3  (mapcar (function (lambda (a b) (/ (+ a b) 2))) sp3 ep3)
  50.      ipt1 (vlax-invoke obj1 'intersectwith obj3 0)
  51.      ipt2 (vlax-invoke obj2 'intersectwith obj3 0)
  52.      ang1 (angle ipt1 mp1)
  53.      ang2 (angle ipt2 ipt1)
  54.      pt1  (polar ipt1 ang1 Wh1)
  55.      pt2  (polar ipt2 ang1 Wh1)
  56.      pt3  (polar ipt1 ang2 Wd1)
  57.      )
  58.     (entmake   (list '(0 . "line") (cons 10 pt1) (cons 11 pt2)     ))
  59.     (setq line1 (entlast))
  60.     (command "_.DRAWORDER" ent3 "" "b" )
  61.     (command "_.trim" line1 "" ipt1 ipt2 "")
  62.     (entmake   (list '(0 . "line") (cons 10 pt1) (cons 11 pt3)     ))
  63.     (setq line2 (entlast))
  64.     (entmake   (list '(0 . "line") (cons 10 pt2) (cons 11 ipt2)     ))
  65.     (setq line3 (entlast))
  66.     (entmake   (list '(0 . "line") (cons 10 ipt2) (cons 11 pt3)     ))
  67.     (setq line4 (entlast))
  68. (setq mp11 (mapcar (function (lambda (a b) (/ (+ a b) 2))) pt1 pt2))
  69. (COMMAND "copybase" mp11 line1 line2 line3 line4 "")
  70. (COMMAND "erase" line1 line2 line3 line4 "")
  71. (COMMAND "pasteblock" mp11)
  72. )
  73. (COMMAND "_undo" "_end")
  74. (princ)
  75. )
回复

使用道具 举报

10

主题

253

帖子

75

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
223
发表于 2022-7-5 17:48:12 | 显示全部楼层
通常我没有时间创建完整的代码,尝试使用附件
tmp。lsp
回复

使用道具 举报

13

主题

64

帖子

51

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 17:59:59 | 显示全部楼层
试试这个,
这是来自fixo#2
 
http://www.cadtutor.net/forum/showthread.php?47346-绘制支管的Lisp
回复

使用道具 举报

18

主题

62

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 18:06:10 | 显示全部楼层
2008版仍然不是,但谢谢你的程序!
回复

使用道具 举报

18

主题

62

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 18:13:48 | 显示全部楼层
谢谢分享!我只是指这一代的LISP:D
回复

使用道具 举报

13

主题

64

帖子

51

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 18:20:15 | 显示全部楼层
 
我仍在使用相同的,它对我来说很好。。
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 18:29:53 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子以使用代码标签。
 
[NOPARSE]
  1. Your Code Here
[/NOPARSE]=
  1. Your Code Here
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 04:17 , Processed in 0.476633 second(s), 70 queries .

© 2020-2025 乐筑天下

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