asos2000 发表于 2022-7-6 01:15:05

需要此lisp的帮助

我试图编写一个lisp代码,将维度分为两个维度
第一个可以。
但是,第二个仍然是一样的,不会改变到新的点。
(defun c:sd (/ DM1 DM2 ENT1 ENT1NEW ENT2 ENT2NEW EP EP1 EP2 NP NP1 SP SP1 SP2 )

(setq dm1(car (entsel))
ent1 (entget dm1)
sp1 (assoc 13 ent1)
ep1 (assoc 14 ent1)
sp sp1
ep ep1)
(setq np (getpoint "\nPick Seperating point: ")
np1 (cons 14 np))
(setq ent1new (subst np1 ep1 ent1))
(entmod ent1new)
(command "._copybase" np dm1 "")
(command "._pasteclip" np)
(setq dm2(entlast)
ent2 (entget dm2)
sp2 (assoc 13 ent2)
ep2 (assoc 14 ent2))
(setq ent2new (subst np1 sp2 ent2))
(entmod ent2new)
(setq ent2new (subst ep ep2 ent2))
(entmod ent2new)
)

BlackBox 发表于 2022-7-6 01:30:39

这应该让你开始:

(vl-load-com)

(defun c:DimSplit () (c:DimensionSplit))
(defun c:DimensionSplit (/ ss pt e data s)
(if (and (setq ss (ssget ":S:E:L" '((0 . "DIMENSION"))))
          (setq pt (trans (getpoint "\nPick Seperating point: ") 1 0))
   )
   (progn
   (entmod
         (subst
         (cons 14 pt)
         (assoc 14 (setq data (entget (setq e (ssname ss 0)))))
         data
         )
       )
   (entupd e)
   (setq s (vla-get-scalefactor (vlax-ename->vla-object e)))
   (entlast)
   (entmake
         (list
         (cons 0 "DIMENSION")
         (cons 100 "AcDbEntity")
         (cons 67 0)
         (assoc 8 data)
         (cons 100 "AcDbDimension")
         (assoc 10 data)
         (assoc 11 data)
         (assoc 70 data)
         (assoc 1 data)
         (assoc 52 data)
         (assoc 53 data)
         (assoc 54 data)
         (assoc 51 data)
         (assoc 210 data)
         (assoc 3 data)
         (cons 100 "AcDbAlignedDimension")
         (cons 13 pt)
         (assoc 14 data)
         (assoc 15 data)
         (assoc 16 data)
         (assoc 40 data)
         (cons 100 "AcDbRotatedDimension")
         )
       )
   (vla-put-scalefactor (vlax-ename->vla-object (entlast)) s)
   )
)
(princ)
)

SLW210 发表于 2022-7-6 01:41:56

我删除了你的重复线程。

BlackBox 发表于 2022-7-6 01:53:58

这个“dim split”例程可能非常棒,添加了一点GrDraw+GrRead,以显示从光标位置垂直于源dim的“虚线”。我愿意在这里做更多的工作,但这将是非常甜蜜的。只是说说而已。

antistar 发表于 2022-7-6 02:12:36

 
 
嗨,BlackBox,这个例程不适合垂直维度。
.

asos2000 发表于 2022-7-6 02:21:00

我是Tekal用户,尺寸标注采用特殊方式
这个想法来自那里。
见附件
暗淡的拉链
页: [1]
查看完整版本: 需要此lisp的帮助