乐筑天下

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

[编程交流] 将线路分成相等的间隔

[复制链接]

5

主题

14

帖子

9

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 23:37:50 | 显示全部楼层 |阅读模式
是否有任何lisp可以满足以下条件?
将直线等距分割,但端点应为间距的一半,并添加交叉顶点
003752dzvkzhkvb3zzv6ti.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:47:17 | 显示全部楼层
这会帮你实现目标:
 
http://lee-mac.com/centeredmeasure.html
回复

使用道具 举报

5

主题

14

帖子

9

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 23:51:59 | 显示全部楼层
先生
我需要输入“输入段数”,并交叉点“x”,点大小为5
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:57:59 | 显示全部楼层
使用两倍大段数的“分割”命令,然后取每个奇数点1,3,5,。。。
 
确保在“除法”之前将“PDMODE”设置为3。。。
 
M、 R。
 
  1. (defun c:divtest ( / pdm pds e ss c n )
  2. (setq pdm (getvar 'pdmode)
  3.        pds (getvar 'pdsize)
  4. )
  5. (setq e (entlast))
  6. (if (null e)
  7.    (progn
  8.      (alert "No entities in active document... Please create and restart routine...")
  9.      (exit)
  10.    )
  11.    (progn
  12.      (while (not ss)
  13.        (prompt "\nPick curve for division with points on equal spaces and half spaces at start/end of curve")
  14.        (if (setq ss (ssget "_+.:E:S" '((0 . "*POLYLINE,LINE,SPLINE,HELIX,CIRCLE,ARC,ELLIPSE"))))
  15.          (progn
  16.            (setq c (ssname ss 0))
  17.            (initget 7)
  18.            (setq n (getint "\nSpecify number of division spaces : "))
  19.            (setvar 'pdmode 3)
  20.            (setvar 'pdsize 5)
  21.            (command "_.divide" c (* (1- n) 2))
  22.            (setq e (entnext e))
  23.            (repeat (- n 2)
  24.              (setq e (entnext e))
  25.              (entdel e)
  26.              (setq e (entnext e))
  27.            )
  28.          )
  29.          (alert "Empty sel. set... Please, select again...")
  30.        )
  31.      )
  32.    )
  33. )
  34. (setvar 'pdmode pdm)
  35. (setvar 'pdsize pds)
  36. (princ)
  37. )
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 00:02:58 | 显示全部楼层
  1. (defun c:dib (/ point e div d mark1 pd)
  2. ;;;        pBeFeb2014        ;;;
  3. (defun Point (pt)
  4.    (entmakex (list (cons 0 "POINT")
  5.             (cons 10 pt)
  6.       )
  7.    )
  8. )
  9. (if (and (setq
  10.      ss        (setq
  11.           ss (ssget
  12.                '((0
  13.                   .
  14.                   "LWPOLYLINE,LINE,SPLINE,ARC"
  15.                  )
  16.                 )
  17.              )
  18.         )
  19.    )
  20.    (setq div (getint "\nEnter the number of segments : "))
  21.      )
  22.    (repeat (setq i (sslength ss))
  23.      (setq e (ssname ss (setq i (1- i))))
  24.      (setq d (vlax-curve-getdistatpoint e (vlax-curve-getEndPoint e)))
  25.      (setq mark1 (/ d div)
  26.     hlf          (* 0.5 mark1)
  27.      )
  28.      (point (setq pd (vlax-curve-getpointatdist e hlf)))
  29.      (repeat (1- div)
  30. (point (setq pd        (vlax-curve-getpointatdist
  31.                   e
  32.                   (+ (vlax-curve-getdistatpoint e pd) mark1)
  33.                 )
  34.        )
  35. )
  36.      )
  37.    )
  38. )
  39. (princ)
  40. )
回复

使用道具 举报

5

主题

14

帖子

9

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 00:13:20 | 显示全部楼层
它正在工作,但在使用lisp之前,我必须确保“PDMODE=3”,“PDSIZE=5”
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 00:18:10 | 显示全部楼层
然后只需将这些语句添加到代码中:
  1. (setvar "PDMODE" 3)
  2. (setvar "PDSIZE" -5)
回复

使用道具 举报

5

主题

14

帖子

9

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 00:20:19 | 显示全部楼层
是的,它在工作
感谢您的宝贵支持
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 00:30:19 | 显示全部楼层
 
很高兴能帮上忙
 
 
是的,谢谢你。
 
@马尔科
 
没有意识到您设置了pdmode和pdsize变量,我觉得这很奇怪。
 
伙计们,有没有lisp代码可以将点实体转换为一系列对象(几乎可以肯定会有)?或者最好使用点样式的块等效物?
 
有什么想法吗?
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 00:35:22 | 显示全部楼层
 
pBe,我在我的acaddoc中将pdmode设置为35,pdsize设置为-1.5。lsp,也许OP的ACAD设置也是如此。。。我已经设置并重新设置了这些变量,因为OP希望这些值用于这个特定的任务。。。只是不知道OP是考虑了相对于当前视口显示的点的相对%大小,还是他想要5个dwg单位大小。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:13 , Processed in 0.383278 second(s), 75 queries .

© 2020-2025 乐筑天下

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