乐筑天下

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

[编程交流] 有关线型和的litle帮助

[复制链接]

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 23:57:08 | 显示全部楼层
CHPROP命令必须在每条绘制线之后调用;你把那句话放错了(两处)。还有一个右括号漏掉了。不要忘记定位所有变量以避免干扰。
  1. (defun c:TEST1 ( / a1 [color=red]klim per s1 s2 scl[/color] )
  2. (if (not (tblsearch "LAYER" "DASHDOT"))
  3. (command "_layer" "_m" "DASHDOT" "_c" "1" "" "")
  4. )
  5. (setq scl (getvar "useri1")[color=red])[/color]
  6. (setq klim (* 0.0017 scl))
  7. [color=red] [s](comamnd "_CHPROP"  "" "_S" klim "")[/s][/color]
  8. (SETQ PER "DASHDOT" )
  9. (command  "_linetype" "[color=red]_[/color]s" per "" )
  10. [color=red] [s](command "_CHPROP" (entlast) "" "_S" klim "")[/s][/color]
  11. (print "draw DASHDOT line ")
  12. (print "")  
  13. (setq s1 (getpoint "give the first point :"))
  14. (print "")  
  15. (WHILE (setq s2 (getpoint s1 " give the second point :"))
  16. (print "")
  17. (command "[color=red]_[/color]line" [color=red]"non"[/color] s1 [color=red]"non"[/color] s2 "")
  18. [color=red]  (command "_CHPROP" (entlast) "" "_S" klim "")[/color]
  19. (setq s1 s2)
  20. )
  21. )

请注意代码的格式,因为这样会更容易阅读。
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-6 00:01:09 | 显示全部楼层
谢谢MSasu。干得好
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 00:03:25 | 显示全部楼层
不客气!
请告诉我,你为什么用这句话?
  1. (print "")

让下一个提示器出现在新的线路上?然后可能需要考虑使用新行字符:
  1. (setq s1 (getpoint "[color=magenta]\n[/color]give the first point :"))
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-6 00:09:02 | 显示全部楼层
我有一个问题。当我使用这个lisp时,创建一个名为DASHDOT的图层,并用线型DASHDOT绘制一条线,但bylayer线型是连续的。我希望图层的线型是DASHDOT。我该怎么做?
 
  1. (defun c:TEST1 ( / a1 klim per s1 s2 scl )
  2. (if (not (tblsearch "LAYER" "DASHDOT"))
  3. (command "_layer" "_m" "DASHDOT" "_c" "1" "" "")
  4. )
  5. (setq scl (getvar "useri1"))
  6. (setq klim (* 0.0017 scl))
  7. (SETQ PER "DASHDOT" )
  8. (command  "_linetype" "_s" per "" )
  9. (print "draw DASHDOT line ")
  10. (print "")  
  11. (setq s1 (getpoint "give the first point :"))
  12. (print "")  
  13. (WHILE (setq s2 (getpoint s1 " give the second point :"))
  14. (print "")
  15. (command "_line" "non" s1 "non" s2 "")
  16. (command "_CHPROP" (entlast) "" "_S" klim "")
  17. (setq s1 s2)
  18. )
  19. )

 
谢谢
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:10:57 | 显示全部楼层
  1. (command "_.layer" "_m" "DASHDOT" "_c" "1" "" "LT" "DASHDOT" "" "")

 
HTH公司
亨里克
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-6 00:14:29 | 显示全部楼层
谢谢你hmsilva
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:17:10 | 显示全部楼层
不客气prodromosm
回复

使用道具 举报

11

主题

93

帖子

82

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 00:22:24 | 显示全部楼层
 
当cad中已经包含一个简单的虚线点时,为什么要使用lisp呢
*点划线,点划线__
A.5,-.25,0,-.25
*虚线点2,虚线点(.5x)_。_。_。_。_。_。_。_。_。_。_。_。_。
A.25,-.125,0,-.125
*虚线点x2,虚线点(2x)______________________
A、 1.0,-。5,0,-.5.
 
与往常一样,默认情况下ltscale=1。
 
在图纸空间中,除非变大(重新生成后),否则应该可以,然后返回以将比例设置为较小应该可以。
 
我真的不明白为什么lisp会这么麻烦,而不是使用规则1保持简单,并使用cad中已经存在的默认值。
 
我想人们喜欢把事情复杂化。接下来我们将看到的是运行lisp打开cad并访问论坛帖子
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:19 , Processed in 0.979803 second(s), 66 queries .

© 2020-2025 乐筑天下

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