乐筑天下

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

[编程交流] 帮助lisp自动标注

[复制链接]

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 18:20:38 | 显示全部楼层 |阅读模式
大家好。
我画了一条多段线,上面有带块的任意块(情况1)或不同的线、多段线、xline(情况2)。。。。。
请帮助我将lisp自动标注为文件附加。
非常感谢你!
文件:
自动标注。图纸
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:33:55 | 显示全部楼层
简单的答案是使用ssget“F”,这会创建一个穿过一条样条线的对象列表,然后与一个明显的相交方式是为块插入点、圆、直线/样条线相交。
 
有人欢迎你跳在我需要粘贴在一起3个程序将需要时间。
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 18:39:08 | 显示全部楼层
 
非常感谢比格尔!
很高兴得到比格尔的帮助。
我不知道如何写lisp需要你的帮助是非常好的。
请帮帮我,再次感谢比格尔。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:44:11 | 显示全部楼层
现在有点忙还有其他人吗?
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 18:52:30 | 显示全部楼层
 
非常感谢比格尔!
希望有人帮助我!
谢谢大家。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:04:31 | 显示全部楼层
这里是一个开始,使用简单的测试分割一条线并沿其创建点,然后返回点的坐标。使用多if或COND将更整洁
 
  1. ; 1st step to find objects along a pline
  2. ; by Alan H
  3. (defun pointpline ( / ss x obj pt co-ordsxy)
  4. (if (not co-ords2xy) (load "pline co-ords"))
  5. (setq co-ords (getcoords (car (entsel "\nplease pick pline"))))
  6. (co-ords2xy)
  7. (setq ss (ssget "F" co-ordsxy))
  8. (setq x (sslength ss))
  9. (repeat (sslength ss)
  10. (setq obj (vlax-ename->vla-object (ssname SS (setq x (- x 1)))))
  11. (if (= "AcDbPoint" (vla-get-objectname obj))
  12. (setq pt (vlax-safearray->list (vlax-variant-value (vla-get-Coordinates obj))))
  13. )
  14. (princ pt)
  15. )
  16. )
  17. (pointpline)

你需要这个
  1. ; pline co-ords example
  2. ; by Alan H
  3. (defun getcoords (ent)
  4. (vlax-safearray->list
  5.    (vlax-variant-value
  6.      (vlax-get-property
  7.    (vlax-ename->vla-object ent)
  8.    "Coordinates"
  9.      )
  10.    )
  11. )
  12. )
  13. (defun co-ords2xy ()
  14. ; convert now to a list of xy as co-ords are x y x y x y if 3d x y z x y z
  15. (setq numb (/ (length co-ords) 2))
  16. (setq I 0)
  17. (repeat numb
  18. (setq xy (list (nth i co-ords)(nth (+ I 1) co-ords) ))
  19. (setq co-ordsxy (cons xy co-ordsxy))
  20. (setq I (+ I 2))
  21. )
  22. )
  23. ; program starts here
  24. ;(setq co-ords (getcoords (car (entsel "\nplease pick pline"))))
  25. ;(co-ords2xy)
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 19:07:35 | 显示全部楼层
非常感谢比格尔!谢谢你的帮助。
我依次运行两个lisp(getcoords.lsp和pointpline.lsp_,我复制并另存为lisp)。但没有结果(结果:请选择Plinenilnilnil)。我哪里都不知道我错了。
请帮帮我。
非常感谢你!祝你好运!
getcoords。lsp
点样线。lsp
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:18:47 | 显示全部楼层
该示例用于测试,绘制一条Pline,然后除以10,然后选择一个形状,然后运行程序。这10个单词应该出现在屏幕上。下一步是添加块,最后为交叉对象添加相交。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:28:12 | 显示全部楼层
块的代码
  1. (if (= "AcDbBlockReference" (vla-get-objectname obj))
  2. (setq pt (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint obj))))
  3. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:35 , Processed in 0.508853 second(s), 70 queries .

© 2020-2025 乐筑天下

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