乐筑天下

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

[编程交流] 实用绘图中的冻结

[复制链接]

18

主题

78

帖子

61

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 08:50:21 | 显示全部楼层 |阅读模式
嗨,我想有一个Lisp程序,将冻结在绘图面糊层面糊,但我不希望它做任何其他地方。即使我用Lisp程序
这是到目前为止我得到的
  1. (setq dn (getvar 'DWGNAME))
  2. (if (= dn "batters.dwg")
  3. (command "-layers" "F" "BATTERS")
  4. );if

这行不通我做错了什么。
回复

使用道具 举报

9

主题

167

帖子

163

银币

初来乍到

Rank: 1

铜币
43
发表于 2022-7-6 08:56:28 | 显示全部楼层
(命令“-layer”..not“-layers”
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 09:00:50 | 显示全部楼层
命令的使用将比ent*或vla慢,但这已经足够了。
对于命令的使用,我要做的是。。。
 
  1. (if (and (eq (strcase (getvar 'DWGNAME)) "BATTERS.DWG") ;capitalize to ignore case
  2.         (tblsearch "LAYER" "BATTERS") ;check if layer exists (not really necessary)
  3.    )
  4. (if (eq (strcase (getvar 'CLAYER)) "BATTERS") ;check if current layer is "BATTERS"
  5.    (command "_.-layer" "_T" "0" "_S" "0" "_F" "BATTERS" "") ; if so, thaw/set 0 as current and freeze layer
  6.    (command "_.-layer" "_F" "BATTERS" "") ; freeze layer
  7. )
  8. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:04:18 | 显示全部楼层
代码,而不是命令调用。
 
  1. (if (and (eq (strcase (getvar 'DWGNAME)) "BATTERS.DWG")
  2.         (tblsearch "LAYER" "BATTERS")
  3.         )
  4. (progn
  5.    (setq l (entget (tblobjname "LAYER" "BATTERS")))
  6.    (entmod (subst (cons 70 1) (assoc 70 l) l))
  7.    )
  8. )

 
塔瓦特
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 09:06:12 | 显示全部楼层
我希望图层没有被锁定、处于当前状态等。阅读dxf 70中存储的图层附加属性可能会对您有所帮助。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:11:35 | 显示全部楼层
 
1+
 
阅读logand/logior/boole等函数的使用。
 
 
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:14:23 | 显示全部楼层
 
 
这是二合一
 
  1. (if (and (eq (strcase (getvar 'DWGNAME)) "BATTERS.DWG")
  2.         (tblsearch "LAYER" "BATTERS")
  3.    )
  4. (progn
  5.    (cond ((eq (strcase (getvar 'clayer)) "BATTERS")
  6.           (setvar 'clayer "0")
  7.          )
  8.    )
  9.    (setq l (entget (tblobjname "LAYER" "BATTERS")))
  10.    (if (eq (logand 4 (cdr (assoc 70 l))) 4)
  11.      (entmod (subst (cons 70 0) (assoc 70 l) l))
  12.    )
  13.    (entmod (subst (cons 70 1) (assoc 70 l) l))
  14. )
  15. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 09:17:32 | 显示全部楼层
 
我放弃了。我不知道为什么一开始就觉得有必要把这个线程复杂化。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:21:52 | 显示全部楼层
 
如果层在新视口中冻结,该怎么办?还是依赖外部参照?或者,如果设置了任何其他70位组码?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:24:34 | 显示全部楼层
 
你不是所有这些步骤的第一顾问吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:32 , Processed in 0.561326 second(s), 83 queries .

© 2020-2025 乐筑天下

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