foster5476 发表于 2022-7-5 17:37:48

我试图,但我似乎不能插入kpblc代码到我的更正它。非常新的编码。
 
你介意帮忙把它放在哪里吗。很长时间以来我一直在处理这个问题。我本不想寻求帮助,但我觉得自己像个水蛭,我真的迷失了方向。
 
 
 

Lee Mac 发表于 2022-7-5 17:41:43

对不起,我的观点是,我们需要查看txt1和txt2函数以帮助您-您在第一篇文章中发布的代码中缺少这些定义。

foster5476 发表于 2022-7-5 17:46:14

这看起来可能是一切。对不起,如果这是一个烂摊子继承了这些东西。努力简化我的生活哈哈。
 
感谢您抽出时间。
 
 
(defun C:scable2 (/)
(setq echo (getvar "cmdecho"))                        ;gets current value of screen echo
(setvar "cmdecho" 0)                                ;sets echo to off
(setq style (getvar "textstyle"))                        ;gets current value of textstyle
(setvar "textstyle" "STANDARD")                                ;sets textstyle to STANDARD
   (arrowinfo)
   (arrowdir1)
(setvar "textstyle" style)
(setvar "cmdecho" echo)
);end defun scable

(defun C:dcable2 ()
(setq echo (getvar "cmdecho"))                        ;gets current value of screen echo
(setvar "cmdecho" 0)                                ;sets echo to off
(setq style (getvar "textstyle"))                        ;gets current value of textstyle
(setvar "textstyle" "STANDARD")                                ;sets textstyle to STANDARD
   (arrowinfo)
   (arrowdir2)
(setvar "textstyle" style)
(setvar "cmdecho" echo)
);end defun dcable

(defun rtd (a)
    (/ (* a 180.0) pi)
);DEFUN

(DEFUN arrowinfo ()
         (SETQ first (entsel)
   slect1 (entget (car first))
       pt1 (cadr first)
    ang1 (angle (setq pt3 (cdr (assoc '10 slect1)))(setq pt4 (cdr (assoc '11 slect1))))
    ang2 ( ANGLE pt1 (setq pt2 (getpoint "\nPICK THE TEXT LOCATION: ")))
    ang3 ang1)
         (if (or (and (> (sin ang1) 0) (> (cos ang1) 0)) (and (< (sin ang1) 0) (> (cos ang1) 0)))
         (setq ang1 ang1)
         (setq ang1 (+ PI ang1)))
         (if(equal ang3 (* 0.5 pi) 0.00000001) (setq ang1 ang3))
         (if(equal ang3 PI 0.00000001) (setq ang1 (+ pi ang3)))
         (if(equal ang3 0 0.00000001) (setq ang1 ang3))
);end defun arrowinfo

(defun arrowdir1 ()
(if (> (distance pt1 pt3) (distance pt1 pt4)) (ins1) (ins2))
);end defun arrowdir1

(defun arrowdir2 ()
(if (> (distance pt1 pt3) (distance pt1 pt4)) (ins3) (ins4))
);end defun arrowdir2

(defun ins1()
(Setq old (Getvar "clayer"))
(if (tblsearch "layer" "cab")(Setvar "clayer" "cab")
(command "layer" "M" "cab" "C" "red" "" "")
);end if
   (command "insert" "NEW-ARROW" pt4 (getvar "ltscale") "" (rtd (+ PI ang3)))

(if (tblsearch "layer" "TICK22")(Setvar "clayer" "TICK22")
(command "layer" "M" "TICK22" "C" "magenta" "" "")
);end if
   (command "insert" "TICK2" pt3 (getvar "ltscale") "" (rtd (+ PI ang3)))
(command "setvar" "clayer" old )

   (if (> (- (angle pt4 pt3) (angle pt4 pt2)) 0)
       (setq pt2 (polar pt4 (- (angle pt4 pt3) 0.277745) 34.5))
       (setq pt2 (polar pt4 (+ (angle pt4 pt3) 0.277745) 34.5))
   );end if

   (txt1)
);end defun ins1
   
(defun ins2()
(Setq old (Getvar "clayer"))
(if (tblsearch "layer" "cab")(Setvar "clayer" "cab")
(command "layer" "M" "cab" "C" "red" "" "")
);end if
   (command "insert" "NEW-ARROW" pt3 (getvar "ltscale") "" ( rtd ang3))

(if (tblsearch "layer" "TICK22")(Setvar "clayer" "TICK22")
(command "layer" "M" "TICK22" "C" "magenta" "" "")
);end if
   (command "insert" "TICK2" pt4 (getvar "ltscale") "" ( rtd ang3))
(command "setvar" "clayer" old )
   (if (> (- (angle pt3 pt4) (angle pt3 pt2)) 0)
       (setq pt2 (polar pt3 (- (angle pt3 pt4) 0.277745) 34.5))
       (setq pt2 (polar pt3 (+ (angle pt3 pt4) 0.277745) 34.5))
   );end if

   (txt1)
);end defun ins2

(defun ins3()
(Setq old (Getvar "clayer"))
(if (tblsearch "layer" "cab")(Setvar "clayer" "cab")
(command "layer" "M" "cab" "C" "red" "" "")
);end if
   (command "insert" "NEW-ARROW" pt4 (getvar "ltscale") "" ( rtd (+ PI ang3)))
   (command "insert" "NEW-ARROW" (polar pt4 (angle pt4 pt3) 12) (getvar "ltscale") "" ( rtd (+ PI ang3)))

(if (tblsearch "layer" "TICK22")(Setvar "clayer" "TICK22")
(command "layer" "M" "TICK22" "C" "magenta" "" "")
);end if
   (command "insert" "TICK2" pt3 (getvar "ltscale") "" (rtd (+ PI ang3)))
(command "setvar" "clayer" old )

   (if (> (- (angle pt4 pt3) (angle pt4 pt2)) 0)
       (setq pt2 (polar pt4 (- (angle pt4 pt3) 0.277745) 34.5))
       (setq pt2 (polar pt4 (+ (angle pt4 pt3) 0.277745) 34.5))
   )

   (txt2)
);end defun ins3
   
(defun ins4()
(Setq old (Getvar "clayer"))
(if (tblsearch "layer" "cab")(Setvar "clayer" "cab")
(command "layer" "M" "cab" "C" "red" "" "")
);end if
   (command "insert" "NEW-ARROW" pt3 (getvar "ltscale") "" ( rtd ang3))
   (command "insert" "NEW-ARROW" (polar pt3 (angle pt3 pt4) 12)
       (getvar "ltscale") "" ( rtd ang3))

(if (tblsearch "layer" "TICK22")(Setvar "clayer" "TICK22")
(command "layer" "M" "TICK22" "C" "magenta" "" "")
);end if
   (command "insert" "TICK2" pt4 (getvar "ltscale") "" ( rtd ang3))
(command "setvar" "clayer" old )

   (if (> (- (angle pt3 pt4) (angle pt3 pt2)) 0)
       (setq pt2 (polar pt3 (- (angle pt3 pt4) 0.277745) 34.5))
       (setq pt2 (polar pt3 (+ (angle pt3 pt4) 0.277745) 34.5))
   );end if

   (txt2)
);end defun ins4

(defun txt1 ()
(Setq old (Getvar "clayer"))
(if (tblsearch "layer" "FPTEXT")(Setvar "clayer" "FPTEXT")
(command "layer" "M" "FPTEXT" "C" "green" "" "")
);end if
(if (/= (setq dis1 (/ (+ 18.51 (distance pt3 pt4)) 12)) (fix dis1))
      (setq dis1 (+ (fix dis1) 1))
   );end if
(setq dis2 (strcat "S-" (rtos dis1 2 0)))

(command "text" "m" pt2 (* 0.125 (getvar "ltscale")) (rtd ang1) dis2)
(command "setvar" "clayer" old )
);end defun txt1
                           
(defun txt2 ()
(Setq old (Getvar "clayer"))
(if (tblsearch "layer" "FPTEXT")(Setvar "clayer" "FPTEXT")
(command "layer" "M" "FPTEXT" "C" "green" "" "")
);end if

(if (/= (setq dis1 (/ (+ 18.51 (distance pt3 pt4)) 12)) (fix dis1))
      (setq dis1 (+ (fix dis1) 1))
   );end if

(setq dis2 (strcat "S/B-" (rtos dis1 2 0)))

   (command "text" "m" pt2 (* 0.125 (getvar "ltscale")) (rtd ang1) dis2)
(command "setvar" "clayer" old )
);end defun txt2

foster5476 发表于 2022-7-5 17:49:41

我贴的代码是你想要的吗?
 
我认为txt函数在底部。
页: 1 [2]
查看完整版本: Lisp编码帮助