乐筑天下

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

[编程交流] Lisp使用不同的线型

[复制链接]

5

主题

34

帖子

29

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 14:16:14 | 显示全部楼层 |阅读模式
我想让我的lisp对一些隐藏线使用不同的线型。可能还需要更换图层!
 
  1. (command "-linetype" "_l" "DASHED2" "acad.lin" "")

这段代码是从ASMI的帖子中借来的,一个问题是我还不明白这一切“DASHED2”acad.lin“到底是什么意思!
任何朝着正确方向的想法或刺激都会受到感激。
抢劫
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 14:23:00 | 显示全部楼层
命令名前面的“-”强制线型在命令行模式下工作(即没有对话框和用户确认);为了理解其他参数,可以在此模式下测试线型。
“L”=要求将线定义加载到图形,
“DASHED2”=要加载的线定义(替换为所需类型),
“ACAD.LIN”=具有行定义的内置数据库(可以改为用户数据库),
“”=最终完成命令(重复)。
添加“_”是为了确保此代码也适用于AutoCAD的本地化版本。
 
希望这能澄清这个问题。
当做
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:27:53 | 显示全部楼层
加载线型的另一种方法是使用vla加载。
回复

使用道具 举报

5

主题

34

帖子

29

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 14:35:18 | 显示全部楼层
感谢您澄清,msasu它确实会有所帮助。
 
Lee有很多vla命令,但我真的不确定所有的基本lisp语言眨眼:
 
我的平开窗绘图代码已经转移到平开窗和滴水槽的侧面和平面视图,我花了几天的时间研究,花了大约一个小时左右的时间才使代码生效。一次一个小胜利,我就会征服密码。
 
抢劫
回复

使用道具 举报

5

主题

34

帖子

29

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 14:41:16 | 显示全部楼层
又卡住了!!很抱歉
  1. (setq OLDTYPE (getvar "LINETYPE")
  2. )
  3. (command "_linetype" "_l" "ACAD_ISO03W100" "Acad.lin" ""
  4. )
  5. (command "_.PLINE" F25 F26 "" ;to be hidden dashed line linetype ACAD_ISO03W100
  6. )
  7. (command "_.PLINE" F33 F34 "" ;to be hidden dashed line
  8. )
  9. (command "_.PLINE" F27 F38 "" ;to be hidden dashed line
  10. )  
  11. (command "_.PLINE" F39 F40 "" ;to be hidden dashed line
  12. )
  13. (setvar "LINETYPE" OLDTYPE)

这就是我目前所拥有的。我试图存储现有线型,然后在新线型中绘制几条所需的线,然后恢复旧线型。
我今天不太喜欢跑腿和打电话,所以我可能没想到这件事很简单。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 14:47:54 | 显示全部楼层
 
 
嘿Rob,
 
 
试试这个,把这个函数放在程序的某个地方。
  1. ;;; Layer Function - Set Layer & Linetype.                          ;Function Description
  2. (defun SLL (NLAY CLR LT / LAY FRZ)                                  ;Define function, Declare local variables and arguments
  3. (setq LAY  (tblsearch "layer" NLAY))                              ;Search drawing to find layer, Note: (NOT USED)
  4. (if                                                               ;If the following returns true
  5.    (not LAY)                                                       ;Layer not in drawing
  6.    (command "_.layer" "m" NLAY "c" CLR "" "lt" LT "" "")           ;Layer command ~ make new layer with color and linetype
  7.    (progn                                                          ;Then do the following
  8.      (setq FRZ (cdr (assoc 70 LAY)))                               ;Variable FRZ is frozen layer
  9.      (if (= FRZ 65)                                                ;Layer frozen from last edit
  10.        (progn                                                      ;Then do the following
  11.          (command "_.layer" "t" NLAY "")                           ;Thaw new layer if frozen
  12.          (command "_.layer" "s" NLAY ""))                          ;Set new layer
  13.        (command "_.layer" "s" NLAY ""))))                          ;Set new layer
  14. )                                                                   ;End define function

 
 
当你想添加图层时放置这个。
如果图层、颜色和线型不存在或
如果确实存在,请设置它。
 
  1. (SLL "Mylayer" "Mycolor" "MyLinetype")                              ;Go to SLL Layer Function, Set Layer, Color & Linetype

 
 
注意:线型定义需要在ACAD中。要设置的线型的lin文件。
 
任何进一步的帮助,只要问。
 
秃鹰
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 14:51:04 | 显示全部楼层
在这里,您可以演示该程序,看看它是如何工作的。
 
加载此函数并键入HIDLAY。它将创建一个名为Mylayer的层,具有红色和隐藏线型。
 
  1. (defun C:HIDLAY ()
  2. (SLL "Mylayer" "1" "HIDDEN")                                      ;Go to SLL Layer Function
  3. (princ)
  4. )
  5. ;;; Layer Function - Set Layer & Linetype.                          ;Function Description
  6. (defun SLL (NLAY CLR LT / LAY FRZ)                                  ;Define function, Declare local variables and arguments
  7. (setq LAY  (tblsearch "layer" NLAY))                              ;Search drawing to find layer, Note: (NOT USED)
  8. (if                                                               ;If the following returns true
  9.    (not LAY)                                                       ;Layer not in drawing
  10.    (command "_.layer" "m" NLAY "c" CLR "" "lt" LT "" "")           ;Layer command ~ make new layer with color and linetype
  11.    (progn                                                          ;Then do the following
  12.      (setq FRZ (cdr (assoc 70 LAY)))                               ;Variable FRZ is frozen layer
  13.      (if (= FRZ 65)                                                ;Layer frozen from last edit
  14.        (progn                                                      ;Then do the following
  15.          (command "_.layer" "t" NLAY "")                           ;Thaw new layer if frozen
  16.          (command "_.layer" "s" NLAY ""))                          ;Set new layer
  17.        (command "_.layer" "s" NLAY ""))))                          ;Set new layer
  18. )                                                                   ;End define function
回复

使用道具 举报

5

主题

34

帖子

29

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 14:58:17 | 显示全部楼层
谢谢Buzzard。
为了让我的心态在这一点上正确,我所要做的就是改变;
 
(SLL“Mylayer”“Mycolor”“MyLinetype”)
 
将Mylayer交换为我想要的层的名称
Mycolor表示浅棕色为63
&Mylinetype到Acad_ISO03W100
如果这是真的,那么我相信我已经做到了!
 
我突然意识到,我可能需要做几次这样的defun来组织框架、窗框和扇形窗等的层和线型!如果是这样的话,对他们来说最好的地方就是在任何地方之前_线路或_pline命令:与用户输入命令一起分组?
问候Rob。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 15:04:12 | 显示全部楼层
 
确切地
 
下面是创建新层并在完成后恢复旧层的相同例程。只是想让你看到不同的可能性。
 
  1. (defun C:HIDLAY ()                                                  ;Define function
  2. (setq OLDLAY (getvar "CLAYER"))                                   ;Save current layer to old layer
  3. (SLL "Mylayer" "1" "HIDDEN")                                      ;Go to SLL Layer Function
  4. (setvar "CLAYER" OLDLAY)                                          ;Restore old layer                                       
  5. (princ)                                                           ;Exit quietly
  6. )                                                                   ;End define function
  7. ;;; Layer Function - Set Layer & Linetype.                          ;Function Description
  8. (defun SLL (NLAY CLR LT / LAY FRZ)                                  ;Define function, Declare local variables and arguments
  9. (setq LAY  (tblsearch "layer" NLAY))                              ;Search drawing to find layer, Note: (NOT USED)
  10. (if                                                               ;If the following returns true
  11.    (not LAY)                                                       ;Layer not in drawing
  12.    (command "_.layer" "m" NLAY "c" CLR "" "lt" LT "" "")           ;Layer command ~ make new layer with color and linetype
  13.    (progn                                                          ;Then do the following
  14.      (setq FRZ (cdr (assoc 70 LAY)))                               ;Variable FRZ is frozen layer
  15.      (if (= FRZ 65)                                                ;Layer frozen from last edit
  16.        (progn                                                      ;Then do the following
  17.          (command "_.layer" "t" NLAY "")                           ;Thaw new layer if frozen
  18.          (command "_.layer" "s" NLAY ""))                          ;Set new layer
  19.        (command "_.layer" "s" NLAY ""))))                          ;Set new layer
  20. )                                                                   ;End define function
回复

使用道具 举报

5

主题

34

帖子

29

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 15:07:41 | 显示全部楼层
谢谢Buzzard,我觉得你的教名很适合你。
今天我的电话忙得不可开交,所以当我试图回复时,我和一个可能的客户挂断了电话,真的,难道他们没有意识到我有比解释一个三岁孩子会明白加税就是加税(英国的增值税)更重要的事情要做吗
在写这篇文章的时候,我又打了17分钟的电话:滚:
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 02:58 , Processed in 0.396695 second(s), 72 queries .

© 2020-2025 乐筑天下

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