JoeyG_77 发表于 2022-7-5 16:35:52

夹板口齿不清

大家好,
 
想知道是否有一个lisp例程可以绘制一个矩形,然后将内角连接起来,在矩形的内侧生成一个“X”。
 
谢谢你一如既往的帮助
乔伊·G

Tharwat 发表于 2022-7-5 16:43:07


(defun c:test (/ c1 c2)
(and (setq c1 (getpoint "\nSpecify first point :"))
      (setq c2 (getcorner "\nSpecify opposite corner :" c1))
      (vl-cmdf "_.rectang" "_non" c1 "_non" c2)
      (mapcar '(lambda (q p) (entmake (list '(0 . "LINE")(cons 10 q) (cons 11 p))))
                           (list c1 (list (car c2) (cadr c1)))
                           (list c2 (list (car c1) (cadr c2))))
   )
(princ))

Lee Mac 发表于 2022-7-5 16:47:30

http://www.cadtutor.net/forum/showthread.php?98988-所选矩形对角线的Lisp&p=673969&viewfull=1#post673969

JoeyG_77 发表于 2022-7-5 16:54:47

那真是太棒了!!非常感谢。也感谢李的链接。谢谢大家

Tharwat 发表于 2022-7-5 16:56:54

不客气。

JoeyG_77 发表于 2022-7-5 17:05:46

特瓦瓦。。。这段代码一直工作得很好!!!你能修改一下吗?把矩形放在一个特定的层上?

jonathann3891 发表于 2022-7-5 17:05:59

(defun c:test (/ c1 c2)
(setq olayer (getvar 'clayer))
(setvar 'clayer "0")
(and (setq c1 (getpoint "\nSpecify first point :"))
      (setq c2 (getcorner "\nSpecify opposite corner :" c1))
      (vl-cmdf "_.rectang" "_non" c1 "_non" c2)
      (mapcar '(lambda (q p) (entmake (list '(0 . "LINE")(cons 10 q) (cons 11 p))))
                           (list c1 (list (car c2) (cadr c1)))
                           (list c2 (list (car c1) (cadr c2))))
   )
(setvar 'clayer olayer)
(princ))
 
您需要将图层从“0”更改为您想要的任何内容:
(setvar 'clayer "0"
如果图形中已存在图层,则此操作有效。如果它不存在,可以重写它以创建层。

JoeyG_77 发表于 2022-7-5 17:14:45

乔恩。。。非常感谢。我非常感谢

jonathann3891 发表于 2022-7-5 17:19:00

不客气。

Tharwat 发表于 2022-7-5 17:22:01

如果图层不存在,则应创建该图层,并将对象附加到该图层上,该图层在本例中为“MyLayer”。
 

(defun c:test (/ c1 c2)
(and (setq c1 (getpoint "\nSpecify first point :"))
       (setq c2 (getcorner "\nSpecify opposite corner :" c1))
       (mapcar '(lambda (q p) (entmake (list '(0 . "LINE") (cons 8 "MyLayer") (cons 10 q) (cons 11 p))))
               (list c1 (list (car c2) (cadr c1)))
               (list c2 (list (car c1) (cadr c2))))
       (vl-cmdf "_.rectang" "_non" c1 "_non" c2)
       (entmod (append (entget (entlast)) '((8 . "MyLayer"))))
   )
(princ))
页: [1] 2
查看完整版本: 夹板Lisp程序