sachindkini 发表于 2022-7-6 14:59:19

地毯面积和房间尺寸

尊敬的各位
请帮帮我
你能做这种LSP吗
房间大小。LSP
1) 房间标题图层和文字样式
2) 以米和文字样式显示的房间大小
3) 以英尺和文字样式表示的房间大小
地毯区域。LSP
1) 地毯区域图层和文字样式
2) 地毯面积(平方米)和文字风格
3) 平方英尺和文字风格的地毯面积
抱歉英语不好
THNX公司
房间大小。pdf
地毯区域。pdf

Lee Mac 发表于 2022-7-6 15:06:22

这些房间是用什么建造的?闭合多段线?

Came 发表于 2022-7-6 15:13:15

看看cadtips。卡达利斯特。你可以挖点东西
我无法放置网络内容
 
 
 
am掌握基础

ReMark 发表于 2022-7-6 15:15:56

该挂标牌了:
 
在等待时设计的自定义Lisp例程。
无需预约。

Lee Mac 发表于 2022-7-6 15:21:22

 
哈哈,真的。
 
很多用户认为这个地方只是一个LISP超市,并没有意识到它只是真正的帮助和建议。

lpseifert 发表于 2022-7-6 15:26:50

他说的话

ReMark 发表于 2022-7-6 15:32:39

这是一种心态,“我会给你任何你想要的,只要你不垄断的钱。”
 
这绝不意味着贬低你、李·麦克和其他人开发Lisp例程的天赋。相反,我对你完成这项任务的速度感到惊讶,这使得这项任务看起来几乎毫不费力。
 
我希望这样的请求措辞更礼貌一点。我也希望看到OP用善意和亲切的感谢来表达他/她的感激之情。当一个自定义的lisp例程在一瞬间被神奇地从稀薄的空气中变出来时,这是任何人都能做的最起码的事情。
 
因此,我代表所有你和其他帮助过的人,衷心感谢你在编写这些lisp例程时所付出的思考,感谢你为帮助他们解决问题所做的努力,感谢你在后续文章中关于形成良好lisp例程的教育价值,感谢你在没有重复的情况下所表现出的奉献精神。
 
非常感谢。非常感谢。非常感谢。

Lee Mac 发表于 2022-7-6 15:37:46

 
备注,你太客气了

Lee Mac 发表于 2022-7-6 15:40:16

我想这是一个开始:
 

(defun c:roomsize (/ ent vLst xlst ylst xrange yrange)
(if (and (setq ent (car (entsel "\nSelect Wall...")))
      (eq "LWPOLYLINE" (cdadr (entget ent))))
   (progn
   (setq vLst (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) (entget ent)))
       xlst (mapcar '(lambda (y) (car y)) vLst)
       ylst (mapcar '(lambda (z) (cadr z)) vLst)
       xrange (- (apply 'max xlst) (apply 'min xlst))
       yrange (- (apply 'max ylst) (apply 'min ylst)))
   (alert (strcat (rtos xrange) "x" (rtos yrange)
            "\n" (rtos xrange 3) "x" (rtos yrange 3))))
   (princ "\n<!> No Wall Selected or This isn't an LWPOLYLINE <!>"))
(princ))

 
我没有更好的事可做

Lee Mac 发表于 2022-7-6 15:45:01

再往前走一点。。。(Lisp程序,只是把它扔在一起。)
 

(defun c:roomsize (/ ent vLst xlst ylst xrange yrange area)
(if (and (setq ent (car (entsel "\nSelect Wall...")))
      (eq "LWPOLYLINE" (cdadr (entget ent))))
   (progn
   (setvar "CMDECHO" 0)
   (setq vLst (mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) (entget ent)))
       xlst (mapcar '(lambda (y) (car y)) vLst)
       ylst (mapcar '(lambda (z) (cadr z)) vLst)
       xrange (- (apply 'max xlst) (apply 'min xlst))
       yrange (- (apply 'max ylst) (apply 'min ylst)))
   (command "_area" "_Object" ent) (setq area (getvar "AREA"))
   (alert (strcat (rtos xrange) " x " (rtos yrange)
            "\n" (rtos xrange 3) " x " (rtos yrange 3)
            "\n" (rtos area) " SQ.MT.\n" (rtos area 3) " SQ.FT.")))
   (princ "\n<!> No Wall Selected or This isn't an LWPOLYLINE <!>"))
(setvar "CMDECHO" 1)
(princ))
页: [1] 2
查看完整版本: 地毯面积和房间尺寸