乐筑天下

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

[编程交流] 关于绘制线条和divi的帮助

[复制链接]

66

主题

180

帖子

119

银币

后起之秀

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

铜币
341
发表于 2022-7-5 17:31:25 | 显示全部楼层 |阅读模式
有人能帮我做Lisp程序吗???要选择线,请输入高程并根据选择的线数对这些高程进行分段,并将其作为“起点Z”和“终点Z”。。。
 
我们正在绘制地形图,我们使用直线,因为它有2个Z
(开始Z和结束Z)。
我包括一个样本。。。对不起,我无法复制我们正在工作的地图,所以我只是举了一个我需要的例子。。。
 
正如您将在样本中看到的,我有:
连接5条线路,
从标高1到10
每个开始Z和结束Z都是不同的,但你会注意到我的意思。。。
 
有没有办法把它变成Lisp程序???
采样线。图纸
回复

使用道具 举报

66

主题

180

帖子

119

银币

后起之秀

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

铜币
341
发表于 2022-7-5 18:06:07 | 显示全部楼层
请帮帮我??
我有一些代码可以把Y复制到Z,也许有人可以帮我修改它,这样我就可以输入2个数字,剩下的就用lisp了?
  1. (defun c:test ( / ss n i e el start_point End_point new_start_point new_End_point )
  2. (setq ss (ssget "_:L" '((0 . "LINE"))))
  3. (setq i 0)
  4. (setq n (sslength ss))
  5. (while (< i n)
  6. (setq e (ssname ss i))
  7. (setq el (entget e))
  8. (setq start_point (assoc 10 el))
  9. (setq new_start_point (list 10 (cadr start_point) (caddr start_point) (caddr start_point)))
  10. (setq el (subst new_start_point start_point el))
  11. (setq End_point (assoc 11 el))
  12. (setq new_End_point (list 11 (cadr End_point) (caddr End_point) (caddr End_point)))
  13. (setq el (subst new_End_point End_point el))
  14. (entmod el)
  15. (setq i (+ 1 i))
  16. )
  17. (princ)
  18. )
回复

使用道具 举报

66

主题

180

帖子

119

银币

后起之秀

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

铜币
341
发表于 2022-7-5 18:29:35 | 显示全部楼层
请有人吗???如何更改列表(起点和终点)???即使我做了itoa或rtos,它仍然是错误的,所以请有人告诉我我做错了什么?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:50:28 | 显示全部楼层
一些问题从z=0的所有行开始,全部拾取,这样就知道有多少行可以添加z,现在它不起作用了,因为创建顺序会控制z值,所以最终为0 1 5 6 3 4。
 
我会让一个pline使用这里的pline lisp的任何get-co-ords,然后使用这个co-ords列表添加正确的z增量,生成直线或创建一个新的3dpline。
 
  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 len (length co-ords))
  16. (setq numb (/ len 2)) ; even and odd check required
  17. (setq I 0)
  18. (repeat numb
  19. (setq xy (list (nth i co-ords)(nth (+ I 1) co-ords) ))
  20. ; odd (setq xy (list (nth i co-ords)(nth (+ I 1) co-ords)(nth (+ I 2) co-ords) ))
  21. (setq co-ordsxy (cons xy co-ordsxy))
  22. (setq I (+ I 2))
  23. )
  24. )
  25. ; program starts here
  26. (setq co-ords (getcoords (car (entsel "\nplease pick pline"))))
  27. (co-ords2xy) ; list of 2d points making pline are saved in co-ordsxy
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 04:09 , Processed in 1.223304 second(s), 60 queries .

© 2020-2025 乐筑天下

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