乐筑天下

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

[编程交流] 如何获得线型指定

[复制链接]

88

主题

346

帖子

281

银币

后起之秀

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

铜币
423
发表于 2022-7-6 15:08:57 | 显示全部楼层 |阅读模式
下面是并排两行的实体列表。
一个是连续的,一个是隐藏的。
通过lisp返回的内容,您无法区分哪个是哪个。
如果它返回Assoc 6值,我会很好,但它没有。
 
*AutoLISP格式的列表*(-1。)(0.LINE)(330)(5.571)(100.AcDbEntity)(67.0)(410.Model)(8.0)(100.AcDbLine)(10-60.0959 78.554 0.0)(11-78.7209 78.554 0.0)(210 0.0 0 0.0 1.0))
变量名为ENT
 
*AutoLISP格式的列表*(-1。)(0.LINE)(330)(5.573)(100.AcDbEntity)(67.0)(410.Model)(8.DEFAULT_2)(100.AcDbLine)(10-60.0959 78.679 0.0)(11-78.7209 78.679 0.0)(210 0.0 0 0.0 1.0))
变量名为ENT
 
我需要知道通过选择图元返回指定给图层的线型的代码。(颜色也是…)
这真的很简单吗?
我只是不知道怎么做。
 
请帮忙!!
 
TIA!!
回复

使用道具 举报

0

主题

119

帖子

119

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 15:26:47 | 显示全部楼层
如果是bylayer,则图元列表不会返回线型。要获取指定给图层的线型,请通过访问每条线的实际图层的图元列表
 
  1. (setq layer_name (cdr (assoc 8 (entget (ent)))))

 
然后
 
  1. (setq layer_ltype (cdr (assoc 6 (tblsearch "LAYER" layer_name))))
回复

使用道具 举报

88

主题

346

帖子

281

银币

后起之秀

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

铜币
423
发表于 2022-7-6 15:36:40 | 显示全部楼层
非常感谢!!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:49:12 | 显示全部楼层
也:
 
  1. (defun getLT (lay)
  2. (vlax-for layer
  3.        (vla-get-layers
  4.          (vla-get-activedocument
  5.        (vlax-get-acad-object)))
  6.    (if (eq (vla-get-name layer) lay)
  7.      (setq lt (vla-get-Linetype layer))))
  8. (princ (vl-princ-to-string lt)))
回复

使用道具 举报

88

主题

346

帖子

281

银币

后起之秀

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

铜币
423
发表于 2022-7-6 16:07:58 | 显示全部楼层
如何执行图形中所有隐藏线的get列表
如果他们是bylayer?沿着这条线。。。
 
(setq SS1(ssget“X”(列表(cons 6“隐藏”)))
 
 
非常感谢您的帮助和专业知识!!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:18:01 | 显示全部楼层
也许:
 
  1. (defun getLT  (lt)
  2. (setq lLst "")
  3. (vlax-for layer
  4.           (vla-get-layers
  5.             (vla-get-activedocument
  6.               (vlax-get-acad-object)))
  7.    (if    (eq (strcase (vla-get-Linetype layer)) (strcase lt))
  8.      (setq lLst (strcat  (vla-get-name layer) (chr 44) lLst)))))
  9. (defun c:test (/ lLst)
  10. (vl-load-com)
  11. (getLT "Hidden")
  12. (setq lLst (vl-string-right-trim (chr 44) lLst))
  13. (sssetfirst nil (ssget "X" (list (cons 8 lLst)
  14.     (if (getvar "CTAB")(cons 410 (getvar "CTAB"))
  15.       (cons 67 (- 1 (getvar "TILEMODE")))))))
  16. (princ))
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 19:13 , Processed in 0.798516 second(s), 64 queries .

© 2020-2025 乐筑天下

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