乐筑天下

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

[编程交流] Rev云矩形故障

[复制链接]

28

主题

87

帖子

37

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
167
发表于 2022-7-5 18:46:04 | 显示全部楼层 |阅读模式
我有一个Lisp程序的地方,你画一个矩形,这是一个RevCloud。。。
 
 
唯一的问题是,当矩形穿过一条线时,弧会表现得很疯狂。。。
 
 
有人能告诉我为什么和/或如何修复吗?
 
 
Lisp也包括在这里
 
 
  1. (prompt "Loading CLOUD1....")
  2. ;
  3. (defun C:Cloud1 (/ ds plw pt1 pt2 p1 p2 xdist ydist spcsx spcsy ent1 ent2
  4. nxt info bulge data)
  5. (setq #exlyr (getvar "clayer"))
  6. (if (null (tblsearch "layer" "RevCloud"))
  7. (command "-layer" "m" "RevCloud" "c" "1" "" ""))
  8. (command "-layer" "s" "RevCloud" "")
  9. (setq oldplinewid (getvar"plinewid")) ;get old Plinewidth
  10. setting
  11. (setq OldPlineType (getvar "Plinetype")) ;get old
  12. Plinetype setting
  13. (setvar "Plinetype" 0) ;set Plinetype
  14. to R13 setting
  15. (setvar "cmdecho" 0)
  16. (setq ds (getvar "LTSCALE")
  17. plw (* 0.00 ds)
  18. oer *error*
  19. bm (getvar "blipmode"))
  20. (defun *error* (s) ;start error routine
  21. (setvar "blipmode" bm) ;reset blipmode
  22. (princ (strcat "\Exit..." s)) ;type error message
  23. (if oer (setq *error* oer))
  24. (princ))
  25. (SETQ PT1 (GETPOINT "Pick lower left corner of window: ")) (terpri)
  26. (setq pt2 (getcorner pt1 "Pick upper right corner of window: "))
  27. (setvar "blipmode" 0)
  28. (setq p1 (car pt1) p2 (car pt2) ;find x distances
  29. xdist (- p2 p1))
  30. (setq p1 (cadr pt1) p2 (cadr pt2) ;find y distances
  31. ydist (- p2 p1))
  32. ;******TO ADJUST SPACING OF ARCS CHANGE THE NUMBER 2 IN THE NEXT TWO
  33. LINES*****
  34. (setq spcsx (/ (abs xdist) (/ ds 4)) ;X spacing
  35. spcsy (/ (abs ydist) (/ ds 4))) ;Y spacing
  36. (if (= spcsx (fix spcsx)) (setq spcsx (fix spcsx)) (setq spcsx (+ 1 (fix
  37. spcsx))))
  38. (if (= spcsx 1) (setq spcsx 2)) ;min of 2 spaces
  39. (if (= spcsy (fix spcsy)) (setq spcsy (fix spcsy)) (setq spcsy (+ 1 (fix
  40. spcsy))))
  41. (if (= spcsy 1) (setq spcsy 2)) ;min of 2 spaces
  42. (setq xdist (/ xdist spcsx) ydist (/ ydist spcsy)) ;set distances
  43. (setq p1 pt1) ;set polyline start point
  44. (command "PLINE" p1 "W" plw "") ;start polyline command
  45. (repeat spcsx ;draw bottom line segments
  46. (setq p1 (polar p1 0.0 (abs xdist)))
  47. (command p1))
  48. (repeat spcsy ;draw right line segments
  49. (setq p1 (polar p1 (/ pi 2) (abs ydist)))
  50. (command p1))
  51. (repeat spcsx ;draw top line segments
  52. (setq p1 (polar p1 pi (abs xdist)))
  53. (command p1))
  54. (repeat (- spcsy 1) ;draw left line segments
  55. (setq p1 (polar p1 (* pi 1.5) (abs ydist)))
  56. (command p1))
  57. (command "C") ;Close polyline
  58. (setq ent1 (entlast) ;get entity
  59. ent2 (entget ent1) ;get entity info
  60. ;******TO ADJUST THE ARC SIZE ADJUST THE 0.7 BELOW*******
  61. bulge (list (cons 42 0.5)) ;build cloud arcs
  62. nxt (cdr (assoc -1 ent2)) ;set for lookup
  63. nxt (entnext nxt) ;get next one
  64. plw (list (cons 41 plw))) ;build cloud width
  65. (while nxt ;start loop
  66. (setq info (entget nxt) ;get exist. info
  67. info (append info bulge) ;set bulge
  68. info (append info plw) ;set width
  69. ) ;end of setq
  70. (entmod info) ;modify entity
  71. (setq nxt (entnext nxt)) ;get next segment
  72. ) ;end of while
  73. (entupd ent1) ;update entity
  74. (setvar "blipmode" bm) ;reset blipmode
  75. (setvar "cmdecho" 1) ;turn command echo on
  76. (gc) (princ) ;print blank line
  77. (setvar "Plinetype" OldPlineType) ;set Plinetype
  78. setting back
  79. (setvar "Plinewid" OldPlinewid)
  80. (setvar "clayer" #exlyr)
  81. ) ;End program

errorlinecloud1。lsp
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 18:51:14 | 显示全部楼层
检查你的osnap是否打开?
 
gr.Rlx
回复

使用道具 举报

28

主题

87

帖子

37

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
167
发表于 2022-7-5 18:54:07 | 显示全部楼层
是的,我的OSNAP也在。。。在较大比例的图形上出现更多,例如1/8“=1’-0”
 
 
只是好奇你为什么会想到奥斯奈普
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 18:58:32 | 显示全部楼层
嗯,我曾经写过一个cloud util,当它最终击中我时,它有时也会变得疯狂,因为osnap是罪魁祸首。所以现在我首先禁用osnap,然后让我的应用程序运行它的cource,然后将osnap恢复到其原始模式
 
gr.Rlx
回复

使用道具 举报

28

主题

87

帖子

37

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
167
发表于 2022-7-5 19:01:24 | 显示全部楼层
这就是为什么。。。有人知道为什么会发生这种情况吗?只是好奇
 
 
所以现在我有了
  1. (setq oldos (getvar "OSMODE"))
  2. (setvar "OSMODE" 0)
  3. ...code...
  4. (setvar "OSMODE" oldos)

 
 
如果有人能帮我处理一个错误,如果代码结束,osmode将返回其原始值,我将不胜感激。(不幸的是,我从未做过错误处理)
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 19:06:06 | 显示全部楼层
我看到您在最后已经有了一个错误处理程序,所以只需将osnap放在blip旁边:-)
 
p、 在应用程序开始时,将getvar放在*error*之外。。。
 
gr.Rlx
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 19:11:26 | 显示全部楼层
似乎太过分了。。。为什么不制作一条多段线,然后使用“revcloud”>“object”选项?
回复

使用道具 举报

28

主题

87

帖子

37

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
167
发表于 2022-7-5 19:12:41 | 显示全部楼层
是的,我从别人那里得到了密码
 
谢谢你指出这将节省我一些步骤这个周末。。。
 
还有commandobill。。。因为少了五步
 
我知道我不必键入矩形
类型revcloud
选择对象
选择对象
然后更改图层
回复

使用道具 举报

28

主题

87

帖子

37

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
167
发表于 2022-7-5 19:18:57 | 显示全部楼层
代码写得有点过分,但我没有写,我不介意
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 19:20:14 | 显示全部楼层
我这里没有我的最新版本,但我会在一个单独的线程中发布我的云版本
 
gr.Rlx
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:27 , Processed in 0.802617 second(s), 72 queries .

© 2020-2025 乐筑天下

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