CADsite forum

AutoCAD => Autolisp => Topic gestart door: Hydro op wo 10 02 2010, 14:15:11

Titel: Symbolen te plaatsen ipv radiusmaten ( Opgelost door Roy_043)
Bericht door: Hydro op wo 10 02 2010, 14:15:11
Kan er mij iemand helpen met een lisproutine om:
Symbolen te plaatsen ipv radiusmaten?
procedure: Radius/boog aanklikken en een overeenstemmend symbool plaatsen (op een willekeurig plaats)op een vastbepaalde layer (vb layer "tekst" en met kleur "geel".
Symbolen met een vaste waarde bv:
r 0,3 is een driehoekje
r 0,5 is een volle cirkel
r 1 is een vol vierkantje

Hertelijk dank aan u

Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: roy_043 op wo 10 02 2010, 14:26:53
1. Vertel iets meer over de achtergrond (vakgebied en de herkomst van het plaatje).
2. Wat versta jij onder symbool?
3. Beschik jij over de symbolen in het plaatje?
Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: Hydro op wo 10 02 2010, 15:01:30
Dank voor jou reaktie

1. doel is plaatsbesparing op de tekening. Vakgebied is profielextrusietekeningen; dit  zijn mechanische tekeningen met veel details en bematingen.
2. onder symbool versta ik een teken (bestaand uit een block)  dat de radiusmaat vervangt. een ander voorbeeld is om bvb een rechte hoek van 90° aan te duiden om dit aan te geven wordt er soms een L gebruikt om dit aan te geven.
3. deze symbolen kunnen gewoon zelf ontworden blocks zijn.

dank
Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: roy_043 op wo 10 02 2010, 15:50:25
Let op: er is geen foutcontrole ingebouwd.

(defun c:RadSym ( / symLst radius)
  (setvar "cmdecho" 0)
  (setq symLst
    '(
      (0.2 . "symRad020")
      (0.3 . "symRad030")
      (0.4 . "symRad040")
      (0.5 . "symRad050")
      ; enz.
    )
  )
  (setq radius (cdr (assoc 40 (entget (car (entsel "\nSelecteer een boog of cirkel: "))))))
  (while (and symLst (not (equal radius (caar symLst) 0.0001)))
    (setq symLst (cdr symLst))
  )
  (if (cdar symLst)
    (progn
      (princ "\nPlaatsingspunt: ")
      (command
        "_.layer" "_make" "Tekst" "_color" "2" "" ""
        "_insert" (cdar symLst) pause "_xyz" 1.0 1.0 1.0 0.0
      )
    )
    (princ "\nRadius niet gevonden (tolerantie = 0.0001) ")
  )
)
Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: Hydro op wo 10 02 2010, 16:10:59
Hartelijke dank, heb het getest maar krijg volgende foutmelding (zowel in R2004 en R2008) bij het opladen.

RadSym.lsp successfully loaded.
Command: ; error: bad character read (octal): 0

Hoe kan ik nu automatich een block laten invoegen. :|

Thanks
Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: roy_043 op wo 10 02 2010, 16:34:07
Hoe maak jij van de code uit mijn vorige post een lisp-bestand?
Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: Hydro op wo 10 02 2010, 19:49:43
 Kippen en plakken in wordpad en bewaren als lsp bestand en opladen met Appload.
Hoe moet ik anders die code gebruiken? Ik heb (bijna) geen kennis van programatie, maar dit hebt u waarschijnlijk gemerkt. :oops:
Bedank voor uw geduld
Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: roy_043 op wo 10 02 2010, 20:28:59
Een lisp-bestand mag alleen platte tekst bevatten. In Wordpad moet je het juiste bestandsformaat kiezen (Bestand > Nieuw > Tekstdocument). Of je gebruikt Notepad dan krijg je altijd een platte tekst.

Nadat je de lisp hebt ingeladen moet je RadSym intypen om de routine te starten.
Ik ben uitgegaan van de volgende blocknamen (voor radius 0.2 t/m 0.5):
symRad020
symRad030
symRad040
symRad050
Deze blocks moeten bestaan anders loopt de routine vast.
Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: Hydro op do 11 02 2010, 09:19:33
Roy,

Prachtig, hartelijk dank. Dit is echt een verrijking.

Toch nog enkele vragen:
- Bij het aanvinken van een boog/cirkel met een andere straal/diameter komt onderstaande boodschap:

Selecteer een boog of cirkel:
Radius niet gevonden (tolerantie = 0.0001) "\nRadius niet gevonden (tolerantie
= 0.0001) "


-Bestaat er een mogelijkheid om het commando "radiusbemating" op te roepen bij het selecteren van een boog dat niet is opgenomen in de lijst?

- Volgende boodschap komt als ik een boog/cirkel aanvink in de "layout" met "Paper Space" geselecteerd. (bij het invoegen van een "Dimesion" en/of "Single line text" lukt dit wel.
Command: _.PSPACE
Command: RadSym
Selecteer een boog of cirkel: ; error: bad argument type: lentityp nil
Command:


VrGr
Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: roy_043 op do 11 02 2010, 11:41:10
Bijgevoegd gewijzigde lisp:
Titel: Re:Symbolen te plaatsen ipv radiusmaten
Bericht door: roy_043 op do 11 02 2010, 13:15:15
Citaat van: Hydro via PMKan het zijn dat jou aangepaste code niet zichtbaar is op het forum?
De lisp is toegevoegd als bijlage. Bijlagen zijn alleen zichtbaar als je bent ingelogd.