乐筑天下

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

[编程交流] 正在查找PLINE的LISP

[复制链接]

49

主题

1246

帖子

1210

银币

后起之秀

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

铜币
254
发表于 2022-7-6 12:10:40 | 显示全部楼层 |阅读模式
我想我以前见过它,但基本上它是一个LISP,为柱脚线上的单线平面视图创建斜接90°和45°(嗯,任何角度都可以)管道符号。图中附有一个示例,当您绘制PLINE时,它会在每个角度梯段(以黄色突出显示)沿梯段放置相应的符号。有人知道我在哪里能找到它吗?再次感谢任何能伸出援助之手的人。
131045hs4zut2jzcccsi00.jpg
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:14:41 | 显示全部楼层
 
这是一个快速而肮脏的简单lisp
希望它能让你开始
来吧,我可不想偷懒
 
  1. (defun C:demo(/ ang1 ang2 points elist endang tick p1 p1r p1u p2 p2r p2u
  2.         p3 p4 pline pmid pt1 pt2 startang)
  3. (setvar 'osmode 0)
  4. (setvar 'cecolor "blue")
  5. (setvar 'plinewid 0)
  6. (command "._pline")
  7. (while (= 1 (logand 1 (getvar 'cmdactive)))
  8. (command pause))
  9. (setq pline  (entlast)
  10.      points (vl-remove-if
  11.        (function not)
  12.        (mapcar
  13.          (function (lambda (x)
  14.                      (if (= 10 (car x))
  15.                        (cdr x))))
  16.          (setq elist (entget pline))
  17.          )
  18.        )
  19.      tick   25.4 ;<-- ticks length
  20.      )
  21. (setq startang (angle (car points) (cadr points))
  22.      endang   (angle (nth (- (length points) 2) points) (last points))
  23.      )
  24. (setq p1   (polar (car points) (+ startang (/ pi 2)) (/ tick 2))
  25.      pmid (mapcar (function (lambda (a b) (/ (+ a b) 2)))
  26.            (car points)
  27.            p1)
  28.      p2   (polar pmid (+ startang pi) (/ tick )
  29.      p4   (polar (car points) (- startang (/ pi 2)) (/ tick 2))
  30.      pmid (mapcar (function (lambda (a b) (/ (+ a b) 2)))
  31.            (car points)
  32.            p4)
  33.      p3   (polar pmid startang (/ tick )
  34.      )
  35. (setvar 'cecolor "cyan")
  36. (command "_spline" p1 p2 p3 p4 "" p1 p4 "")
  37. (setq p1   (polar (last points) (+ endang (/ pi 2)) (/ tick 2))
  38.      pmid (mapcar (function (lambda (a b) (/ (+ a b) 2)))
  39.            (last points)
  40.            p1)
  41.      p2   (polar pmid (+ endang pi) (/ tick )
  42.      p4   (polar (last points) (- endang (/ pi 2)) (/ tick 2))
  43.      pmid (mapcar (function (lambda (a b) (/ (+ a b) 2)))
  44.            (last points)
  45.            p4)
  46.      p3   (polar pmid endang (/ tick )
  47.      )
  48. (command "_spline" p1 p2 p3 p4 "" p1 p4 "")
  49. (setvar 'cecolor "yellow")
  50. (while (> (length points) 2)
  51. (setq        ang1 (+ (angle (car points) (cadr points)) pi)
  52. ang2 (angle (cadr points) (caddr points))
  53. pt1  (polar (cadr points) ang1 tick)
  54. p1u  (polar pt1 (+ ang1 (/ pi 2)) (/ tick 2))
  55. p1r  (polar pt1 (- ang1 (/ pi 2)) (/ tick 2))
  56. pt2  (polar (cadr points) ang2 tick)
  57. p2u  (polar pt2 (+ ang2 (/ pi 2)) (/ tick 2))
  58. p2r  (polar pt2 (- ang2 (/ pi 2)) (/ tick 2))
  59. )
  60. (setvar 'plinewid (/ tick )
  61. (command "._pline" "_non" p1u "_non" p1r "")
  62. (command "._pline" "_non" p2u "_non" p2r "")
  63. (setq points (cdr points))
  64. )
  65. (princ)
  66. )

 
~'J'~
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

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

铜币
254
发表于 2022-7-6 12:21:26 | 显示全部楼层
嗯,这也许行得通。我下载了它,并已经做了一些调整,它的工作正是我需要的。。。我只需要存储OSMODE并在命令结束时恢复它,然后在其中获取一个错误处理程序。我要到星期一回去工作才碰剩下的。
 
实际上,让我来做这个,完成后我会发布我完成的代码修订。这对我来说是一个很好的学习机会。。。。谢谢你的帮助。我想我可以接受这个并完成它。这对我来说也是很棒的学习。我星期一回来
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:25:40 | 显示全部楼层
 
我很高兴看到你们的最终产品
 
干杯
 
~'J'~
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

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

铜币
254
发表于 2022-7-6 12:29:00 | 显示全部楼层
嗯,我可以做一些“代码伪装”,但我绝对不是程序员。我做过的最好的Lisp程序程序是大约6行,哈哈。无论如何,我要出城度周末,我相信当我周一回来的时候,我会有一些问题。。。。再次感谢。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:30:21 | 显示全部楼层
 
好的,让我知道你需要改变什么-
我会完全做到的
 
~'J'~
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 12:34:35 | 显示全部楼层
 
 
抱歉报告,这是我得到的。。。。
 
命令:演示
._普林线
指定起点:
当前线宽为0.0000
指定下一点或[弧/半宽/长度/撤消/宽度]:
指定下一点或[弧/闭合/半宽/长度/撤消/宽度]:
指定下一点或[弧/闭合/半宽/长度/撤消/宽度]:
命令:;错误:错误的参数类型:2D/3D点:nil
 
蓝线,没别的
 
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:39:14 | 显示全部楼层
 
谢谢你的测试
对不起,我现在不能换
以后再做
 
~'J'~
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:41:09 | 显示全部楼层
 
尝试编辑的版本
 
~'J'~
管LSP
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 12:46:36 | 显示全部楼层
 
对不起,还是有点不对劲。。。又是蓝线了
 
命令:管道
._普林线
指定起点:
当前线宽为0.0000
指定下一点或[弧/半宽/长度/撤消/宽度]:
指定下一点或[弧/闭合/半宽/长度/撤消/宽度]:
指定下一点或[弧/闭合/半宽/长度/撤消/宽度]:
指定下一点或[弧/闭合/半宽/长度/撤消/宽度]:
命令:错误的参数类型:2D/3D点:nil_撤消当前设置:自动=打开,
控制=全部,联合收割机=是
输入要撤消的操作数或[自动/控制/开始/结束/标记/返回]
:_E
命令:
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-2 09:36 , Processed in 0.615135 second(s), 76 queries .

© 2020-2025 乐筑天下

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