乐筑天下

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

[编程交流] 每行新图层

[复制链接]

66

主题

180

帖子

119

银币

后起之秀

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

铜币
341
发表于 2022-7-5 15:31:56 | 显示全部楼层 |阅读模式
场景i将绘制一条线,该线将位于新层上,并带有其计数
 
有没有可能制作一个lisp,我可以使用它制作一个层,并将其计为层名称???
所以我做的每一行都有不同的层数?有没有可能我可以设置从哪个数字开始?
 
我试着做。。。我想我做的每一行都有新的一层,但我想再进一步。
如果我想在一层上画多行呢?在不丢失行计数的情况下,它将生成的下一层应该是下一个计数。类似DWG文件的内容。。。
 
有人能帮我做吗?
 
以下是我目前获得的代码:
  1. (defun c:TestLINE (/ numero contstring)
  2.    (if (and (setq numero (getint "\nEnter HoleID: "))
  3.      )               
  4.    
  5. (while T
  6.      (if (not
  7.            (tblsearch
  8.              "LAYER"
  9.          (setq contstring (strcat "" (itoa numero)))
  10.      )
  11.          )
  12.    
  13.        (command "_layer" "m" contstring "" "_.line" pause pause "")
  14.    
  15.    )
  16.      (setq numero (+ numero 1))
  17.    )
  18. )
  19.    (princ)
  20. )

 
如果你看看这幅画,你就会明白我说的线数是什么意思。。。。
样本Cad合成。图纸
回复

使用道具 举报

66

主题

180

帖子

119

银币

后起之秀

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

铜币
341
发表于 2022-7-5 15:36:33 | 显示全部楼层
我想我有点明白了???
我知道这很难看,但至少我试过。。。。
  1. (defun testes ()
  2.   ; (if (and (setq numero (getint "\nEnter HoleID: "))
  3.   ;   )               
  4.    
  5. (while T
  6.      (if (not
  7.            (tblsearch
  8.              "LAYER"
  9.          (setq contstring (strcat "" (itoa numero)))
  10.      )
  11.          )
  12.    
  13.        (command "_layer" "m" contstring "" "_.line" pause pause "")
  14.    
  15.    )
  16.      (setq numero (+ numero 1))
  17.    )
  18. ; )
  19.    (princ)
  20. )
  21. (defun c:testestes (/ numero chcut cntr contstring)
  22.    (setq numero (getint "\nEnter HoleID: "))
  23.    (while T
  24.        (setq chcut (getint "\nEnter # of CHCUTS: "))
  25.        (setq cntr 1)
  26.       (if (= chcut 1)
  27.       (testes)
  28.       )
  29.     (if (not
  30.            (tblsearch
  31.              "LAYER"
  32.                      (setq contstring (strcat "" (itoa numero)))
  33.                      )
  34.          )
  35.        (command "_layer" "m" contstring "")
  36.    )
  37.    
  38.       (while (<= cntr chcut)
  39.            (command "_.line" pause pause "")
  40.             (setq cntr (+ cntr 1))
  41.    (setq numero (+ numero 1))
  42.    )
  43. )
  44.    (princ)
  45. )

 
我相信我的尝试也会带来一些好处。
  1. ; create pline by picking points press enter when finished
  2. (command "_pline")
  3. (while (= (getvar "cmdactive") 1 ) (command pause)
  4. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:40:14 | 显示全部楼层
致相关人士。
 
睾丸
 
睾丸的功能是产生精子和雄激素,主要是睾酮。
 
更好的函数名之一。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 15:42:56 | 显示全部楼层
信息性!:大声笑:
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 15:46:30 | 显示全部楼层
我完全不明白OP在说什么:
就像绘制对象一样,图层会随着其计数而变化-
但是,如果手动更改当前层,会发生什么?
如果手动更改某些对象的图层,会发生什么情况?
 
以下是我玩过的游戏:
  1. (defun laychk (lay  / )
  2. (if (not (tblsearch  "LAYER" (itoa lay)))
  3. (command "_layer" "m" (itoa lay) "")
  4. )
  5. )
  6. (defun c:testes ()
  7. (if (/= numero nil)
  8. (setvar 'clayer (itoa numero))
  9. (progn
  10. (setq numero (getint "Enter a number"))
  11. (laychk numero)
  12. )
  13. )
  14. (setq continue "Y")         
  15. (while (=  continue "Y")
  16. (command "_pline")
  17. (while (= (getvar "cmdactive") 1 ) (command pause)
  18. )
  19. (setq numero (+ numero 1))
  20. (laychk numero)
  21. (if (= (setq continue (Getstring "Press <Cr> to continue any key to exit")) "")
  22. (setq continue "Y")(setq continue "N"))
  23. )
  24. (princ)
  25. )
  26. (c:testes)

 
 
因此,上面只创建了一个层,并不断更改其名称。
虽然我的代码不是完全防错的。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 15:51:35 | 显示全部楼层
 
很抱歉,这本应该是测试,但我输入了一个错误,我很懒,所以我只是用它,并使用它。
 
这个想法是,我画一条线,层名称将是我一直在画的线的计数。
因此,如果我开始画一条线,这是计数1(这是我的layername 1),然后我继续画另一条线,这是计数2(这是layername 2),依此类推。。。
在每一层上画一条线很容易,正如你们在我丑陋的代码中看到的,我刚刚创建了一个层,我画了一条线,然后它循环。
 
我关心的是,在一个图层上,我想画两条或更多的线!但是仍然要跟踪计数,这样当我制作另一层时,它将是我计数的最后一个数字。
 
假设我在第五层,我会画两条线
我的下一个layername应该是7岁。
让我们继续,这次我在第7层,我将画4条线,
我的下一层应该是第10层。。。
回复

使用道具 举报

66

主题

180

帖子

119

银币

后起之秀

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

铜币
341
发表于 2022-7-5 15:54:49 | 显示全部楼层
 
彼此彼此。当用户继续创建线/对象时,它是否会创建无限多的层?
 
编辑:oops没有从OP那里看到帖子
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 15:55:29 | 显示全部楼层
这是一个什么样的常规?通过根据绘制到该点的线的总数命名图层,您实际上想要实现什么?
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 16:01:08 | 显示全部楼层
 
这样我就可以用所有的xyz坐标加上LAYERNAME来提取它们
因为它有数字,所以我在下一步更容易操作数据。
此外,因为它有计数。我将不再跟踪它,专注于其他数据,从而帮助我更快地工作
回复

使用道具 举报

66

主题

180

帖子

119

银币

后起之秀

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

铜币
341
发表于 2022-7-5 16:03:13 | 显示全部楼层
我认为数据提取是基于实体创建的顺序。所以,对我来说,这种Lisp程序的需要是重言式的。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:05 , Processed in 0.449933 second(s), 72 queries .

© 2020-2025 乐筑天下

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