乐筑天下

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

[编程交流] 圆角不工作。。。

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 18:00:11 | 显示全部楼层
谢谢,我会试试的
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 18:01:26 | 显示全部楼层
我使用了如下代码:
 
  1. (defun flangeelevfillet ()
  2. (command "_fillet"
  3. "R"
  4. "2"
  5. (setq b1
  6.   (list a6
  7.    flgotppt
  8.   ) ; end list
  9. ) ; end setq
  10. (setq b2
  11.   (list  a8
  12.    flgoltppt
  13.   ) ; end list
  14. ) ; end setq
  15. ) ; end fillet
  16. (command "_fillet"
  17. "R"
  18. "2"
  19. (setq b3
  20.   (list
  21.    a7
  22.    flgobtpt
  23.   ) ; end list
  24. ) ; end setq
  25. (setq b4
  26.   (list
  27.    a9
  28.    flgolbtpt
  29.   ) ; end list
  30. ) ; end setq
  31. ) ; end fillet
  32. ) ; end program

 
在圆角方面没有运气。。。当检查b1的值时,我得到:
 
  1. Command: !b1
  2. (<Entity name: 7e88fdf0> (331.409 328.982 0.0))
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 18:03:30 | 显示全部楼层
请注意,圆角命令在设置半径后退出,因此编写的命令不起作用。
这是错误的:
  1. (command "_fillet"  "R"  "2"
  2. (setq b1 (list a6 flgotppt))
  3. (setq b2 (list a8 flgoltppt))
  4. ) ; end fillet

这是正确的:
  1. (command "_.fillet"  "R"  "2"
  2. "_.fillet" ; <---<<  command must be stated again
  3. (setq b1 (list a6 flgotppt))
  4. (setq b2 (list a8 flgoltppt))
  5. ) ; end fillet
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 18:09:28 | 显示全部楼层
谢谢CAB,
 
只是出于兴趣,我有几个问题。。。。
 
1) (这似乎有点无知..但我对LISP不太熟悉)为什么在(defun c:XXX(“here”)后面的括号中列出变量。。。带“/”?
 
2) 为什么使用“vl cmdf”而不是“command”?
 
再次感谢你的帮助。
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 18:12:31 | 显示全部楼层
你是个天才。。。
 
Lisp程序就像一种享受!
 
谢谢你的帮助。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 18:14:50 | 显示全部楼层
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 18:16:08 | 显示全部楼层
Is there any way to assign an variable to a fillet so that it may be rotated later?
 
I tried using the entlast function, but to no avail.
回复

使用道具 举报

CAB

29

主题

781

帖子

430

银币

中流砥柱

Rank: 25

铜币
526
发表于 2022-7-6 18:21:05 | 显示全部楼层
This works for me.
  1. (defun c:test (/ usrosm e1 e2 p1 rad) (setq rad 2.0) (setq usrosm (getvar "osmode")) (and   (setq p1 (getpoint "\nPick a test point for fillet."))   (setq e1 (entmakex (list (cons 0 "LINE")              (cons 8 "0") ; layer              (cons 10 p1) ; start point              (cons 11 (polar p1 pi 100)) ; end point              )))    (setq e2 (entmakex (list (cons 0 "LINE")              (cons 8 "0") ; layer              (cons 10 p1) ; start point              (cons 11 (polar p1 (* pi 1.5) 100)) ; end point              )))    (setvar "osmode" 0)   (setq usrrad (getvar "osmode"))   (setvar "filletrad" rad)   (vl-cmdf "_.fillet"            (list e1 (polar p1 pi rad))            (list e2 (polar p1 (* pi 1.5) rad)))   (setq rent1 (entlast)) ; [b]this works[/b]   (entdel rent1) ; [b]remove the entity as a test[/b] ) (and usrrad (setvar "osmode" usrrad)) (and usrosm (setvar "osmode" usrosm)) (princ))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 18:23:28 | 显示全部楼层
Thanks CAB,
 
Just out of interest, I have a few queries....
 
1) (this may seem a little ignorant.. but I'm new to LISP) Why do you list your variables in the brackets after the (defun c:XXX ("here")... with a " / " ?
 
2) Why do you use the "vl-cmdf" instead of "command"?
 
Thanks once again for your help.
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 18:28:18 | 显示全部楼层
CAB you are a genius...
 
The LISP works like a treat!  
 
Thanks for all your help.
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 17:12 , Processed in 0.871109 second(s), 70 queries .

© 2020-2025 乐筑天下

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